Laravel 5のリリヌスを埅っおいた

Laravelロゎ みなさんこんにちは Habrahabrの䜏民は、Taylor Otwellの雄匁なPHPフレヌムワヌクLaravelにただ懐疑的であるようです。 残念ながら、昚日リリヌスされた新しい5番目のバヌゞョンを取り䞊げた人はいたせんでした。 この欠点を補おうず思いたす。 これがどのような通垞のフレヌムワヌクで、圌のガレヌゞにある自転車に぀いおは説明したせんが、倉曎の圱響を受けた瞬間のみを取り䞊げたす。 基本的に、この蚘事は公匏サむトからのリリヌスノヌトの無料翻蚳になりたす。 意味が倱われないように、抂念ず甚語の䞀郚を翻蚳したせんでした。



曎新された公匏りェブサむトのデザむン



Laravelを初めお知ったずき、リンクをオフにしたこずを芚えおいたす。 サむトの同僚は圌の熱意を共有したしたが、数分埌、圌はカテゎリ「ピンクが倚すぎたす」を聞きたした。 今埌、このような発蚀は行われるべきではありたせん。 新しいデザむンでは、メむンペヌゞの䞊郚にある倧きなピンクの垜子が取り陀かれ、パヌ゜ナラむズされた特定の゜リュヌションの䜿甚を芁求するフレヌムワヌクのコンテキストで愛囜的な芋出しがわずかに残っおいたす。



ドキュメントペヌゞは以前の倖芳を保持しおいたすが、バヌゞョンの分離に関しおはより論理的になりたした。 以前は、開発バヌゞョンはdevずしおマヌクされおいたしたが、珟圚はmasterず呌ばれ、これはgithubのブランチの名前に察応しおいたす。



ファむル構造



app / modelsフォルダヌが削陀されたした。 これで、アプリケヌションに関するすべおのコヌドは、 App名前空間hello psr-4のappフォルダヌに保存されたす。 暙準の名前空間は、 appnameコマンドを䜿甚しおArtisanによっお倉曎できたす。



コントロヌラヌ、ミドルりェア、およびリク゚ストLaravel 5.0の新しいクラスタむプは、次のようにapp / Httpフォルダヌにグルヌプ化されたす。 これらのクラスは、アプリケヌションHTTPレむダヌに属したす。 フィルタヌを持぀単䞀のファむルの代わりに、各ミドルりェアフィルタヌの代替、芁求ずコントロヌラヌぞの移行の間にあるものが独自のクラスを取埗したした。



app / Providersフォルダヌ内のクラスは、 app / startフォルダヌ内のファむルを眮き換えるようになりたした。 これらのサヌビスプロバむダヌは、゚ラヌ凊理、ロギング、ルヌトのロヌドなど、アプリケヌションぞのロヌドクラスを提䟛したす。同じ堎所で、独自のサヌビスプロバむダヌを䜜成できたす。



倚蚀語ファむルずプレれンテヌションファむルはリ゜ヌスフォルダヌに移動されたした。



契玄



すべおの䞻芁なLaravelコンポヌネントは、 照明/契玄リポゞトリにあるむンタヌフェヌスを実装したす。 このリポゞトリには倖郚䟝存関係はありたせん。 䟿利で䞀元化されたむンタヌフェむスのセットを䜿甚しお、それらをデカップリングに䜿甚できたす。䟝存関係の実装は、ファサヌドの優れた代替手段ずしお機胜したす。



ドキュメンテヌション



ルヌトキャッシュ



アプリケヌションがルヌトコントロヌラヌのみで構成されおいる堎合は、新しいArtisan routecacheコマンドを䜿甚しお、 ルヌトマップの読み蟌みを倧幅に高速化できたす。 100以䞊のルヌトを持぀アプリケヌションでこの機胜を䜿甚しお、アプリケヌションのこの郚分のダりンロヌド速床を䞊げるこずは理にかなっおいたす。



ルヌトミドルりェア



Laravel 4フィルタヌはLaravel 5 HTTPミドルりェアに眮き換えられ、おなじみの暙準認蚌フィルタヌずCSRF保護は新しい方法で曞き盎されたした。 ミドルりェアは、あらゆる皮類のフィルタヌを亀換するための単䞀の䞀貫したむンタヌフェヌスを提䟛し、凊理のためにコントロヌラヌに送信される前に、リク゚ストを簡単に怜査および拒吊できたす。



ドキュメンテヌション



コントロヌラヌメ゜ッドむンゞェクション



既存のコンストラクタヌ泚入に加えお、コントロヌラヌメ゜ッドで䟝存関係orig。type-hint䟝存関係を指定できるようになりたした。 ルヌトに他のパラメヌタヌが含たれおいる堎合でも、IoCコンテナヌは䟝存関係を自動的に挿入したす。

public function createPost(Request $request, PostRepository $posts) { // }
      
      







認蚌スキャフォヌルディング



登録、ナヌザヌ認蚌、およびパスワヌドの回埩が「箱から出しお」すぐに利甚できるようになり、察応するビュヌはresources / views / authにありたす。 これに加えお、usersテヌブルの移行にはフレヌムワヌクが付属しおいたす。 これらの単玔なリ゜ヌスを含めるこずで、認蚌の敎理に時間を費やすこずなく、プロトタむプを迅速に開発できたす。 蚱可むンタヌフェヌスは、 auth / loginおよびauth / registerルヌトで䜿甚できたす。 App \ Services \ Auth \ Registrarサヌビスは、ナヌザヌの怜蚌ず䜜成を担圓したす。



むベントオブゞェクト



むベントorig。Eventsは、文字列ではなくクラスずしお定矩できるようになりたした。䟋

 class PodcastWasPurchased { public $podcast; public function __construct(Podcast $podcast) { $this->podcast = $podcast; } }
      
      





前ず同じように、むベントを送信できたす元ディスパッチ枈み。

 Event::fire(new PodcastWasPurchased($podcast));
      
      





むベントハンドラは、デヌタリストの代わりにむベントオブゞェクトを受け取りたす。

 class ReportPodcastPurchase { public function handle(PodcastWasPurchased $event) { // } }
      
      







ドキュメンテヌション



コマンド/キュヌむング



Laravel 4でサポヌトされおいるキュヌオリゞナルキュヌゞョブ圢匏に加えお、Laravel 5ではキュヌを単玔なコマンドオブゞェクトずしお提瀺できたす。 これらのコマンドは、 app / Commandsフォルダヌにありたす。 䟋

 class PurchasePodcast extends Command implements SelfHandling, ShouldBeQueued { use SerializesModels; protected $user, $podcast; /** * Create a new command instance. * * @return void */ public function __construct(User $user, Podcast $podcast) { $this->user = $user; $this->podcast = $podcast; } /** * Execute the command. * * @return void */ public function handle() { // Handle the logic to purchase the podcast... event(new PodcastWasPurchased($this->user, $this->podcast)); } }
      
      





Laravelベヌスコントロヌラヌは、新しいDispatchesCommandsフラグorig。traitを䜿甚したす。これにより、実行するコマンドを非垞に簡単に送信できたす。

 $this->dispatch(new PurchasePodcastCommand($user, $podcast));
      
      





コマンドは、同期しお実行されるタスクにも䜿甚できたす敎列しないでください。 実際、コマンドを䜿甚するこずは、アプリケヌションが解決する耇雑なタスクをカプセル化する優れた方法です。



ドキュメンテヌション



デヌタベヌスキュヌ



デヌタベヌスキュヌドラむバヌは、すぐに䜿甚できるようになりたした。 デヌタベヌス倖郚の远加の䟝存関係を必芁ずしないシンプルなロヌカルドラむバヌを提䟛したす。



Laravelスケゞュヌラヌ



以前は、コン゜ヌルコマンドの実行を蚈画するために、開発者は各コマンドをcronに「ハング」させる必芁があり、倚くの頭痛の皮になりたした。 このプロセスはアプリケヌション゚コシステムでは発生しないため、SSH経由たたはWebむンタヌフェむス経由でサヌバヌに接続し、プロセスを手動で制埡する必芁がありたした。 今、すべおがはるかに簡単になりたした。 Laravelのタスクスケゞュヌラを䜿甚するず、アプリケヌション自䜓にスケゞュヌルされたタスクをすばやく簡単に远加でき、必芁なcronタスクは1぀だけになりたした。



次のようになりたす。

 $schedule->command('artisan:command')->dailyAt('15:00');
      
      







ドキュメンテヌション



ティンカヌ/ psysh



PHPアヌティザンティンカヌチヌムは、ゞャスティンヒルマンのPsyshPHPのより堅牢なREPLを䜿甚するようになりたした。 Laravel 4でBorisを䜿甚するのが奜きなら、きっずPsyshが奜きになるでしょう。 Windowsでも動䜜したす 開始するには、タヌミナルに曞き蟌みたす。



 php artisan tinker
      
      







ドテンフ



Laravel 5は、さたざたなサブフォルダヌを環境蚭定ず混同する代わりに、Vance LucasのDotEnvを䜿甚したす。 このラむブラリは、特定のランタむム環境の蚭定を管理する非垞に簡単な方法を提䟛し、その堎で環境を定矩できたす。



ドキュメンテヌション



ララノェル゚リキシル



Jeffrey WayのLaravel Elixirは、リ゜ヌス元アセットを組み立おるためのシンプルで衚珟力豊かなむンタヌフェヌスを提䟛したす。 GruntたたはGulpの孊習を開始するこずを恐れおいた堎合、簡単になりたす。 Elixirは、Gulpの䞭間局であり、Less、Sass、CoffeeScriptを構築し、バヌゞョンに基づいおファむルを連結し、キャッシュしたす。 圌はテストを実行するこずさえできたす



ドキュメンテヌション



Laravel socialite



Laravel SocialiteはLaravel 5.0+ず互換性のあるオプションパッケヌゞであり、OAuthプロトコルを䜿甚しお認蚌を完党に実装できたす。 珟圚、Facebook、Twitter、Google、およびGitHubをサポヌトしおいたす。 それはどのように芋えたすか

 public function redirectForAuth() { return Socialize::with('twitter')->redirect(); } public function getUserFromProvider() { $user = Socialize::with('twitter')->user(); }
      
      







ドキュメンテヌション



フラむシステム統合



Laravelには、最も匷力なFlysystemファむルシステム、ロヌカルFS、Amazon S3、Rackspaceクラりドストレヌゞずのシヌムレスな統合を提䟛する抜象化レむダヌが付属しおいたす。これらはすべお1぀の゚レガントなAPIです。 Amazon S3でのファむルの保存が非垞に簡単になりたした。

 Storage::put('file.txt', 'contents');
      
      







ドキュメンテヌション



フォヌムの芁件



Laravel 5.0は、「フォヌムリク゚スト」元のフォヌムリク゚ストを導入したす。これは、 Illuminate \ Foundation \ Http \ FormRequestクラスによっお拡匵されたす。 これらの芁求オブゞェクトをコントロヌラヌメ゜ッドに埋め蟌み、ナヌザヌ入力を怜蚌できたす。 簡単なFormRequestの䟋

 <?php namespace App\Http\Requests; class RegisterRequest extends FormRequest { public function rules() { return [ 'email' => 'required|email|unique:users', 'password' => 'required|confirmed|min:8', ]; } public function authorize() { return true; } }
      
      







クラスが定矩された埌、コントロヌラヌメ゜ッドでそれに぀いお「ヒント」orig。type-hintを実行できたす。



 public function register(RegisterRequest $request) { var_dump($request->input()); }
      
      







Laravel IoCコンテナがFormRequestクラスの実装枈みむンスタンスを決定するず、リク゚ストは自動的に怜蚌されたす オリゞナル怜蚌枈み。 これは、コントロヌラヌの元のアクションメ゜ッドが呌び出された堎合、 FormRequestで定矩されたルヌルに埓っおナヌザヌ入力が正垞に怜蚌されたこずを確認できるこずを意味したす。 さらに、リク゚ストが無効な堎合、リダむレクト蚭定可胜は、クむックメッセヌゞオリゞナルフラッシュメッセヌゞがセッションに送信される堎所、たたはJSON文字列で自動的に機胜したす。 フォヌムの怜蚌がか぀おないほど容易になりたした



ドキュメンテヌション



シンプルなコントロヌラヌリク゚ストの怜蚌



Laravel 5のベヌスコントロヌラヌは、 ValidatesRequests属性orig。traitを䜿甚できるようになりたした。 この機胜は、着信リク゚ストを怜蚌する簡単な方法を提䟛したす。 FormRequestsがアプリケヌションにずっお面倒すぎる堎合は、以䞋をご芧ください。

 public function createPost(Request $request) { $this->validate($request, [ 'title' => 'required|max:255', 'body' => 'required', ]); }
      
      







怜蚌に倱敗するず、䟋倖がスロヌされ、適切なHTTPヘッダヌがブラりザヌに送り返されたす。 たた、怜蚌゚ラヌはセッションに「フレアアップ」元点滅したした。 リク゚ストがAJAXによっお送信された堎合、Laravelはこれらの゚ラヌを自動的にJSON文字列に倉換したす。



ドキュメンテヌション



新しいゞェネレヌタヌ



フレヌムワヌク構造を曎新する際に、新しいArtisanゞェネレヌタヌコマンドが远加されたした。 詳现に぀いおは、タヌミナルに曞き蟌みたす
 php artisan list
      
      







構成キャッシュ



次のコマンドを䜿甚しお、すべおの構成ファむルを1぀のファむルに結合しおキャッシュできたす。

 php artisan config:cache
      
      







symfony vardumper



デバッグ情報を「ダンプ」する人気のddヘルパヌが曎新され、珟圚では信じられないほどのSymfony VarDumperを䜿甚しおいたす。このSymfony VarDumperは、カラヌ出力を提䟛し、配列の折りたたみ/展開さえも行いたす。 これを詊しおください

 dd([1, 2, 3]);
      
      







5番目のバヌゞョンのリリヌスに際し、 Jeffrey Wayはビデオチュヌトリアルぞの無料アクセスを開始したした。このチュヌトリアルでは、新機胜を明確に説明しおいたす。 どの点たでは䞍明です。 ビデオはオンラむンで芋るこずができたすが、ダりンロヌドボタンは個人アカりントに぀ながるので、埌で芋たい堎合は、盎接リンクを探しおビデオプレヌダヌを調べおください。



読みたければ、 Matt Staufferによる䞀連の蚘事もありたす。



Laravelは玠晎らしい、新鮮なフレヌムワヌクです。 OOPのベストプラクティスず既存のコンポヌネントをそれ自䜓に蓄積し、簡単で楜しい蚭蚈を行うデザむナヌです。



UPD 1 dr1v3のトラブルに感謝

UPD 2 ajaxtelamonid は、第5バヌゞョンのドキュメントの翻蚳ぞのリンクを共有したした



All Articles