Laravel 快速起步

安裝 Laravel

composer create-project laravel/laravel laravel  # "5.8.*"  指定版本 || 最新

# laravel 擁有豐富的功能,代價是需要安裝很多擴展文件

#(composer會將相關的依賴都安裝在vendor下)

文檔:https://learnku.com/docs/laravel/6.x/installation/5124

 

文件夾結構

框架的目錄結構都大同小異:

入口(/public)、配置(/config)、應用(/app)、擴展(/vendor)、緩存(/storage vs /runtime)等等..

入門階段只需注重業務開發 (/app),但MVC結構較爲隨性,按照自己理解定義即可~~

文檔:https://learnku.com/docs/laravel/6.x/structure/5126

 

配置

所有 Laravel 框架的配置文件都放置在 config 目錄下。拿數據庫配置爲例(database.php):

<?php
    # env() 會讀取根目錄下.env 文件對應的值,第二個參數是默認值。
    # 這樣的目的是方便不同環境的配置(.env文件不要上傳到git)。
    'default' => env('DB_CONNECTION', 'mysql'),

文檔:https://learnku.com/docs/laravel/6.x/configuration/5125

 

強悍的 artisan

# 如果不想使用apache\nginx,可以使用larvel自帶的服務器 serve (一般用於測試)
php artisan serve --port 8080
# 數據遷移,相當於數據庫的版本控制,生成文件位於 /database/migrations
php artisan migrate:install
# 爲了方便開發,還有賊多的命令用於提高效率,看看還有哪些->_->
php artisan list 

文檔:https://learnku.com/docs/laravel/6.x/artisan/5158

 

請求週期

訪問 public/index.php 入口文件時,larevel 處理的大致流程:

index.php 文件載入 Composer 生成的自動加載器定義,並從 bootstrap/app.php 文件獲取到 Laravel 應用實例。

傳入的請求會被髮送給 HTTP 內核或者 console 內核,完成在請求被處理前需要完成的工作。

所有的請求必須在處理前通過 HTTP 中間件 列表的中間件,最重要的動作之一就是載入 服務提供者 到你的應用。

一旦應用完成引導和所有服務提供者都註冊完成,Request 將會移交給路由進行分發。

服務提供者是 Laravel 應用的真正關鍵部分,應用實例被創建後,服務提供者就會被註冊完成,並將請求傳遞給應用進行處理,真的就是這麼簡單!

文檔:https://learnku.com/docs/laravel/6.x/lifecycle/5130

 

路由

訪問 /public/index.php 入口文件 經過一系列加載與註冊事件之後,請求將移交路由進行分發處理。

如默認訪問的歡迎頁也是經過路由 /routes/web.php 分配的:

Route::get('/', function () {
    // view 指向 /resources/view/welcome.blade.php
    return view("welcome");
});

第一個參數是路由路徑,第二個參數是回調方法,也可以直接指向 控制@方法:

// 第二個參數指向 命名空間/IndexController 控制器下的 say 方法
Route::get("test","/app/Http/Controller/Test/IndexController@say");
// 默認命名空間已包含 'App\Http\Controllers' ,所以一下寫法等效
Route::get("test","Test/IndexController@say");

文檔:https://learnku.com/docs/laravel/6.x/routing/5135

 

控制器

控制器位置一般位於 /app/Http/Controller/ ,,可建立文件夾分類存放,但要注意命名空間。

# 新建控制器的快捷方法:

php artisan make:controller Test/IndexController --resource

# 此命令將在  /app/Http/Controller/Test/ 下創建 IndexController.php 文件,

# --resource 會幫助新建多個常用資源操作的方法。

文檔:https://learnku.com/docs/laravel/6.x/controllers/5138

 

視圖

視圖文件位置一般位於 /resources/view/ 下,可建立文件夾分類存放

模版引擎的邏輯都大同小異,只是定義的標籤寫法不一樣而已。

文檔:https://learnku.com/docs/laravel/6.x/views/5141

 

數據遷移

laravel 並不建議直接創建表,而是使用其提供的 artisan migrate 建表,其可方便版本控制(表處理sql都會被保存)及數據遷移合併。

#  在 /database/migrations/ 下已有兩個測試table文件,直接運行

php artisan migrate

# 會成功創建 3 個表(其中一個是創建日誌表 migrations)

# 需要創建其它表時,先在 /database/migrations/  生成 table 文件,

# 然後再運行創建命令 php artisan migrate

# 創建  table 文件也有快捷的命令,如創建 tests 表

php artisan make:migration create_tests_table 即可

# 爲什麼laravel的表一般都要加 s ?模型下有說明

相關文章:https://blog.csdn.net/king2wang/article/details/80414828

 

模型

# 像創建 控制器、migrations 一樣,也可以直接使用 artisan 創建model:

php artisan make:model Test

# 其創建的模型位於 /app 下,對應的表是 Tests 而不是 Test!!

# 模型對於每個開發人員都有不同的理解,所以其位置由開發者根據自己的見解進行處理。

文檔:https://learnku.com/docs/laravel/6.x/eloquent/5176

 

tinker 

進入交互模式,直接編寫php代碼進行調試,如

$ php artisan tinker

>>> $test = new \App\Test();

>>> $test->name = "hello world!"

>>> $test->save();

=> true

# 成功插入數據

文檔:略

 

laravel 基礎入門之後,其它的邏輯和其它輕量級框架也差之不多了,多讀文檔、多嘗試、多幾次實際開發 laravel 就成功上手~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章