中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Composer怎么構建一個PHP 框架

發布時間:2020-12-10 15:17:08 來源:億速云 閱讀:204 作者:Leah 欄目:開發技術

本篇文章給大家分享的是有關使用Composer怎么構建一個PHP 框架,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

composer.json:

{ "require": {  "codingbean/macaw": "dev-master" }}

運行 composer update,成功之后將得到以下目錄:

使用Composer怎么構建一個PHP 框架

至此,Macaw 包安裝成功!

下面,就是見證奇跡的時刻!我們將賦予 MFFC 生命力,讓它真正地跑起來!

新建 MFFC/public 文件夾,這個文件夾將是用戶唯一可見的部分。在文件夾下新建 index.php 文件:

<&#63;php// Autoload 自動載入require '../vendor/autoload.php';// 路由配置require '../config/routes.php';

上面一行表示引入 Composer 的自動載入功能,下面一行表示載入路由配置文件。新建 MFFC/config 文件夾,在里面新建 routs.php 文件,內容如下:

<&#63;phpuse NoahBuscher\Macaw\Macaw;Macaw::get('fuck', function() { echo "成功!";});Macaw::get('(:all)', function($fu) { echo '未匹配到路由<br>'.$fu;});Macaw::dispatch();

Macaw 的文檔位于https://github.com/NoahBuscher/Macaw,請按照你的 HTTP 服務軟件類型自行設置偽靜態,其實跟絕大多數框架一樣:“將所有非靜態文件全部指向 index.php”。

然后,將某一個端口用 Apache 或 Nginx 分配給 MFFC/public 目錄,這一步十分建議用 Apache 或者 Nginx 做。

如果使用 PHP 內置 HTTP 服務器

cd public && php -S 127.0.0.1:3000

將導致路由的Macaw::get('fuck' 必須寫成Macaw::get('/fuck' 才能響應。

目前的代碼使用 Apache + mod_php 和 Nginx + php-fpm 方式均沒有問題。

我在本地綁定了 81 端口,訪問http://127.0.0.1:81/fuck 可以看到:

使用Composer怎么構建一個PHP 框架

如果頁面亂碼,請調整編碼為 UTF-8。如果你成功看到以上頁面,那么恭喜你,路由配置成功!

Macaw 只有一個文件,去除空行總共也就一百行多一點,通過代碼我們能直接看明白它是怎么工作的。下面我簡略分析一下:

1. Composer 的自動加載在每次 URL 驅動 MFFC/public/index.php 之后會在內存中維護一個全量命名空間類名到文件名的數組,這樣當我們在代碼中使用某個類的時候,將自動載入該類所在的文件。

2. 我們在路由文件中載入了 Macaw 類:“use NoahBuscher\Macaw\Macaw;”,接著調用了兩次靜態方法 ::get(),這個方法是不存在的,將由MFFC/vendor/codingbean/macaw/Macaw.php 中的__callstatic() 接管。

3. 這個函數接受兩個參數,$method 和 $params,前者是具體的 function 名稱,在這里就是 get,后者是這次調用傳遞的參數,即 Macaw::get('fuck',function(){...}) 中的兩個參數。第一個參數是我們想要監聽的 URL 值,第二個參數是一個 PHP 閉包,作為回調,代表 URL 匹配成功后我們想要做的事情。

4.__callstatic() 做的事情也很簡單,分別將目標URL(即 /fuck)、HTTP方法(即 GET)和回調代碼壓入$routes、$methods 和$callbacks 三個 Macaw 類的靜態成員變量(數組)中。

5. 路由文件最后一行的Macaw::dispatch(); 方法才是真正處理當前 URL 的地方。能直接匹配到的會直接調用回調,不能直接匹配到的將利用正則進行匹配。

以上就是使用Composer怎么構建一個PHP 框架,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

元朗区| 清流县| 东城区| 榕江县| 襄垣县| 聊城市| 常宁市| 乐昌市| 楚雄市| 绵阳市| 西林县| 泰顺县| 泸州市| 曲周县| 马鞍山市| 临城县| 广东省| 开阳县| 沽源县| 武邑县| 故城县| 卓资县| 柳林县| 连城县| 井冈山市| 北辰区| 剑阁县| 米林县| 湘潭市| 乌拉特前旗| 徐水县| 沾益县| 高要市| 鄂尔多斯市| 习水县| 民和| 内黄县| 宁河县| 通化县| 房产| 东平县|