Laravel框架關鍵技術解析(1)元件化開發與composer使用

CopperDong發表於2018-04-01



1.3 手動構建Laravel框架

     一步步搭建一個類似於Laravel的伺服器端程式框架,該框架包含伺服器端程式中的MVC(模型、檢視和控制)三個組成部分,可以實現伺服器端程式中的路由、控制器、資料庫操作及檢視模板等主要功能。構建過程分為專案初始化、路由元件新增、控制器模組新增、模型元件新增和檢視元件新增五個步驟。

     專案初始化:起名為lara。

     $ mkdir lara

     $ vi composer.json

{
    "require": {
    }
}
     $ composer update    //會自動生成自動載入檔案

     新增路由元件:  https://packagist.org官網

{
    "require": {
    	"illuminate/routing":"*",  
    	"illuminate/events":"*"
    }
}
     $ composer update 

     首先新增兩個檔案,一個是路由檔案,另一個是伺服器端程式入口檔案。

     $ mkdir app           //主要儲存專案開發的檔案

     $ mkdir app/Http   //用於儲存處理HTTP請求的檔案

     $ subl app/Http/routes.php  //所要建立的路由檔案

     $ mkdir public      //用於存放專案的公共檔案

     $ subl public/index.php   //自動載入函式的新增、服務容器例項化與服務註冊、路由載入、請求例項化與路由分發、響應生成與傳送。

     http://127.0.0.1:10000/

     新增控制器模組:在實際專案中請求的處理往往比較複雜,如果將處理函式寫在路由檔案中會顯得混亂,也不容易管理,因此會將路由的處理部分單獨用控制器類來實現。其實,在新增路由元件時已經新增了基本控制類,即Illuminate/Routing/Controller類。

     $ mkdir app/Http/Controllers

     $ subl app/Http/Controllers/WelcomeController.php

     新增模型元件:主要實現資料處理功能,使用“illuminate/database”元件來完成。提供了兩種運算元據庫的方式,一種是查詢構造器方式,另一種是Eloquent ORM方式。

     完成以下五步工作,分別是建立資料庫、新增資料庫配置資訊、啟動Eloquent ORM模組、建立model類和通過model類運算元據庫。

     $ subl app/Models/Student.php

     新增檢視元件:使用"illuminate/view“,該元件可以將檢視以模板方式建立,在其他檢視中可以呼叫、繼承已經建立的模板,並通過模板語法使得檢視設計更加簡單、規範、高效。

     檢視元件的使用需要完成以下四個工作:一是新增檢視模板檔案和編譯檔案的儲存路徑;二是對檢視進行相關配置和服務註冊;三是使用檢視檔案;四是建立檢視模板檔案。

1.4 Laravel安裝

     https://laravel.com/

     $ composer create-project laravel/laravel --prefer-dist    //安裝一個全新的Laravel框架到當前資料夾下

     $ chmod -R 777 storage

     本地域名解析:  

     $ vim /etc/apache/apache2.conf來修改apache的配置檔案。

     配置站點資訊

     $ vi /etc/apache2/sites-available/000-default.conf

1.5 PHP語法

     在Laravel框架中使用大量的PHP新語法,包括名稱空間、匿名函式、反射機制、後期靜態繫結等,才使得Laravel框架顯得簡潔而易擴充套件。

     名稱空間:namespace App\Http;

     檔案包含:include和require關鍵字

     匿名函式:也叫閉包函式,即一個沒有指定名稱的函式,經常用做回撥函式引數的值。

     PHP中的特殊語法:魔術方法和魔術常量的主要目的是提供對PHP執行環境和過程的控制和檢測。

     反射:主要用來動態地獲取系統中類、例項物件、方法等語言構件的資訊,通過發射API函式可以實現對這些語言構件資訊的動態獲取和動態操作等。

     後期靜態繫結:用於在繼承範圍內引用靜態呼叫的類,即在類的繼承過程中,使用的類不再是當前類,而是呼叫的類。

1.6 HTTP基礎

     參考HTTP 1.1協議

         

     請求行


       狀態行



     首部欄位:通常由欄位名和欄位值構成,中間通過”:“分隔。







相關文章