摘要:框架關(guān)鍵技術(shù)解析讀書筆記二第五章框架應(yīng)用程序根目錄版本默認(rèn)的框架應(yīng)用程序是符合規(guī)范的,所以相應(yīng)的目錄結(jié)構(gòu)也是基本固定的,不同的目錄加載了功能文件,如果添加了新的目錄,需要在文件中添加規(guī)范的自動加載部分并執(zhí)行命令。
Laravel 框架關(guān)鍵技術(shù)解析·讀書筆記(二)
框架應(yīng)用程序根目錄(5.1版本)
默認(rèn)的Laravel框架應(yīng)用程序是符合PSR規(guī)范的,所以相應(yīng)的目錄結(jié)構(gòu)也是基本固定的,不同的目錄加載了功能文件,如果添加了新的目錄,需要在composer.json文件中添加PSR規(guī)范的自動加載部分并執(zhí)行update命令。
App: 主要包括應(yīng)用程序的核心代碼,用戶構(gòu)建應(yīng)用的大部分工作都在app目錄下進(jìn)行,包括路由文件、控制文件、模型文件等。
bootstrap:主要包含幾個框架啟動和自動加載配置文件
config:主要包含應(yīng)用程序常用的配置文件信息
database:主要包含數(shù)據(jù)庫遷移和數(shù)據(jù)庫填充文件。
public :應(yīng)用程序的入口文件,包含應(yīng)用程序入口文件index.php,同時包含靜態(tài)資源文件如CSS,JavaScript,images等。
resource:主要包含視圖文件。
storage:包含編譯后的blade模板,基于文件的session,文件緩存和日志文件等。
tests:主要包含自動化測試文件。
vendor:主要包含依賴庫文件,其中包括框架源代碼
.env:一個重要的文件,為Laravel框架的主配置文件。
composer.json:composer項目依賴管理工具
app目錄
應(yīng)用程序的大部分內(nèi)容都存在于app目錄下,該目錄同樣通過composer使用自動加載標(biāo)準(zhǔn)(PSR-4)來加載其中的文件,如果想改變目錄下的命名空間,可以使用artisan命令app:name完成,也可以直接修改composer.json文件實現(xiàn)。
console:主要包含所有的artisan命令
events:用來控制與事件相關(guān)的類
exceptions:包含應(yīng)用程序的異常處理類,用于處理應(yīng)用程序拋出的任何異常
Http:主要包含路由文件、控制器文件、請求文件,中間文件等,是應(yīng)用程序與Laravel框架源代碼等外部庫交互的主要文件。
Jobs:主要包含消息隊列的各種消息類文件
Listener:主要包含監(jiān)聽事件類文件。
Provider:主要包含服務(wù)提供者的相關(guān)文件。
vendor目錄
由一個個相互依賴的功能組件模塊組織起來的,可以獨(dú)立工作,也可以被組織起來協(xié)調(diào)工作。
composer:主要包含composer按照PSR規(guī)范生成的自動加載類。應(yīng)用程序的自動加載都是由這部分實現(xiàn)的。
laravel:包含laravel框架源代碼,代碼部分都包含在vendorlaravelframeworksrcIlluminate文件中
symfony:laravel框架的底層(如請求類、相應(yīng)類、文件管理類)使用了symfony框架的部分,所以該目錄包含這部分內(nèi)容。
monolog:包括日志記錄模塊文件
phpunit:包含程序單元測試模塊文件
路由
可以理解為將路由設(shè)置的過程理解為微程序內(nèi)部定義了一個路由表,與網(wǎng)絡(luò)中使用的路由器一樣,也事先需要有一個路由表。當(dāng)不同的請求到來時,根據(jù)路由表選擇不同的處理程序
基礎(chǔ)路由設(shè)置
基本路由是一個資源定位符(URL)對應(yīng)一個響應(yīng)程序,這個程序可以是一個閉包函數(shù),也可以是一個控制器響應(yīng)函數(shù)的標(biāo)識
具體格式:
Route::get("/",function () { return "Hello Laravel"; });
如果請求其他方法,則需要使用對應(yīng)的路由設(shè)置方法進(jìn)行定義,對應(yīng)的方法由get,post,put,delete等。
對于多種請求的路由定義,可以通過match和any方法實現(xiàn),
Route::match(["get","post"],"/",function () { return "Hello Laravel"; }); Route::any("home", function () { return "Hello Laravel"; });
路由參數(shù)
主要針對的是Get請求的情況
Route::get("資源標(biāo)識/{參數(shù)名}[?][/{參數(shù)名}……", "閉包函數(shù)或者控制器響應(yīng)函數(shù)標(biāo)識")[->where("參數(shù)名","正則表達(dá)式")]; Route::get("user/{id}",function ($id){ return "$id=" . $id; }); Route::get("user/{id}/{name}",function ($id, $name){ return "$id=" . $id . " and $name=" . $name; })->where(["id" => "[0-9]+", "name" => "[a-z]+"]);
控制器路由
基礎(chǔ)控制器路由
Route::get("home/{name}","HomeController@index");
- 隱式控制器路由 - RESTFul資源控制器路由
路由群組
路由命名
相當(dāng)于在路由定義時為路由起一個別名,以后可以使用別名來獲取路由的信息
?
控制器
視圖
視圖文件是以“.balde.php”后綴命名。
數(shù)據(jù)傳遞
數(shù)組方式
with函數(shù)
with加變量名方式
blade模板
@extends("布局文件名"):用于繼承一個布局文件
@section("區(qū)塊名"):用于定義一個區(qū)塊,可以有不同的結(jié)尾標(biāo)識,@show用于顯示這個區(qū)塊,@stop和@endsection用于結(jié)束一個區(qū)塊,@overwirte用于重寫前面的區(qū)塊
@parent:用于顯示繼承的布局模塊中的文件。
@yield("區(qū)塊文件",’默認(rèn)文件‘):用于定義在布局文件中定義一個區(qū)塊
@include("子視圖文件名稱"):用于在視圖文件中加載視圖文件。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/28657.html
摘要:判斷是否存在構(gòu)造函數(shù),不存在直接實例化,存在則通過來獲取輸入函數(shù),并有相應(yīng)的方法解決依賴參數(shù)問題,實現(xiàn)依賴注入。 Laravel 框架關(guān)鍵技術(shù)解析·讀書筆記(一) 第一章 入口文件 請求訪問的入口文件,主要完成幾部分工作,分別是: 自動加載函數(shù)的添加 服務(wù)器實例化與服務(wù)注冊 路由加載 請求實例化與路由分發(fā) 相應(yīng)生成與發(fā)送 其中,自動加載函數(shù)用于包含引用文件,改文件是composer...
摘要:裝飾者模式是在開放關(guān)閉原則下實現(xiàn)動態(tài)添加或減少功能提高程序的擴(kuò)展性詳細(xì)介紹注本文可以作為學(xué)習(xí)裝飾者模式的基礎(chǔ)篇但是我個人更建議配套裝飾者模式來學(xué)習(xí)效果更佳本文中的例子是由框架關(guān)鍵技術(shù)解析中摘抄的。 裝飾者模式:是在開放-關(guān)閉原則下實現(xiàn)動態(tài)添加或減少功能,提高程序的擴(kuò)展性.詳細(xì)介紹注: 本文可以作為學(xué)習(xí)裝飾者模式的基礎(chǔ)篇,但是我個人更建議配套Decorator Pattern With...
摘要:裝飾對象包含一個真實對象的引用裝飾對象接受所有來自客戶端的請求。裝飾對象可以在轉(zhuǎn)發(fā)這些請求以前或以后增加一些附加功能。在面向?qū)ο蟮脑O(shè)計中,通常是通過繼承來實現(xiàn)對給定類的功能擴(kuò)展。 Decorator Pattern 裝飾者模式 綱要: 1. 一個初學(xué)者的疑惑 2. 裝飾者模式的特點(diǎn) 3. 簡單case掌握裝飾者模式 4. laravel中裝飾者模式的應(yīng)用 Con...
摘要:然后中間件使用方法來啟動獲取實例,使用類來管理主要分為兩步獲取實例,主要步驟是通過該實例從存儲介質(zhì)中讀取該次請求所需要的數(shù)據(jù),主要步驟是。 說明:本文主要通過學(xué)習(xí)Laravel的session源碼學(xué)習(xí)Laravel是如何設(shè)計session的,將自己的學(xué)習(xí)心得分享出來,希望對別人有所幫助。Laravel在web middleware中定義了session中間件IlluminateSess...
摘要:劃下重點(diǎn),服務(wù)容器是用于管理類的依賴和執(zhí)行依賴注入的工具。類的實例化及其依賴的注入,完全由服務(wù)容器自動的去完成。 本文首發(fā)于 深入剖析 Laravel 服務(wù)容器,轉(zhuǎn)載請注明出處。喜歡的朋友不要吝嗇你們的贊同,謝謝。 之前在 深度挖掘 Laravel 生命周期 一文中,我們有去探究 Laravel 究竟是如何接收 HTTP 請求,又是如何生成響應(yīng)并最終呈現(xiàn)給用戶的工作原理。 本章將帶領(lǐng)大...
閱讀 2044·2023-04-25 15:24
閱讀 1584·2019-08-30 12:55
閱讀 1621·2019-08-29 15:27
閱讀 476·2019-08-26 17:04
閱讀 2411·2019-08-26 10:59
閱讀 1806·2019-08-26 10:44
閱讀 2205·2019-08-22 16:15
閱讀 2593·2019-08-22 15:36