Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP Pthread类中的Yii框架上下文_Php_Yii_Php Pthread - Fatal编程技术网

PHP Pthread类中的Yii框架上下文

PHP Pthread类中的Yii框架上下文,php,yii,php-pthread,Php,Yii,Php Pthread,我正在工作。我已经编写了一个继承“Thread”类的类。此类不识别Yii(1.x)框架上下文。我不能使用任何Yii框架组件或模型。我已经确保thread类应该驻留在Yii框架的可访问路径中,该路径在配置中的“导入”中定义 下面是我如何编写thread类的一个示例 <?php class MultiThreaded extends Thread { public function __construct(){ }

我正在工作。我已经编写了一个继承“Thread”类的类。此类不识别Yii(1.x)框架上下文。我不能使用任何Yii框架组件或模型。我已经确保thread类应该驻留在Yii框架的可访问路径中,该路径在配置中的“导入”中定义

下面是我如何编写thread类的一个示例

  <?php

    class MultiThreaded extends Thread {


            public function __construct(){

            }

            public function run(){
                       echo Yii::app()->basePath;
            }


    }
我做错什么了吗

谢谢


Arfeen

您需要在系统中安装pthreads

适用于Wampp(Windows)
  • 使用phpinfo()找出您的“PHP扩展构建”版本。您可以使用此-
    http://localhost/?phpinfo=1

  • 下载与php版本(32位或64位)和php扩展构建(当前使用的VC11)匹配的pthreads。使用此链接下载-

  • 拉开拉链- 将php_pthreads.dll移动到“bin\php\ext\”目录

    将pthreadVC2.dll移动到“bin\php\”目录

    将pthreadVC2.dll移动到“bin\apache\bin”目录

    将pthreadVC2.dll移动到“C:\windows\system32”目录

  • 打开php\php.ini并添加 extension=phppthreads.dll

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

    对于LINUX系统的: 1) 下载PHP源代码并解压缩PHP

    2) 下载梨 wget php go-pear.phar

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

    pecl安装pthread-0.4.4 4) 解包pthreads 将pthread-0.4.4复制到php/ext (对于./configure allow add选项--enable pthreads)

    mv build/php src master/ext/pthreads master build/php src master/ext/pthreads 5) 重新配置源

    /buildconf——强制 ./configure--help | grep pthreads 您应该看到相应的--enable pthreads选项作为结果列出,如果没有,则

    rm-rf aclocal.m4 rm-rf autom4te.cache/ /buildconf——强制 6) 构建PHP 编译PHP源代码 加:

    ./configure--enable debug--enable maintenancer zts--enable pthreads 7) 安装PHP

    制作 sudo制作安装 8) 更新php.ini 加载项php.ini extension=pthreads.so Include_path=“/usr/local/lib/php”

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

    10) 测试线程类

    php SimpleTest.php 这将更好地解释


    希望这能帮助你:)

    你能显示多线程的配置和路径吗?@DanilaGanchar我刚刚用导入数组更新了我的问题。application.components.Multithread-operations是线程类的路径。那么错误是什么?据我所知,当您创建多线程的新实例时,有什么地方出错了吗<代码>$test=新的多线程()@Danila Ganchar问题出在类Yii对象上下文中,而该类已由framework自动加载。您是否尝试过不同版本的Yii?我在测试基本phthread脚本后发布了此问题(因此系统中已安装pthread)。正如我前面提到的,问题是关于带有pthread的Yii框架。谢谢:)@Arfeen:据我所知,这与Yii无关。如果我们在系统中安装它,那么我们可以在任何框架中使用它。您尝试过\Thread吗?我已经使用并测试过这些示例。他们正在制定一个框架。但问题是,框架上下文在pthread继承的类中被取消设置和销毁。我希望你明白我的意思。@Arfeen你用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.*',
    
        ),