我正在开发PHP Pthreads。我写了一个继承Thread类的类。这个类不识别Yii (1.x)框架上下文。我不能使用任何Yii框架组件或模型。我已经确保线程类应该驻留在配置中的"导入"中定义的Yii框架的可访问路径中。
下面是我如何编写线程类的示例。
<?php
class MultiThreaded extends Thread {
public function __construct(){
}
public function run(){
echo Yii::app()->basePath;
}
}
更新:这是Yii配置中的导入器数组。
'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
你需要在你的系统中安装pthreads
For Wampp (Windows)
-
通过使用phpinfo()找出您的"PHP扩展构建"版本。您可以使用-
http://localhost/?phpinfo=1
-
下载与您的php版本(32位或64位)和php扩展构建(当前使用的VC11)相匹配的pthreads。使用此链接下载- http://windows.php.net/downloads/pecl/releases/pthreads/
-
解压zip -移动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
现在重启服务器,你就完成了。
对于LINUX系统:
1)下载PHP源代码并解压PHP
2)下载PEARwget http://pear.php.net/go-pear.pharphp go-pear.phar
3)下载pthreads获取PECL扩展(PECL是PHP扩展的存储库)
安装pthread
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)重新配置资源。
h1>。/configure——help | grep pthreads您应该看到相应的——enable-pthreads选项作为结果列出,如果没有,则
rm -rf aclocal.m4
rm -rf autom4te.cache/
。
p>6)构建PHP编译PHP源代码添加:。/configure——enable-debug——enable- maintenance -zts——enable-pthreads
7)安装PHP <标题>让h1> p>8)更新php.ini添加php.ini扩展= pthreads.soInclude_path = "/usr/local/lib/php "9)检查模块PHP -m (check pthread loaded)
10)测试线程类 <标题> php SimpleTest.php h1> 个链接会解释得更好。希望对你有帮助
标题>标题>