我正在研究PHP Pthreads . 我写了一个继承"Thread"类的类 . 此类无法识别Yii(1.x)框架上下文 . 我不能使用任何Yii框架组件或模型 . 我确保线程类应该驻留在配置中"import"中定义的Yii框架的可访问路径中 .
这是我编写线程类的一个例子 .
<?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
1 回答
您需要在系统中安装pthread .
For Wampp(Windows)
使用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'目录 .
现在重启服务器,你就完成了 .
对于LINUX系统:
1)下载PHP源代码并解压缩PHP
2)下载PEAR wget http://pear.php.net/go-pear.phar php go-pear.phar
3)下载pthreads获取PECL扩展(PECL是PHP扩展的存储库)
pecl install pthread-0.4.4
4)解压缩pthreads将pthread-0.4.4复制到php / ext(对于./configure允许添加选项--enable-pthreads)
mv build / php-src-master / ext / pthreads-master build / php-src-master / ext / pthreads
5)重新配置源
./buildconf --force
./configure --help | grep pthreads
您应该看到相应的--enable-pthreads选项作为结果列出,如果不这样做,那么
rm -rf aclocal.m4
rm -rf autom4te.cache /
./buildconf --force
6)构建PHP编译PHP源代码添加:
./configure --enable-debug --enable-maintainer-zts --enable-pthreads
7)安装PHP
制作
sudo make install
8)更新php.ini添加php.ini extension = pthreads.so Include_path =“/ usr / local / lib / php”
9)检查模块php -m(检查pthread加载)
10)测试线程类
php SimpleTest.php
这个Link会更好地解释 .
希望对你有帮助 :)