搜尋
首頁開發工具composer教你利用composer實現路由加載

教你利用composer實現路由加載

Jul 10, 2020 pm 02:10 PM
composer路由

下面由composer教程欄位給大家介紹利用composer實現路由加載,希望對需要的朋友有所幫助!

教你利用composer實現路由加載

#本教學範例程式碼見https:/ /github.com/johnlui/My-First-Framework-based-on-Composer

久負盛名的CodeIgniter 框架是許多人的PHP 開發入門框架,同樣也是我開始學習如何從頭開始建立網站的框架。在 CI 中我學到了很多,其中對 MVC 的深入理解和對框架本質的理解對我的影響最大。從使用框架是為了提高開發效率的角度來看,框架的本質就是路由。

推薦 https://github.com/NoahBuscher/Macaw,對應的 Composer 套件為 noahbuscher/macaw 。

下面開始安裝它,更改composer.json:

 "require": {
    "noahbuscher/macaw": "dev-master"
  },

運行composer install,成功之後得到以下目錄

教你利用composer實現路由加載

至此,Macaw 套件安裝成功!

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

1:新App/config 資料夾,在裡面新建routs.php 文件,內容如下:
教你利用composer實現路由加載

2:在入口文件index.php中載入routs. php 檔案
教你利用composer實現路由加載

Macaw 的文件位於https://github.com/NoahBuscher/Macaw,請依照你的HTTP 服務軟體類​​型自行設定偽靜態,其實跟絕大多數框架一樣:「將所有非靜態文件全部指向index.php」。

設定成功後造訪網域:
教你利用composer實現路由加載

如果頁面亂碼,請調整編碼為 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" role="presentation" style="position: relative;"> metho##d

    ###params,前者是具體的function 名稱,這裡就是get,後者是這次呼叫傳遞的參數,即Macaw::get('fuck',function(){ …}) 中的兩個參數。第一個參數是我們想要監聽的 URL 值,第二個參數是一個 PHP 閉包,作為回調,代表 URL 匹配成功後我們想要做的事情。 ###
  4. __callstatic() 做的事情也很简单,分别将目标URL(即 /fuck)、HTTP方法(即 GET)和回调代码压入 routes" role="presentation" style="position: relative;">routesmethods 和 $callbacks 三个 Macaw 类的静态成员变量(数组)中。

  5. 路由文件最后一行的 Macaw::dispatch(); 方法才是真正处理当前 URL 的地方。能直接匹配到的会直接调用回调,不能直接匹配到的将利用正则进行匹配。

以上是教你利用composer實現路由加載的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:csdn。如有侵權,請聯絡admin@php.cn刪除
作曲家:簡化PHP項目開發作曲家:簡化PHP項目開發Apr 15, 2025 am 12:08 AM

Composer簡化PHP項目開發的步驟包括:1)添加依賴,如在composer.json中添加"laravel/framework":"^8.0";2)自動加載,通過定義命名空間和類路徑生成autoload.php文件;3)優化性能,使用composerdump-autoload-o和composerinstall--no-dev--optimize-autoloader命令。通過這些步驟,開發者可以提高效率並避免常見錯誤。

作曲家憑證:是什麼使某人成為作曲家?作曲家憑證:是什麼使某人成為作曲家?Apr 14, 2025 am 12:13 AM

成為作曲家的關鍵要素包括:1.掌握音樂理論,2.具備創造力和原創性,3.擁有技術技能,4.能夠進行情感表達和故事講述,5.理解文化和歷史背景,6.積累實踐和經驗,這些要素共同構成了作曲家的身份和能力。

成為作曲家的途徑:實用指南成為作曲家的途徑:實用指南Apr 13, 2025 am 12:11 AM

成為作曲家的步驟包括:1.掌握音樂基本元素,如音符、節奏、和聲、旋律;2.選擇合適的技術工具,如AbletonLive;3.理解作曲的過程,包括靈感獲取、構思、編寫、修改和完善;4.從簡單旋律創作開始,逐步嘗試複雜技巧如和聲進行;5.通過調試技巧解決常見問題,如音符選擇和節奏安排;6.應用性能優化和最佳實踐,如使用模板、版本控制和協作。

作曲家:構建強大PHP應用程序的關鍵作曲家:構建強大PHP應用程序的關鍵Apr 12, 2025 am 12:05 AM

Composer是構建健壯PHP應用的關鍵工具,因為它簡化了依賴管理,提升了開發效率和代碼質量。 1)Composer通過composer.json文件定義項目依賴,並自動下載和管理這些依賴。 2)它生成composer.lock文件確保依賴版本一致,並通過vendor/autoload.php實現自動加載。 3)使用示例包括基本用法如添加日誌庫,以及高級用法如版本約束和環境變量管理。 4)常見錯誤調試技巧包括處理依賴衝突和網絡問題。 5)性能優化建議包括使用composer.lock文件和優化自動加載。

作曲家專業知識:是什麼使某人熟練作曲家專業知識:是什麼使某人熟練Apr 11, 2025 pm 12:41 PM

要在使用Composer時變得熟練,需要掌握以下技能:1.熟練使用composer.json和composer.lock文件,2.理解Composer的工作原理,3.掌握Composer的命令行工具,4.了解基本和高級用法,5.熟悉常見錯誤與調試技巧,6.優化使用和遵循最佳實踐。

作曲家在做什麼?作曲家在做什麼?Apr 08, 2025 am 12:19 AM

Composer是PHP的依賴管理工具,用於聲明、下載和管理項目依賴。 1)通過composer.json文件聲明依賴,2)使用composerinstall命令安裝依賴,3)解析依賴樹並從Packagist下載,4)生成autoload.php文件簡化自動加載,5)優化使用包括使用composerupdate--prefer-dist和調整autoload配置。

什麼是應用作曲家?什麼是應用作曲家?Apr 07, 2025 am 12:07 AM

AppComposer是一種用於構建和管理應用程序的工具。 1)它通過拖拽和配置預定義組件簡化應用開發,提高效率。 2)開發者可以定義組件、組合界面、定義業務邏輯,並最終渲染應用。 3)支持基本和高級用法,如任務管理和條件渲染,幫助構建靈活的應用。

作曲家是用什麼?作曲家是用什麼?Apr 06, 2025 am 12:02 AM

Composer是PHP的依賴管理工具。使用Composer的核心步驟包括:1)在composer.json中聲明依賴,如"stripe/stripe-php":"^7.0";2)運行composerinstall下載並配置依賴;3)通過composer.lock和autoload.php管理版本和自動加載。 Composer簡化了依賴管理,提升了項目效率和可維護性。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。