标签 - Swoole

PHP Swoole    2017-12-04 10:12:53    429    0    0

公司里很多网站都是ThinkPHP框架

研究了下如何用Swoole 加载ThinkPHP框架

方向很明确 , onWorkerStart 里加载框架

onRequest 里调用每次请求入口

下面顺着文件一点点看吧


首先是入口文件 /public/index.php

  1. // 定义应用目录
  2. define('APP_PATH', __DIR__ . '/../application/');
  3. // 加载框架引导文件
  4. require __DIR__ . '/../thinkphp/start.php';

对我们有用的只有APP_PATH , 继续往下看/thinkphp/start.php

  1. namespace think;
  2. // ThinkPHP 引导文件
  3. // 加载基础文件
  4. require __DIR__ . '/base.php';
  5. // 执行应用
  6. App::run()->send();

这里就是我们需要的两个方面了 , 加载框架和请求入口

onWorkerStartrequire __DIR__ . '/base.php'
onRequestApp::run()->send()

好了 , 必要条件已经齐了 , 开始写吧

框架根目录下创建文件swooleServer.php(可以随意命名)

  1. <?php
  2. // 调试模式开关
  3. define("APP_DEBUG", true);
  4. // 定义应用目录
  5. define('APP_PATH', __DIR__ .'/application/');
  6. class server
  7. {
  8. private $serv;
  9. public function __construct(){
  10. $this->serv = new swoole_http_server("0.0.0.0", 9503);
  11. $this->serv->set([
  12. 'worker_num' => 2,
  13. 'dispatch_mode' => 2,
  14. ]);
  15. $this->serv->on('WorkerStart', array($this, '