PHP Pthread类中的框架上下文


Yii Framework Context in PHP Pthread Class

我正在开发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)

  1. 通过使用phpinfo()找出您的"PHP扩展构建"版本。您可以使用- http://localhost/?phpinfo=1

  2. 下载与您的php版本(32位或64位)和php扩展构建(当前使用的VC11)相匹配的pthreads。使用此链接下载- http://windows.php.net/downloads/pecl/releases/pthreads/

  3. 解压zip -移动php_pthreads.dll到'bin'php'ext''目录。

    移动pthreadVC2.dll到'bin'php''目录。

    移动pthreadVC2.dll到'bin'apache'bin'目录下。

    移动pthreadVC2.dll到'C:'windows'system32'目录

  4. 打开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> 个链接会解释得更好。

希望对你有帮助