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