黄p网站_在线看中文字幕_亚洲电影免费观看_成人激情视频_欧美成视频_中国av在线

框架啟動(dòng)流程

一、自動(dòng)加載

我們?cè)趫?zhí)行如下命令的時(shí)候:

php easyswoole.php server start

項(xiàng)目目錄下的 easyswoole 這個(gè)文件,會(huì)搜索項(xiàng)目目錄下是否存在 composer 所生成的 autoload.php 這個(gè)文件,用于實(shí)現(xiàn) psr-4 自動(dòng)加載,當(dāng)文件不存在的時(shí)候,則終止框架啟動(dòng)。

二、基礎(chǔ)常量定義

在搜索到了 autoload.php 文件后,框架啟動(dòng)腳本則會(huì)認(rèn)定為已經(jīng)成功注冊(cè)了 composer 的自動(dòng)加載機(jī)制,隨后,會(huì)根據(jù)autoload.php 所在的位置,進(jìn)行如下幾個(gè)常量的預(yù)定義。

  • IN_PHAR

    定義規(guī)則為 defined('IN_PHAR') or define('IN_PHAR', boolval(\Phar::running(false)));,該常量可以用于判定當(dāng)前服務(wù)是否在 PHAR 環(huán)境中。

  • RUNNING_ROOT

    定義規(guī)則為 defined('RUNNING_ROOT') or define('RUNNING_ROOT', $realCwd);,該常量可以用于定義當(dāng)前服務(wù)運(yùn)行的根目錄,是一個(gè)絕對(duì)路徑。

  • EASYSWOOLE_ROOT

    定義規(guī)則為 defined('EASYSWOOLE_ROOT') or define('EASYSWOOLE_ROOT', IN_PHAR ? \Phar::running() : $realCwd);,該常量用于定義當(dāng)前項(xiàng)目所在路徑的根目錄,是一個(gè)絕對(duì)路徑。

三、bootstrap 文件引入

EasySwoole 啟動(dòng)腳本會(huì)判斷在項(xiàng)目根目錄下,也就是 EASYSWOOLE_ROOT.'/bootstrap.php' 這個(gè)文件是否存在,如果存在,那么則會(huì)執(zhí)行一次 require_once。用戶可以在框架沒(méi)有做任何的真實(shí)初始化之前,做自己的預(yù)處理或者是預(yù)定義。(注:3.4.x及以上版本在框架安裝時(shí)會(huì)自動(dòng)生成一個(gè) bootstrap 文件在項(xiàng)目根目錄,3.4.x 之前的版本需要用戶自行添加。)

四、啟動(dòng)命令解析

EasySwoole 主框架定義了一個(gè)命令容器,完整命名空間為 \EasySwoole\EasySwoole\Command\CommandRunner,這個(gè)是一個(gè)單例對(duì)象,是對(duì) \EasySwoole\Command\CommandManager 對(duì)象的進(jìn)一步調(diào)用封裝。在對(duì)象的構(gòu)造函數(shù)中,默認(rèn)注冊(cè)了 EasySwoole 自帶的幾個(gè)命令:

  • Crontab
  • Install
  • PhpUnit
  • Process
  • Server
  • Task

以如下啟動(dòng)命令為例:

php easyswoole.php server start -d

-d 可選,為守護(hù)啟動(dòng)參數(shù)

CommandRunner 會(huì)執(zhí)行 server 命令的 start 行為,其中,server 命令的完整實(shí)現(xiàn)在 \EasySwoole\EasySwoole\Command\DefaultCommand\Server。

Server 主命令

server 主命令被執(zhí)行時(shí),做了以下操作:

  • 判斷是否指定了運(yùn)行模式
    $mode = CommandManager::getInstance()->getOpt('mode');
    if(!empty($mode)){
      Core::getInstance()->runMode($mode);
    }
  • 執(zhí)行框架的初始化 \EasySwoole\EasySwoole\Core::getInstance()->initialize()

Start 行為

start 行為中,做了如下兩件事:

  • 獲取配置對(duì)象并設(shè)置運(yùn)行時(shí)必須參數(shù)
  • 執(zhí)行框架的最終啟動(dòng) \EasySwoole\EasySwoole\Core::getInstance()->createServer()->start();
主站蜘蛛池模板: 久草在线视频网 | 色偷偷噜噜噜亚洲男人 | 成人一级视频在线观看 | 午夜精品久久久久久久男人的天堂 | 九九香蕉视频 | 欧美伊人影院 | 国产高清视频在线 | 99久久久免费视频 | 亚洲免费一区 | 亚洲综合二区 | 少妇精品久久久久久久久久 | av国产精品 | 精品久久久久久国产 | 久在线视频 | 国产成人午夜精品5599 | 日韩精品一区二区三区在线观看 | 看毛片的网站 | 欧美亚洲一 | 免费的一级黄色片 | wwwjizz日本| 欧美一级免费 | 亚洲福利二区 | 国产精品久久九九 | 国产视频一二区 | 国产在线91 | 亚洲精品久久久久久下一站 | 久久久久久久中文 | 国产噜噜噜噜噜久久久久久久久 | 久久久国产一区二区 | 男女网站在线观看 | 免费成人一级片 | 亚洲一本| 久久久久国产精品 | 成人av观看| 在线看一级片 | 久久国产精品视频观看 | 午夜影院免费看 | 精品国产乱码久久久久久1区2区 | 久久久精彩视频 | 国产不卡视频在线观看 | www.国产精 |