我正在PHP Pthreads工作。我写了一个继承了" Thread"类。此类无法识别Yii(1.x)框架上下文。我不能使用任何Yii框架组件或模型。我确保线程类应该位于Yii框架的" import"中定义的可访问路径中。在配置中。
以下是我编写线程类的示例。
<?php
class MultiThreaded extends Thread {
public function __construct(){
}
public function run(){
echo Yii::app()->basePath;
}
}
更新
这是Yii config中的导入器数组。
'import'=>array(
'application.models.*',
'application.components.*',
'application.components.multithreaded-operations.*',
'application.components.google_api_Lib.src.*',
'application.controllers.*',
'application.extensions.yii-mail.*',
'application.extensions.*',
'application.commands.*',
),
我做错了吗?
由于
Arfeen
答案 0 :(得分:0)
您需要在系统中安装pthread。
使用phpinfo()找出你的'PHP Extension Build'版本。您可以使用此功能 - http://localhost/?phpinfo=1
下载与您的php版本(32位或64位)和php扩展版本(当前使用的VC11)匹配的pthread。使用此链接进行下载 - http://windows.php.net/downloads/pecl/releases/pthreads/
提取拉链 - 将php_pthreads.dll移动到'bin \ php \ ext \'目录。
将pthreadVC2.dll移至'bin \ php \'目录。
将pthreadVC2.dll移至'bin \ apache \ bin'目录。
将pthreadVC2.dll移至'C:\ windows \ system32'目录。
打开php \ php.ini并添加 延长= php_pthreads.dll
现在重启服务器,你就完成了。
1)下载PHP源代码并解压PHP
2)下载PEAR wget http://pear.php.net/go-pear.phar php go-pear.phar
3)下载pthreads 获取PECL扩展(PECL是PHP扩展的存储库)
4)解包pthreads 将pthread-0.4.4复制到php / ext (对于./configure允许添加选项--enable-pthreads)
5)重新配置来源
如果不这样做,您应该会看到相应的--enable-pthreads选项,然后
6)构建PHP 编译PHP源代码 添加:
7)安装PHP
8)更新php.ini 添加php.ini 延长= pthreads.so Include_path =“/ usr / local / lib / php”
9)检查模块 php -m(检查pthread加载)
10)测试线程类
这个Link会更好地解释。
希望这会对你有所帮助:)。