4

我正在研究PHP Pthreads。我写了一个继承“线程”类的类。此类不识别 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.*',

    ),  

难道我做错了什么 ?

谢谢

阿尔芬

4

1 回答 1

0

您需要在系统中安装 pthreads。

对于 Wampp (Windows)

  1. 使用 phpinfo() 找出您的“PHP Extension Build”版本。你可以使用这个 -http://localhost/?phpinfo=1

  2. 下载与您的 php 版本(32 位或 64 位)和 php 扩展构建(当前使用 VC11)匹配的 pthread。使用此链接下载 - 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 并添加 extension=php_pthreads.dll

现在重新启动服务器,你就完成了。

对于 LINUX 系统:

1) 下载 PHP 源码并解压 PHP

2) 下载 PEAR wget http://pear.php.net/go-pear.phar php go-pear.phar

3) 下载 pthreads 获取 PECL 扩展(PECL 是 PHP Extensions 的存储库)

pecl 安装 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

制作

须藤使安装

8) 更新php.ini 添加php.ini extension=pthreads.so Include_path = “/usr/local/lib/php”</p>

9)检查模块php -m(检查pthread加载)

10) 测试线程类

php SimpleTest.php

这个链接会更好地解释。

希望对你有帮助 :)

于 2016-01-18T09:35:33.647 回答