laravel 5.6初學筆記
阿新 • • 發佈:2018-06-05
phpstorm 筆記 ESS url 緩存 oca 求和 LG 驗證器
laravel 5.6初學筆記
框架簡介
- laravel文檔齊全
- 社區活躍
後期維護好,強大的工具
下載安裝
- 環境要求,php版本在7以上(要與框架所需一致)
- 集成環境,建議使用laralgon(適應laravel框架開發)
- 安裝可使用conposer(自行看官方文檔),也可在laravel學院下載一鍵安裝包(不用再配置環境和下載安裝依賴)
- 環境配置根目錄要指向項目目錄中的public
項目目錄
- app/Http/Controllers [控制器存放的位置,MVC中的C]
- bootstrap 包含框架啟動和自動加載配置的文件(app.php和autoload.php)
- config 包含所有應用程序的配置文件(緩存數據庫隊列)
- database 包含數據庫的遷移和數據填充文件
- public 包含入口和項目靜態資源文件(js,cs)
- resources/view 包含了視圖和原始的資源文件
- routes 路由入口文件目錄
- storage 包含了編譯後的模板文件和緩存文件,日誌文件
- tests 單元測試目錄文件
vendor 加載的依賴模塊
路由
- 概括 將用戶的請求轉發給相應的程序進行處理,建立程序和url之間的映射。
- laravel 中的請求方式有:get post put pacth any
delete
// 基礎路由 get // http://localhost/testGet Route::get(‘testGet‘, function(){ return ‘HELLO WORLD‘; }); // 基礎路由 post Route::post(‘testPost‘, function (){ return ‘Hello Post‘; }); // 多請求路由 match // http://localhost/testMatch Route::match([‘get‘,‘post‘],‘testMatch‘, function (){ return ‘Hello match‘; }); // 多請求路由 any // http://localhost/testAny Route::any(‘testAny‘, function(){ return ‘Hello any‘; }); // 路由參數 // http://localhost/testGetUser/12 /*Route::get(‘testGetUser/{id}‘, function ($id){ return ‘testGetUserId=‘.$id; });*/ /*// 路由參數 // http://localhost/testGetUser/name Route::get(‘testGetUser/{name?}‘, function ($name = ‘NULL‘){ return ‘testGetUserName=‘.$name; })->where(‘name‘,‘[A-za-z]+‘)*/; // 路由參數 // http://localhost/testGetUser/1/name /*Route::get(‘testGetUser/{id}/{name?}‘, function ($id, $name = ‘NULL‘){ return ‘id=‘.$id.‘testGetUserName=‘.$name; })->where([‘id‘=>‘[0-9]+‘,‘name‘=>‘[A-za-z]+‘]);*/ // 路由別名[為整個路由取別名] // http://localhost/testGetUser/center Route::get(‘testGetUser/center‘,[‘as‘ => ‘center‘, function(){ return route(‘center‘); }]); // 路由群組 // http://localhost/member/testAny Route::group([‘prefix‘ => ‘member‘], function (){ Route::any(‘testAny‘, function(){ return ‘Hello member-any‘; }); }); // 路由中輸出視圖 // http://localhost/view Route::get(‘view‘, function (){ return view(‘welcome‘); });
一次訪問周期 【流程】
- 入口 public/index.php
- 創建服務器容器(用於管理類依賴和執行依賴註入的工具)
- 發送請求到http內核和consle內核(分別用來處理web請求和
Artisan命令) - 內核啟動載入服務提供者,註冊提供者,服務提供者啟動lavavel框架中的各種重要組件(例如,數據庫,路由,隊列,驗證器)【最為重要的部分】。
- 請求教友路由器進行分發,並運行路由器制定的中間件。
服務器容器
- 概括:用於管理依賴和執行依賴註入的工具
- 綁定:幾乎所有的服務器容器都在服務提供者中完成的
門面
- 概括:門面就是為容器對象提供一個訪問方式的類
中間件
- 概括:中間件為過濾進入應用的HTTP請求提供了一套便利的機制。
- 用法:
一,類似於tp框架中的Behavior,或鉤子的用法。用於請求的前期驗證或後期驗證處理。
二,CORS 中間件可以用於,請求方法增加請求頭。
三,日誌中間件可以記錄所有進入站點的請求。 - 中間件組:更為快捷的實現一次分配給路由多個中間件組;指定一個中間鍵名將相關中間件放到一個組裏。
- 中間件參數,中間件可以傳遞額外的自定義參數。
- 終端中間件,用於請求完成之後的善後操作。
CSRF保護
- 概括:跨站請求偽造,通過偽裝成授權用戶去訪問攻擊網站的惡意漏洞。
- lavavel自帶CSRF中間件,會自動為應用授權保護的有效用戶會話創建一個CSRF令牌,並存在session中,用於驗證授權用戶和訪問用戶是否是同一個人。
控制器[MVC中的C]
- 路由指向控制器[同理:其它請求方式做相應更改]
// http://localhost/testController
Route::get(‘testController‘, ‘TestController@testController‘);
- 路由取別名[可以通過route(‘testInfo‘),獲取路由地址]
Route::get(‘testController‘,[
‘uses‘ => ‘TestController@testController‘,
‘as‘ => ‘testInfo‘,
]);
- 參數綁定
// [路由文件]http://localhost/testController/1
Route::get(‘testController/{id}‘,[‘uses‘ => ‘TestController@testController‘]);
<?php
/**
* Created by PhpStorm.
* User: admin
* Date: 2018/6/5
* Time: 15:45
*/
namespace App\Http\Controllers;
class TestController extends Controller
{
// [控制器文件] TEST
public function testController ($id)
{
return ‘id-‘.$id;
// return route(‘testInfo‘);
// phpinfo();
}
}
// 參數驗證
// http://localhost/testController/1
Route::get(‘testController/{id}‘,[‘uses‘ => ‘TestController@testController‘])
->where(‘id‘, ‘[0-9]‘);
視圖
- 位置,resources/views
- 創建新視圖時,按控制器名創建新文件夾
// 新建視圖文件testview.php,輸出testview php
// 控制器輸出 return view(‘testview‘);
- 模板傳參
// controller文件
public function testController ($id)
{
return view(‘test/test‘,[
‘id‘ => $id
]);
}
- 視圖文件顯示
test/test blade
{{$id}}
模型
- 位置 app根目錄
- 模型文件
```
<?php
/** - Created by PhpStorm.
- User: admin
- Date: 2018/6/5
- Time: 17:37
*/
namespace App;
use Illuminate\Database\Eloquent\Model;
class Test extends Model
{
public static function getTestInfo () {
return ‘THIS IS A GOOD IDEA‘;
}
}
- controller 文件
public function testController ($id)
{
return Test::getTestInfo();
}
```
數據連接
- 文件位置 config/database.php vendor/.env
laravel 5.6初學筆記