国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > PHP > 正文

Yii2的深入學(xué)習(xí) 入口文件

2020-03-22 19:54:33
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
  • 前一段時(shí)間,嘗試去寫一個(gè) php 的簡(jiǎn)單框架,發(fā)現(xiàn)自己還欠缺很多,就暫時(shí)停掉了。準(zhǔn)備先讀完 Yii2 的源碼,然后再去看完 laravel 的源碼,最后再繼續(xù)去寫這個(gè)簡(jiǎn)單的 php 框架。

    之后關(guān)于 Yii2 的學(xué)習(xí)暫時(shí)都是以basic 的項(xiàng)目為例。

    我們先來(lái)看一下 Yii2 的入口文件。在配置 Yii2 的 nginx 的配置時(shí),有這樣幾句

        # server_name mysite.local;    root        /path/to/basic/web;    ......    location / {        # Redirect everything that isn't a real file to index.php        try_files $uri $uri/ /index.php?$args;    }

    可以看到web的入口文件是 web 文件夾下的 index.php 文件。

    index.php 文件的內(nèi)容如下:

    <?php// comment out the following two lines when deployed to production// 定義 debug 的標(biāo)記defined('YII_DEBUG') or define('YII_DEBUG', true);// 定義環(huán)境,有 'dev' 和 'prod' 兩種defined('YII_ENV') or define('YII_ENV', 'dev');// 引入 vendor 中的 autoload.php 文件,會(huì)基于 composer 的機(jī)制自動(dòng)加載類require(__DIR__ . '/../vendor/autoload.php');// 引入 Yii 框架的文件 Yii.phprequire(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');// 引入 web 的 config 文件,并將返回值即配置項(xiàng)放入 $config 變量中$config = require(__DIR__ . '/../config/web.php');// new 一個(gè) yiiwebApplication 的實(shí)例,并執(zhí)行它的 run 方法// 用 $config 作為 yiiwebApplication 初始化的參數(shù)(new yiiwebApplication($config))->run();

    可以看到其核心代碼,就只有最后一句,我們所有的請(qǐng)求的處理都是通過 run 方法去調(diào)用執(zhí)行的,內(nèi)部的具體內(nèi)容之后會(huì)講解。

    Yii2 其實(shí)還有另外一個(gè)入口,是 Yii2 命令行的入口文件,即頂級(jí)目錄下的 yii 文件。

    yii 文件的內(nèi)容如下:

    #!/usr/bin/env php<?phpdefined('YII_DEBUG') or define('YII_DEBUG', true);// fcgi doesn't have STDIN and STDOUT defined by default// 定義 STDIN 和 STDOUTdefined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w'));require(__DIR__ . '/vendor/autoload.php');require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php');// 引入 console 的 config 文件,并將返回值即配置項(xiàng)放入 $config 變量中$config = require(__DIR__ . '/config/console.php');// new 一個(gè) yiiconsoleApplication 的實(shí)例,并執(zhí)行它的 run 方法// 用 $config 作為 yiiconsoleApplication 初始化的參數(shù)$application = new yiiconsoleApplication($config);$exitCode = $application->run();// 退出exit($exitCode);

    與 index.php 文件最大的區(qū)別在于,它使用的是yiiconsoleApplication 類,而 index.php 中使用的yiiwebApplication。

    這就是 Yii2 的兩個(gè)入口,如果是 advanced 的項(xiàng)目的話,入口會(huì)更多,但基本內(nèi)容都是這兩種形式之一。

    今天只是一個(gè)簡(jiǎn)單的開篇,就先到這里。

    對(duì) Yii2 源碼有興趣的同學(xué)可以關(guān)注項(xiàng)目yii2-2.0.3-annotated,現(xiàn)在在上面已經(jīng)添加了不少關(guān)于 Yii2 源碼的注釋,之后還會(huì)繼續(xù)添加~

    有興趣的同學(xué)也可以參與進(jìn)來(lái),提交Yii2 源碼的注釋。

    PHP編程

    鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

  • 發(fā)表評(píng)論 共有條評(píng)論
    用戶名: 密碼:
    驗(yàn)證碼: 匿名發(fā)表
    主站蜘蛛池模板: 宁南县| 绍兴县| 绥滨县| 睢宁县| 新田县| 濉溪县| 新竹县| 磴口县| 简阳市| 新晃| 靖江市| 萍乡市| 郸城县| 英山县| 邵武市| 凉山| 辛集市| 霸州市| 武汉市| 沈丘县| 扶绥县| 黑河市| 辉南县| 赤壁市| 黄平县| 竹山县| 南川市| 温宿县| 新郑市| 宜州市| 无为县| 随州市| 临湘市| 新津县| 湘阴县| 湘西| 临汾市| 汝阳县| 保靖县| 威信县| 汶上县|