我正在研究 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)
使用 phpinfo() 找出您的“PHP Extension Build”版本。您可以使用这个 -
http://localhost/?phpinfo=1
下载与您的 php 版本(32 位或 64 位)和 php 扩展构建(当前使用的 VC11)相匹配的线程。使用此链接进行下载 - 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 并添加 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/