亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

初識laravel5

2020-03-22 20:15:57
字體:
來源:轉載
供稿:網友
目錄結構變化laravel5最先強調的是項目目錄結構的變化,與4.2區別還是蠻大的,逐條來說吧。新的目錄結構看上去像這樣:app
Commands
Console
Events
Handlers
Commands
Events
Http
Controllers
Middleware
Requests
Kernel.php
routes.php
Providers
Services
bootstrap
config
database
migrations
seeds
html' target='_blank'>public
package
resources
lang
views
storage
cache
logs
meta
sessions
views
work
tests4.2的目錄結構:app
commands
config
controllers
database
lang
models
start
storage
tests
views
bootstrap
public
對比一下,改變還是比較大的,可以看到 config,database被移動到根目錄,lang,views目錄被移動到resources目錄下,controllers被整合到http目錄里,models目錄不見了,還有一些新增的目錄就略了。App命名空間laravel5里還有一個變化,那就是app目錄默認加上了一個根命名空間 App ,在 App 下的所有目錄、類都應當在該命名空間下,簡而言之就是采用了psr4標準。HTTPlaravel5認為,新的目錄結構是目前最好的結構之一,可以讓我們的開發更加得心應手,比如http目錄:Http
Controllers
Middleware
Requests
Kernel.php
routes.php
Middleware 很陌生,其實它是原來的路由filter的一個升級版,現在不用在filters.php里定義過濾器,取而代之的是在 Middleware 目錄中創建類,并在Kernel.php中配置全局還是可選,全局的Middleware在每個請求都會執行,而可選的就相當于原來的filter,可以在路由中使用,也可以在控制器中使用。Requests是對核心類Request的擴展,你可以擴展不同的Requests類,添加不同的功能??梢哉J為,所有關于http請求有關的處理都在http目錄中,比如控制器就是用來接受一個請求并返回的,所以將它放在 Http 目錄里合情合理。路由路由跟以前的區別不大,但是需要注意的當我們指定控制器命名空間時,命名空間不是絕對路徑,而是相對于 App/Http/Controllers,舉例:復制代碼 代碼如下:
Route::controllers([
'auth' = 'Auth/AuthController',
'password' = 'Auth/PasswordController',
]);
可以在 App/Http/Controllers/Auth 目錄下找到對應的類。此外,路由還支持緩存,以提升性能,通過命令行工具復制代碼 代碼如下:
php artisan route:cache
即可輕松生成,也可以通過復制代碼 代碼如下:
php artisan route:clear
清理緩存。Services我們看到在App目錄下還有一個Services目錄,我覺得這是一個很贊的理念,一直以來,我都對于控制器中出現大段的業務邏輯代碼而煩躁,我很想用一個單獨的層把這些業務邏輯封裝起來,而services就可以用來干這個活,當然,它不是必須的,但我強烈建議使用。就以laravel5自帶的demo來看看吧:復制代碼 代碼如下:
# Http/Controllers/Auth/AuthController.php
php namespace App/Http/Controllers/Auth;
use App/Http/Controllers/Controller;
use Illuminate/Contracts/Auth/Guard;
use Illuminate/Contracts/Auth/Registrar;
use Illuminate/Foundation/Auth/AuthenticatesAndRegistersUsers;
class AuthController extends Controller {
/*
|--------------------------------------------------------------------------
| Registration & Login Controller
|--------------------------------------------------------------------------
|
| This controller handles the registration of new users, as well as the
| authentication of existing users. By default, this controller uses
| a simple trait to add these behaviors. Why don't you explore it
|
*/
use AuthenticatesAndRegistersUsers;
/**
* Create a new authentication controller instance.
*
* @param /Illuminate/Contracts/Auth/Guard $auth
* @param /Illuminate/Contracts/Auth/Registrar $registrar
* @return void
*/
public function __construct(Guard $auth, Registrar $registrar)
{
$this- auth = $auth;
$this- registrar = $registrar;
$this- middleware('guest', ['except' = 'getLogout']);
}
}
這是一個登陸授權的控制器,我們看 __construct構造函數,利用參數自動注入了一個 "接口實現(參考手冊IoC)" 的綁定,我們看下Registrar:復制代碼 代碼如下:
php namespace App/Services;
use App/User;
use Validator;
use Illuminate/Contracts/Auth/Registrar as RegistrarContract;
class Registrar implements RegistrarContract {
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return /Illuminate/Contracts/Validation/Validator
*/
public function validator(array $data)
{
return Validator::make($data, [
'name' = 'required|max:255',
'email' = 'required|email|max:255|unique:users',
'password' = 'required|confirmed|min:6',
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return User
*/
public function create(array $data)
{
return User::create([
'name' = $data['name'],
'email' = $data['email'],
'password' = bcrypt($data['password']),
]);
}
}
提交用戶名密碼時的處理:復制代碼 代碼如下:
public function postRegister(Request $request)
{
$validator = $this- registrar- validator($request- all());
if ($validator- fails())
{
$this- throwValidationException(
$request, $validator
);
}
$this- auth- login($this- registrar- create($request- all()));
return redirect($this- redirectPath());
}
可以看到,表單驗證的業務邏輯僅僅一行:復制代碼 代碼如下:
$validator = $this- registrar- validator($request- all());
整個控制器的代碼顯得干凈易讀,我們可以把很多通用的業務邏輯封裝成service,比不倫不類地直接封裝在控制器類好。模型models目錄不見了,因為不是所有應用都需要用到數據庫的,所以laravel5默認不提供該目錄可以理解,而且由于提供了 App 這個namespace,所以我們可以自己在 App/ 下創建 Models 目錄,其中所有模型類都聲名namespace App/Models;即可,只是使用上比以前麻煩一些,需要先use,不過這樣也使得項目結構更加清晰,一切類庫都在命名空間的組織之下。時間有限,先寫這么多吧。希望大家能夠喜歡。PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品98久久久久久中文字幕| 欧美美女操人视频| 一区二区三区四区精品| 欧美最猛黑人xxxx黑人猛叫黄| 欧美日韩免费区域视频在线观看| 永久免费精品影视网站| 久久精品国产欧美亚洲人人爽| 欧美成人精品在线视频| 久热在线中文字幕色999舞| 神马久久久久久| 欧美孕妇孕交黑巨大网站| 日韩成人中文字幕| 在线观看视频99| 欧美日韩国产成人在线| 久久久在线观看| 久久深夜福利免费观看| 欧美大奶子在线| 国产91精品不卡视频| 久久久黄色av| 日本国产欧美一区二区三区| 日韩中文在线中文网在线观看| 日韩综合视频在线观看| 亚洲欧美在线第一页| 欧美特级www| 九九热最新视频//这里只有精品| 色偷偷88888欧美精品久久久| 久久免费视频在线观看| 亚洲精美色品网站| 一区二区福利视频| 97超级碰在线看视频免费在线看| 欧美日韩xxxxx| 国产免费一区二区三区香蕉精| 日韩视频精品在线| 国产香蕉97碰碰久久人人| 日韩精品中文字| 国产91露脸中文字幕在线| 国产一区二区在线免费| 少妇av一区二区三区| 亚洲第一黄色网| 成人免费福利在线| 亚洲欧洲日产国码av系列天堂| 精品久久中文字幕久久av| 日韩中文在线中文网在线观看| 上原亚衣av一区二区三区| 懂色av一区二区三区| 成人疯狂猛交xxx| 97视频色精品| 日韩美女视频免费在线观看| 亚洲精品在线观看www| 日韩成人在线视频| 亚洲人成网在线播放| 97精品视频在线观看| 中文字幕视频在线免费欧美日韩综合在线看| 日韩精品视频免费专区在线播放| 91青草视频久久| 欧美激情小视频| 中文日韩在线视频| 日韩av观看网址| 欧美国产日韩免费| 91爱爱小视频k| 91精品国产综合久久久久久久久| 亚州av一区二区| 成人a在线观看| 日本一欧美一欧美一亚洲视频| 久久理论片午夜琪琪电影网| 日韩视频免费观看| 精品国内产的精品视频在线观看| 欧美高清激情视频| 国产香蕉精品视频一区二区三区| 欧亚精品在线观看| 亚洲欧洲高清在线| 精品久久香蕉国产线看观看gif| 亚洲欧美日韩精品久久奇米色影视| 日本a级片电影一区二区| 国内外成人免费激情在线视频| 精品国偷自产在线视频| 亚洲天堂精品在线| 亚洲毛片在线免费观看| 欧美一级在线亚洲天堂| 欧美日韩一区二区三区在线免费观看| 亚洲视频专区在线| 国产精品欧美亚洲777777| 国精产品一区一区三区有限在线| 97视频在线观看播放| 精品一区二区三区四区在线| 欧美一级高清免费播放| 欧美日韩成人精品| 日本91av在线播放| 亚洲国产精品人久久电影| 国产精品com| 中文字幕日韩av电影| 国内精品中文字幕| 国产精品视频专区| 中文字幕亚洲一区| 国产精品私拍pans大尺度在线| 成人久久久久爱| 久久亚洲一区二区三区四区五区高| 久久久久北条麻妃免费看| 国产精品天天狠天天看| 色哟哟网站入口亚洲精品| 日韩免费高清在线观看| 丝袜情趣国产精品| 欧美精品亚州精品| 91精品国产综合久久久久久久久| 成人在线免费观看视视频| 亚洲级视频在线观看免费1级| 久久人人爽亚洲精品天堂| 国产亚洲精品美女| 国产亚洲欧美一区| 国产精品视频yy9099| 亚洲精品自在久久| 亚洲伊人第一页| 日韩美女av在线免费观看| 国产一区二区三区在线观看网站| 精品国产91久久久久久老师| 亚洲一区中文字幕在线观看| 国产91热爆ts人妖在线| 久久精品国产96久久久香蕉| 欧美激情欧美激情在线五月| 一区二区三区日韩在线| 51色欧美片视频在线观看| 久久av在线看| 久久99久久99精品免观看粉嫩| 日本精品免费观看| 午夜精品久久久久久99热| 亚洲精品美女久久久久| 成人午夜黄色影院| 国产精品普通话| 日韩欧美福利视频| 国产成人精品网站| wwwwwwww亚洲| 国产国语刺激对白av不卡| 伊人男人综合视频网| 欧美精品免费在线观看| 亚洲欧美精品suv| 日韩在线中文视频| 欧美性猛交xxxxx免费看| 久热在线中文字幕色999舞| 亚洲一区中文字幕| 亚洲国产日韩欧美在线图片| 欧美成人精品三级在线观看| 国产剧情日韩欧美| 欧美一级电影在线| 96pao国产成视频永久免费| 色久欧美在线视频观看| 亚洲成av人片在线观看香蕉| 日韩视频永久免费观看| 日韩在线观看免费全| 亚洲欧美另类中文字幕| 国产精品日韩在线播放| 亚洲欧美中文另类| 亚洲japanese制服美女| 亚洲色图50p| 日韩电影免费在线观看中文字幕| 亚洲一区二区三区毛片| 成人激情视频小说免费下载| 久久久之久亚州精品露出| 国产精品影院在线观看| 草民午夜欧美限制a级福利片| 欧美日韩亚洲天堂| 国产精品在线看| 欧美国产日韩一区二区在线观看| 日韩性生活视频| 午夜精品三级视频福利|