1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          laravel框架(Laravel框架的核心架構是什么)

          來源:互聯網轉載 時間:2024-05-12 16:04:00

          ?
          使用過larave框架的朋友都知道laravel框架里面除了提供一些基本的功能(如控制器、視圖、模型)之外,還有中間件、門面、契約等,這些東西是如何在laravel框架運用起來的呢?今天就和大家詳聊一下。

          首先應該了解laravel框架的架構模式(設計核心,laravel 框架是使用服務組件化的開發模式開發的,laravel框架就是由不同的服務組件構成的)

          laravel 里面多個服務提供者構成了laravel組件。分層設計:把相同功能的類庫放在同一個文件夾里面。
          laravel框架有多個類組成服務,由多個服務組成組件。類 -> 服務 -> 組件
          laravel使用組件化的開發模式,多個類 -> 服務 -> 組件,多個類組成服務,多個服務構成組件。

          多個組件提供不同的服務,然后多個服務構成我們的項目。

          請求生命周期
          大概的流程如圖:

          理論上,生命周期主要有這么些階段,但其中,開發者大多數只需關注路由、中間件、控制器、閉包函數、邏輯處理等幾步
          當然,每一步的內部,還是會有更多細化的執行流程,在這里,一般不深入研究框架或改造框架,很少會細化研究,但研究底層,依舊是學習的好選擇。

          服務
          說的就是提供給你所需要的東西,在laravel里面所提供的服務有 認證服務、數據庫服務、緩存服務、隊列服務等等。laravel框架所有服務都定義在了app/config/app.php 里面

          ?
          服務提供者
          可以給你提供一組服務的東西就是服務提供者,laravel里面如上所示其實定義的服務器提供者,比如IlluminateAuthAuthServiceProvider::class,提供認證服務的服務提供者。IlluminateCacheCacheServiceProvider::class,提供緩存服務的服務提供者

          好處:開發者可以節省下更多的精力去處理項目邏輯,且不同開發個體之間能達到一定默契,最重要的是,項目達到分層解耦,業務邏輯只依賴于服務,并不依賴于服務底層的實現。
          解耦之后,我們可以任意升級或自定義服務的底層實現,只要確保底層類實現了該服務

          總結:其實服務是一個抽象的概念,服務器提供者是完成這個抽象概念的具體實施者

          服務容器
          把所有的服務放在一個盒子里,存放服務的容器。laravel里面的服務容器位于

          vendor/laravel/frameworksrcilluminateContainerContainer.php.

          Container.php 就是laravel框架的服務容器。

          契約
          用來規劃服務提供者的格式、方法、參數等,給服務提供者規范了一定約束。所以在框架里面所有的契約都是接口,這樣才能規范服務提供者。

          ?
          門面
          門面再一次展示了Laravel在設計上的優秀,它讓Laravel變得更加靈活易擴展,那么它的概念是:
          1 為開發者提供服務容器中服務的靜態代理

          2 它對服務訪問方式做了補充,之前使用服務必須獲取服務的實例,再調用服務的方法,但使用facade,就可以直接把服務當靜態對象來調用了。

          3 config/app.php中服務別名alias大多數都使用了facade

          4 使用facade是有風險的,并不是用的越多越好,這在手冊上有少量的介紹,但具體的,還是需要開發中去發現

          ?
          laravel框架總體架構圖

          如上圖所示:laravel框架是由多個服務組件構成的 -> 服務提供者(最下面的不同的服務組件)。
          FoundationApplication 用來創建服務提供者,創建好之后保存在ContainerContainer 的服務容器里面,交由他管理,Application 要繼承 Container。
          為了約定服務提供者提供的服務,我們定義一個規范,這就是契約。
          ?
          對于我們的用戶(最上面的用戶)想使用laravel框架,必須通過控制器來使用(上面的Controller),使用laravel框架主要是使用laravel里面的服務提供者(上面的 new 服務),這樣就是最傳統的開發模式,和服務器容器沒有直接關系,如果laravel這樣設計的話,基本上和其他框架一樣,沒有任何優勢。所以一般不怎么做。
          ?
          由于有契約,契約是服提供者的接口,所以我們也可以直接使用契約,new 服務旁邊的黃色線。使用契約用注入的方式,這樣使用的不好之處是如果一個方法里面使用多個契約的話,我們就得注入多個契約,這樣代碼看起來不優雅。

          ?
          于是laravel里面就出現了門面,門面的出現方便我們優雅的調用服務器提供者的類。由于每個服務提供者的類太長了如:

          IlluminateCookieCookieServiceProvider::class,IlluminateDatabaseDatabaseServiceProvider::class,

          所以又引出了別名,使用別名之后 簡化了我們調用的服務提供者的類。

          事件:laravel里面的模型里面的事件,比如用戶對數據庫操作時做的一個監聽。對整個項目運行進行監聽,有監聽的動作。類似tp5里面的鉤子和行為。
          中間件:做用戶的請求做一定的過濾。

          標簽:laravel框架-

          c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...

          2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...

          :喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...

          銀行u盾丟了可以補辦嗎?u盾失可以補領。以工商銀行為例子: u盾資格證書遺失后,必須由本人帶上有效的身份證和開通電子銀行的銀行卡,到地區隨意服務網點拆換u盾資格證書并進行證書下載。1、u盾報失期內,如必須申請辦理小額付款、轉賬業務,可試著通過網上銀行、手機銀行等方式開通"短消息認證支付”后絞易;2、各地區不一樣自助機器使用業務有差別,實際作用及實際操作要以機器網頁頁面展示為標...

          (資料圖)哈嘍小伙伴們 ,今天給大家科普一個小知識。在日常生活中我們或多或少的都會接觸到現代戲劇作品都有哪些方面的一些說法,有的小伙伴還不是很了解,今天就給大家詳細的介紹一下關于現代戲劇作品都有哪些的相關內容。郭沫若的《棠棣之花》、《屈原》、《虎符》、《高漸離》、《孔雀膽》、《南冠草》; 歐陽笙(華漢)的《李秀成之死》、《天國春秋》、《草莽英雄》、《塞上風云》、《兩面人》; 歐陽予倩的《忠王李秀成...

          2021股份制銀行排名前十是什么?股份制銀行排名一覽表1、招商銀行,資產總規模為107955. 71億元,是中國境內第一家完全由企業法人持股的股份制商業銀行。2、浦發銀行,資產總規模為83587. 49億元,1999年在上海證券交易所成功掛牌上市的全國性股份制商業銀行,總行設在上海。3、興業銀行,資產總規模為79592. 51億元;,是中國人民銀行批準成立的首批股份制商業銀行之一,2007年正式在...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>