php - PHP Pthread 类中的 Yii 框架上下文

标签 php yii php-pthread

我正在研究 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.*',

    ),  

我做错了什么吗?

谢谢

阿尔芬

最佳答案

您需要在您的系统中安装 pthreads。

对于 Wampp(Windows)

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

  2. 下载与您的 php 版本(32 位或 64 位)和 php 扩展构建(当前使用的 VC11)相匹配的线程。使用此链接进行下载 - 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) 下载线程 获取 PECL 扩展(PECL 是 PHP 扩展的存储库)

pecl 安装 pthread-0.4.4

4) 解压 pthreads 将 pthread-0.4.4 复制到 php/ext (对于 ./configure 允许添加选项 --enable-pthreads)

mv 构建/php-src-master/ext/pthreads-master 构建/php-src-master/ext/pthreads

5) 重新配置源

./buildconf --force

./configure --help | grep 线程

您应该会看到相应的 --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 进行安装

8) 更新 php.ini 在 php.ini 中添加 扩展=pthreads.so Include_path = “/usr/local/lib/php”

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

10) 测试线程类

php 简单测试.php

Link会更好地解释。

希望这对你有帮助:)

关于php - PHP Pthread 类中的 Yii 框架上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32517480/

相关文章:

php - 使用 --enable-maintainer-zts 编译 PHP 时的缺点或副作用(使用 php pthread)

php - 如何在 PHP7 中使用 pThreads 进行多线程? worker 、游泳池等

php - 将文本框值存储在数组中

php - 如何自定义smarty中的错误处理?

php - 从 mysql 检索以填充表单时遇到问题

PHP5 : get imported namespaces list

yii - 如何为 Yii 定制面包屑小部件的链接?

php - 如何根据 Yii 框架中的匹配次数对 MySql 查询进行排序?

mysql - 如何防止mysql数据库中的activerecord写入冲突?