laravel 入門 01
- laravel 簡介
- laravel 安裝
- 目錄介紹
- 編寫規範
-
- 1、控制器檔案名
- 2、 控制器類方法命名
- 3、視圖檔案名
- 4、Blade 标簽的使用
- 5、正常模型檔案命名
laravel 簡介
Lavavel一直 秉承着優雅的原則,很好的支援了composer,實作了更豐富的擴充,社群文檔活躍,相較于TP,Lavavel更龐大,安全性也更高 ,更适合開發大中型項目,被稱為“巨匠型開發架構”。
優點:
1.laravel的設計思想是很先進的,非常适合應用各種開發模式TDD, DDD 和BDD
2.支援composer包管理工具
3.集合了php 比較新的特性,以及各種各樣的設計模式,Ioc 容器,依賴注入等。
缺點:
1.基于元件式的架構,是以比較臃腫
綜合來說:Laravel 架構非常适合大中型的商業項目。laravel是以元件化為主的架構。
laravel 安裝
composer create-project --prefer-dist laravel/laravel blog
注意:前提是符合架構基本要求,要求如下:
PHP >= 7.2.5
BCMath PHP 拓展
Ctype PHP 拓展
Fileinfo PHP 拓展
JSON PHP 拓展
Mbstring PHP 拓展
OpenSSL PHP 拓展
PDO PHP 拓展
Tokenizer PHP 拓展
XML PHP 拓展
目錄介紹
| — app — 應用目錄
| |-- Console – 指令行目錄
| |-- Exceptions – 異常目錄
| |-- Http – 網絡請求目錄
| |-- Providers – 服務提供目錄
| |…
|— bootstrap — 啟動目錄
| |-- cache – 路由和服務緩存目錄
| |-- app.php – 應用啟動檔案
|— config — 應用配置目錄
| |-- app.php – 應用配置檔案
| |-- auth.php – 認證配置檔案
| |-- broadcasting.php – 廣播配置檔案
| |-- cache.php – 緩存配置檔案
| |-- database.php – 資料庫配置檔案
| |…
|— database — 資料庫目錄
| |-- factories – 模型工廠目錄
| |-- migrations – 資料遷移目錄
| |-- seeds – 種子目錄
| |…
|— public — 公共目錄
| |-- css – 公共css目錄
| |-- js – 公共js目錄
| |-- index.php – 入口檔案
|— resources — 資源目錄
| |-- lang – 語言包目錄
| |-- sass – sass目錄
| |-- views – 模闆目錄
|— routes — 路由目錄
| |-- api.php – api路由定義
| |-- console.php – 控制台路由定義
| |-- web.php – 網頁路由定義
|— storage — 存儲目錄
| |-- app – 存儲應用生成的檔案
| |-- framework – 存儲架構生成的檔案和緩存
| |-- logs – 存儲日志
|— tests — 單元測試目錄
|— vendor — 第三方類庫目錄
| |-- composer – composer目錄
| |-- laravel – laravel架構目錄
| |-- symfony – symfony元件目錄
| |-- autoload.php – 自動加載入口檔案
| |…
|— .env — 環境變量配置檔案
|— artisan — artisan工具檔案
|— server.php — 指令行應用測試檔案
|…
核心目錄與檔案
.env檔案 : 這是一個重要檔案,為Laravel架構主配置檔案;
Artisan.php: 該檔案為Laravel提供了Artisan指令,artisan是laravel中自帶的指令行工具的名稱;
App 目錄
你的大部分應用程式都位于 app 目錄中。預設情況下,此目錄的命名空間為 App , 并通過 Composer
使用 PSR-4 自動加載标準 自動加載。
Bootstrap目錄
bootstrap 目錄包含引導架構的 app.php 檔案。該目錄還包含了一個 cache 目錄, cache 目錄下
存放着架構生成的用來提升性能的檔案,比如路由和服務緩存檔案。
Config 目錄
config 目錄,顧名思義,包含應用程式所有的配置檔案。我們鼓勵你通讀這些檔案,以便幫助你熟悉
所有可用的選項。
Public 目錄
public 目錄包含了入口檔案 index.php ,它是進入應用程式的所有請求的入口點。此目錄還包含了
一些你的資源檔案(如圖檔、JavaScript 和 CSS)。
Resources 目錄
resources 目錄包含了視圖和未編譯的資源檔案(如 LESS、SASS 或 JavaScript)。此目錄還包含你
所有的語言檔案。
Routes 目錄
routes 目錄包含了應用的所有路由定義,Laravel 預設包含了幾個路由檔案: web.php 、 api.php 、
console.php 和 channels.php 。
Storage 目錄
storage 目錄包含編譯後的 Blade 模闆、session 會話生成的檔案、緩存檔案以及架構生成的其他文
件。這個目錄被細分成 app 、 framework 和 logs 三個子目錄。 app 目錄可以用來存儲應用生成的
任何檔案。 framework 目錄用來存儲架構生成的檔案和緩存。最後, logs 目錄包含應用的日志文
件。
編寫規範
1、控制器檔案名
控制器檔案與類命名遵循官方限制:類名.php
類名稱聲明必須符合StudlyCaps(大寫駝峰拼寫法)
2、 控制器類方法命名
RESTful資源控制器,相應的方法采用其預設命名規則
index() //index方法對應資源清單頁面
create() //create方法對應建立資源頁面
show($id) //show方法對應特定id資源頁面
普通控制器,推薦使用HTTP動作 (如get|post|delete) + 資源|行為 的駝峰命名規範(小駝峰命名法)
public funcion getLogin()
{
return View::make('login');
}
3、視圖檔案名
視圖檔案或檔案采用全小寫英文命名,單詞間采用下劃線(_)作為分隔符。Blade視圖模闆請帶上blade作為檔案名,對于RESTful資源控制器相關視圖檔案,遵循官方預設命名,如:
app/
— views/
—article/
------create.blade.php
------index.blade.php
------show.blade.phps
—setting_type/
------create.blade.php
在控制器中調用視圖遵循點分調用規則,如:
public function getCustomerList(){
return View::make('customer.index'); //傳回位于
`app/views/customer/index.blade.php`的視圖
}
public function index()
{
return View::make('setting_type.index'); //傳回位于
`app/views/setting_type/index.blade.php`的視圖
}
4、Blade 标簽的使用
Blade 标簽使用雙{{}}作為界定符,為了避免模闆編譯compiled失敗,先約定大括号标簽中的變量或函數應與界定符之間空一格,如:
{{ }}列印内容 {{-- --}}注釋
Hello, {{ $name }}.
The current UNIX timestamp is {{-- time() --}}.
Blade标簽應注意(括号或表達式)比對,不比對可以會造成模闆輸出錯誤。如使用@if語句之後,必須使
用@endif 結束該标簽。
@if (count($records) === 1)
I have one record!
@elseif (count($records) > 1)
I have multiple records!
@else
I don't have any records!
@endif
@unless (Auth::check())
You are not signed in.
@endunless
5、正常模型檔案命名
正常模型命名遵循 Laravel 預設規範,如操作 setting_type 資料表的模型,我們可以這樣定義(另外laravel的标預設是複數形式,而模型需要去掉尾部的 s):
class SettingType extends Eloquent
{
protected $table = 'setting_type';
public $timestamps = false; //關閉自動更新時間戳
public function setting()
{
return $this->hasMany('Setting');
}
}
下一篇: