摘要:就不多說了,是的包管理器,和的,的差不多里面有自動加載的配置,可以幫助我們自動加載我們的類我們通過來做路由演示首先安裝創建個文件夾,我命名為了這個隨便然后創建文件安裝命令行進入文件夾后這樣的話下好了,在根目創建文件然后命令行讓服務跑起
composer就不多說了,是php的包管理器,和node.js的npm,python的pip差不多
composer里面有自動加載的配置,可以幫助我們自動加載我們的類
我們通過slim來做路由演示
創建個文件夾,我命名為了modernroute(這個隨便)
然后創建composer.json文件
安裝slim,命令行進入文件夾后
composer require slim/slim "^3.0"
這樣的話slim下好了
,在根目創建index.php文件
get("/",function(){ echo "is mine"; }); $app->run();
然后命令行
php -S localhost:8000
讓服務跑起來;
如果我們在slim中創建了路由,希望由controller中的方法執行,而不是像這樣通過匿名函數該怎么樣呢?
slim官方文檔給了我們方法
(https://www.slimframework.com/docs/v3/objects/router.html#how-to-create-routes下搜索關鍵字HomeController::class)
我們希望通過根目錄Controller文件夾下的UserCon類中的getUserName方法來處理 "/name"這個路由
修改index.php
require "vendor/autoload.php"; $app = new SlimApp(); $app->get("/",function(){ echo "is mine"; }); $app->get("/name", ControllerUserCon::class.":getUserName"); $app->run();
然后再根目錄創建Controller文件夾,文件夾下創建UserCon文件
文件夾結構如下
- Controller - UserCon.php - vendor - index.php - composer.json - compooser.lock
在UserCon.php里編輯內容
啟動服務瀏覽器輸入 localhost:8000/name,發現報錯
打開錯誤調試后發現slim找不到ControllerUserCon這個類
composer自動加載
(https://www.slimframework.com/docs/v3/handlers/error.html下搜索displayErrorDetails)這時候我們就可以使用composer中的自動加載來加載我們想要的類了。
在我們在composer.json文件中
加入{ "require": { "slim/slim": "^3.0" }, "autoload": { "psr-4" : { "" : "" } } }這里的意思是根據PSR4規范來加載對應的類(PSR0,PSR4都可以,這里用PSR4)
冒號前面是根命名空間,冒號后面是根目錄(注意""轉義)
因為我們這里是在ControllerUserCon下加載根目錄下Controller文件下的UserCon類,冒號前面是根命名空間(這里根命名空間就是""),
冒號后面是根目錄,所以寫成了"psr-4" : { "" : "" }的形式
添加完這段代碼后需要用composer重寫自動加載(vendor/autoload)
在名命令行中composer dump-autoload或者
composer install再次打開服務,輸入localhost:8000/name
會發現服務已經以來了
如果我們把跟命名空間定義為其他的,比如說Van
我們希望Van這個命名空間指向Controller
那么需要在composer中修改index中"/name"的路由
$app->get("/name", VanUserCon::class.":getUserName");修改Controller目錄下的UserCon.php
這樣的話,就是Van這個命名空間指向Controller這個文件夾了
我們需要將composer.json文件修改為{ "require": { "slim/slim": "^3.0" }, "autoload": { "psr-4": { "Van": "Controller/" } } }然后重新composer install一下,就可以了,啟動服務/name下依然會正常顯示。
"files"配置在composer.json下autoload里,files配置的決定了多帶帶會自動加載進來的文件,不要遵守PSR0和PSR4,一般用來引入公共文件
我們在composer.json中加入 "files": ["Common/functions.php"]{ "require": { "slim/slim": "^3.0" }, "autoload": { "psr-4": { "Van": "Controller/" }, "files": ["Common/functions.php"] } }然后重新install
在根目錄中建立Common文件夾,創建functions.php文件
寫入然后路由中加入
$app->get("/givemefive",function(){ getMeFive(); });啟動服務訪問 localhost:8000/givemefive
頁面顯示haha~說明正常,composer幫我們加載了這個文件
Class-mapClass-map也是一種寫法,但是沒增加一個類都要執行一邊composer,以便生成新的autoload_classmap.php文件
比如"classmap": ["Model/"]在composer中這樣寫,
他就會把Model/下的所有類文件根據明名空間加類名一一對應起來
比如你Model中有個User類
他會生成
"ModelUser" => $baseDir . "/Model/User.php",
這樣的對應,缺點就是每當有新的類文件我們都需要執行一下composer install生成新的classmap
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/28364.html
摘要:自動加載是指在代碼中,不需要顯式地使用文件路徑將類庫文件包含進來,便可使用該文件中定義的類庫。在里是這樣進行配置的按照的規則,當試圖自動加載這個時,會去尋找這個文件。最后,只要在項目中你所需要的所有類庫都會在適當的時候自動載入。 Composer是PHP中用來管理依賴(dependency)關系的工具。你可以在自己的項目中聲明所依賴的外部工具庫(libraries),Composer...
摘要:中文網系統要求運行需要以上版本。注中的路徑為相對于的路徑這個時候,你就可以調用你自己編寫的函數庫或者類庫了注本文內容參考了中文網,后續還會更新其它的實用功能 1.簡介 Composer 是 PHP 的一個依賴管理工具。它允許你申明項目所依賴的代碼庫,它會在你的項目中為你安裝他們。《Composer 中文網》 2.系統要求 運行 Composer 需要 PHP 5.3.2+ 以上版本。C...
摘要:首先支持下黃老師的視頻網站轉型這篇的學習筆記也是根據他的視頻教程寫的,一共十集,講解的很簡單感興趣的同志們可以上他視頻網站購買視頻,網站地址放在文末我的博客作用自動安裝所需要的模塊,自動加載管理項目,發布到網上上去是默認的加載組件地址安裝下 首先支持下黃老師的視頻網站轉型這篇composer的學習筆記也是根據他的視頻教程寫的,一共十集,講解的很簡單感興趣的同志們可以上他視頻網站購買視頻...
摘要:中是如何實現代碼的自動加載的入口腳本的以下兩行代碼其中的作用注冊為自動加載函數。這個負責引入了一個類中的,隨后立即解除注冊。注冊中的為自動加載函數,并利用配置文件即目錄下的文件對這個自動加載函數進行了初始化。 1.基本知識 Include與require 的作用: 當一個文件被包含時,其中所包含的代碼繼承了 include 所在行的變量范圍。從該處開始,調用文件在該行處可用的任何...
閱讀 2620·2021-11-17 17:00
閱讀 1873·2021-10-11 10:57
閱讀 3740·2021-09-09 11:33
閱讀 914·2021-09-09 09:33
閱讀 3554·2019-08-30 14:20
閱讀 3317·2019-08-29 11:25
閱讀 2801·2019-08-26 13:48
閱讀 742·2019-08-26 11:52