成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

zanphp源碼解讀 - 應(yīng)用的啟動(dòng)

Jioby / 2362人閱讀

摘要:獲取應(yīng)用并啟動(dòng)分析設(shè)置應(yīng)用名稱獲取本身實(shí)例想容器注冊(cè)單例設(shè)置應(yīng)用基礎(chǔ)路徑其他初始化工作初始化容器其他初始化工作創(chuàng)建根據(jù)前面的知識(shí)掃盲可知道返回的真身是位于分析繼承這里就把中的函數(shù)都放在分析了服務(wù)的啟動(dòng)主入口函

獲取應(yīng)用并啟動(dòng)

php bin/httpd

createHttpServer();
$server->start();

init/app.php


分析 Application

vendor/zanphp/framework/src/Foundation/Application.php

    public function __construct($appName, $basePath)
    {
        // 設(shè)置應(yīng)用名稱
        $this->appName = $appName;

        // 獲取 本身實(shí)例
        static::setInstance($this);

        // 想容器注冊(cè)單例
        ZanPHPContainer::getInstance()->instance(ApplicationContract::class, $this);

        // 設(shè)置 應(yīng)用 基礎(chǔ)路徑
        $this->setBasePath($basePath);

        // 其他初始化工作
        $this->bootstrap();
    }

    protected function bootstrap()
    {
        // 初始化 容器
        $this->setContainer();
        // 其他初始化工作
        foreach ($this->bootstrapItems as $bootstrap) {
            $this->make($bootstrap)->bootstrap($this);
        }
    }
    
    /**
     * get http server. 創(chuàng)建 httpServer
     *
     * 根據(jù) 前面 的知識(shí)掃盲 可知道 返回的 真身 是 ZanPHPHttpServerServer 
     * 位于 vendor/zanphp/http-server/src/Server.php
     * @return anFrameworkNetworkHttpServer
     */
    public function createHttpServer()
    {
        /** @var Factory $factory */
        $factory = make(Factory::class, ["server"]);
        $server = $factory->createHttpServer();

        $this->server = $server;

        return $server;
    }
分析 Server.php

vendor/zanphp/http-server/src/Server.php
vendor/zanphp/server-base/src/ServerBase.php

/*
 * 繼承 ZanPHPServerBaseServerBase 
 * 這里 就 把 ServerBase 中的 函數(shù) 都放在 Server 分析了
 */
class Server extends ServerBase
{
    // 服務(wù)的啟動(dòng)主入口函數(shù)
    // 服務(wù)的啟動(dòng)主入口函數(shù)
    // 服務(wù)的啟動(dòng)主入口函數(shù)
    public function start();
    
    // 服務(wù) 啟動(dòng)初始化 包括 自定義的啟動(dòng)項(xiàng)  配置在  init/ServerStart/.config.php
    function bootServerStartItem();
    
    // worker 啟動(dòng)初始化 包括 自定義的啟動(dòng)項(xiàng)  配置在  init/WorkerStart/.config.php
    function bootServerStartItem();
    
    // 請(qǐng)求處理函數(shù)
    public function onRequest(SwooleHttpRequest $httpRequest, SwooleHttpResponse $httpResponse)
    {
        // ...
        /** 請(qǐng)求處理類 后續(xù)講解 */
        (new RequestHandler())->handle($httpRequest, $httpResponse);
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/26068.html

相關(guān)文章

  • zanphp源碼解讀 - 目錄結(jié)構(gòu)

    前言 本系列源碼解讀已 http-demo 項(xiàng)目為例 目錄說明 showImg(https://segmentfault.com/img/bVX8wy?w=452&h=431); 主要關(guān)心 圖片箭頭指向目錄http://zanphpdoc.zanphp.io/we... bin: 服務(wù)啟動(dòng)bin文件目錄 init: 應(yīng)用初始化相關(guān) resource: 配置文件目錄,具體配置見 項(xiàng)目配置 src...

    jsliang 評(píng)論0 收藏0
  • zanphp源碼解讀 - 請(qǐng)求與響應(yīng)

    摘要:前言也許這是我們最關(guān)系的一個(gè)環(huán)節(jié)了。一個(gè)應(yīng)用簡(jiǎn)單來說無非就是請(qǐng)求和相應(yīng)了。獲取你真的該補(bǔ)補(bǔ)協(xié)程的相關(guān)知識(shí)了。 前言 也許這是我們最關(guān)系的一個(gè)環(huán)節(jié)了。一個(gè)web應(yīng)用簡(jiǎn)單來說無非就是請(qǐng)求和相應(yīng)了。獲取你真的該補(bǔ)補(bǔ) 協(xié)程 的相關(guān)知識(shí)了。不過。。不懂協(xié)程懂進(jìn)程~ 那就 當(dāng)成進(jìn)程來看 一個(gè)請(qǐng)求一個(gè)進(jìn) (xie) 程.懂線程~ 那就 當(dāng)成 線程來看 一個(gè)請(qǐng)求一個(gè)線 (xie) 程 分析 Requ...

    ybak 評(píng)論0 收藏0
  • zanphp源碼解讀 - 環(huán)境安裝

    摘要:前言因?yàn)楸鞠盗兄饕庾x源碼,所以環(huán)境采用作者自己搭建的適用系列的環(huán)境。 前言 因?yàn)楸鞠盗兄饕庾xzanphp源碼, 所以環(huán)境采用作者自己搭建的適用 zan 系列的 docker 環(huán)境。 https://github.com/cjeruen/zan-docker 環(huán)境相關(guān)說明 本系列基礎(chǔ)目錄都在 ~/zan-code 目錄下進(jìn)行 如有變更 自行 切換目錄 安裝 docker 與 co...

    hosition 評(píng)論0 收藏0
  • zanphp源碼解讀 - 知識(shí)掃盲

    摘要:中的容器容器介紹容器中獲取一個(gè)類的實(shí)例容器中注冊(cè)于獲取類的單例函數(shù)理解面向接口開發(fā)會(huì)幫助你更好的理解容器類容器幫助函數(shù)獲取類的實(shí)例注冊(cè)類的單例占位有待補(bǔ)充 PHP協(xié)程與yield 我說不如你查閱相關(guān)文檔與資料 Iterator(迭代器)接口 生成器總覽在PHP中使用協(xié)程實(shí)現(xiàn)多任務(wù)調(diào)度 當(dāng)然 如果你暫時(shí) 懶的話 yield 當(dāng)成 return 關(guān)鍵字就行 zanphp中的命名空間 Za...

    馬龍駒 評(píng)論0 收藏0
  • zanphp源碼解讀 - MVC說起

    摘要:前言當(dāng)然從我們熟悉但不完全熟悉的說起。下面是中的具體邏輯了。這里采用的是的方式。 前言 當(dāng)然從我們熟悉(但不完全熟悉)的 MVC 說起。簡(jiǎn)(zhi)單(jie)的描述. 1. MVC 概覽 1.1. URL 規(guī)則 上篇 目錄說明中 提到的,這里不多說 規(guī)則就是這樣,后面來說其源碼 1.2. Controller && Action src/Index/IndexController.p...

    aisuhua 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<