yii集成workerman

8年12个月前发布   4781浏览   12评论

yii的console可以很方便以cli方式的集成workerman框架,让习惯yii框架的童鞋以相同的形式开发workerman应用,如使用YII AR的db类

一、yii1的集成方式:

1、下载workerman:github地址 https://github.com/walkor/Workerman
2、放入yii的extensions(其他目录也可以,没特殊要求)
3、yiic文件加载wrokerman 的自动加载类
<?php

// change the following paths if necessary
$yiic=dirname(__FILE__).'/../../framework/yiic.php';
$config=dirname(__FILE__).'/config/console.php';
require_once(dirname(__FILE__).'/extensions/workerman/workerman/Autoloader.php') ; //加载workerman自动加载类
require_once($yiic);
4、测试console 控制器
//WorkerCommand.php
<?php
use Workerman\Worker;

/**
* Created by PhpStorm.
* User: Qmore
* Date: 16-12-28
* Time: 上午11:45
*/

class WorkerCommand extends CConsoleCommand {

public function actionStart(){
global $argv ;
$argv = array('yii','start') ;
$this->_run() ;
}

public function actionStop(){
global $argv ;
$argv = array('yii','stop') ;
$this->_run() ;
}

public function actionStartd(){
global $argv ;
$argv = array('yii','start','-d') ;
$this->_run() ;
}

public function actionStatus(){
global $argv ;
$argv = array('yii','status') ;
$this->_run() ;
}

private function _run(){
$worker = new Worker('text://0.0.0.0:8283') ;
$worker->count = 1 ;
$worker->onWorkerStart = function(){
$a = AnswerExam::model()->findByPk(163482) ; //愉快的使用YII ar类
echo "id is $a->id\n" ;
} ;
$worker->runAll() ;
}
}
5、运行情况


二、yii2的集成方式

yii2集方式推荐用composer即可,与yii2框架共用composer的加载类,简单方便而且对以后升级也十分简单。
代码部分跟yii1没有多大区别。

评论

の∑

博主,我有个技术问题要请教你。你的博客登陆成功之后,是如何通知这个页面关闭登陆窗口的那。
8年12个月前

qmore

@の∑ 登录其实是在弹出窗口那边的逻辑,只是简单的调用 window.close();,之所以让你觉得是 “这个页面关闭登录窗口的”错觉是因为在弹出窗口关闭之前调用了window.opener.focus();
具体代码就是
...
window.opener.focus();
window.close();
...
8年11个月前

Jackylinゞ

[阴险]
8年11个月前

の∑

[赞]
8年10个月前

Lito

yii2 集成workerman 能不能给个demo

8年10个月前

qmore

[馋嘴]
8年9个月前

         

asd[太开心]
7年6个月前

惬之意

[馋嘴]
7年3个月前

Game life

这博客开源吗?
7年7个月前

qmore

[奥特曼]
6年4个月前

qmore

[微笑]
6年10个月前
发表评论,请先

游客