天天看點

laravel 入門 01laravel 簡介laravel 安裝目錄介紹編寫規範

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');
	}
}
           

下一篇: