ホームページ >バックエンド開発 >PHPチュートリアル >laravel5_PHP チュートリアルの最初の紹介
laravel5 がリリースされました。現時点では、国内の関連情報が比較的少ないため、壁を越えて公式 Web サイトにアクセスして、最初にいくつかの変更点をまとめました。そしてそれらを書き留めておきたいと思いました。
ディレクトリ構造の変更
laravel 5 で最初に強調されるのは、プロジェクトのディレクトリ構造の変更です。4.2 との違いは 1 つずつ説明します。
新しいディレクトリ構造は次のようになります:
アプリ
コマンド
コンソール
イベント
ハンドラー
コマンド
イベント
http
コントローラー
ミドルウェア
リクエスト
カーネル.php
ルート.php
プロバイダー
サービス
ブートストラップ
設定
データベース
移住
種
公開
パッケージ
リソース
ラング
再生回数
ストレージ
キャッシュ
ログ
メタ
セッション
再生回数
仕事
テスト
4.2のディレクトリ構造:
アプリ
コマンド
設定
コントローラー
データベース
ラング
モデル
スタート
ストレージ
テスト
再生回数
ブートストラップ
公開
比較すると、変更は非常に大きく、config とデータベースがルート ディレクトリに移動され、lang ディレクトリと views ディレクトリが resource ディレクトリに移動され、コントローラが http ディレクトリに統合され、モデルが統合されていることがわかります。ディレクトリが消えており、目次は省略されています。
アプリの名前空間
laravel5 にはもう 1 つの変更があります。つまり、app ディレクトリにはデフォルトで App という名前空間があり、App の下にあるすべてのディレクトリとクラスはこの名前空間の下にある必要があります。つまり、psr4 標準が採用されています。
HTTP
laravel5 は、http ディレクトリなど、新しいディレクトリ構造が現時点で最良の構造の 1 つであり、開発をより便利にすることができると考えています。
http
コントローラー
ミドルウェア
リクエスト
カーネル.php
ルート.php
ミドルウェアは非常に馴染みがありませんが、これは元のルーティング フィルターのアップグレードされたバージョンであり、filters.php でフィルターを定義する必要はなくなり、代わりにクラスが Middleware ディレクトリに作成され、グローバルに、またはオプションで Kernel.php で設定されます。ミドルウェアはリクエストごとに実行され、オプションのものはルーティングまたはコントローラーで使用できる元のフィルターに相当します。
http リクエストに関連するすべての処理は http ディレクトリにあると考えることができます。たとえば、コントローラーはリクエストを受け入れて返すために使用されるため、Http ディレクトリに配置するのが合理的です。
ルーティング
ルーティングは前のルーティングとあまり変わりませんが、コントローラーの名前空間を指定する場合、名前空間は絶対パスではなく、AppHttpControllers に対する相対パスであることに注意する必要があります。例:
コードは次のとおりです:
対応するクラスは App/Http/Controllers/Auth ディレクトリにあります。
さらに、ルーティングはコマンドラインツールを通じてパフォーマンスを向上させるためのキャッシュもサポートしています
コードは次のとおりです:
は簡単に生成することも、
を使用することもできます
コードは次のとおりです:
キャッシュをクリーンアップします。
サービス
App ディレクトリの下に Services ディレクトリもあります。これは素晴らしい概念だと思います。私は、コントローラー内のビジネス ロジック コードの大きなセクションに常に悩まされてきました。カプセル化された別のレイヤーを使用したいと考えています。もちろん、これらのビジネス ロジックとサービスを使用してこの作業を行うことはできますが、使用することを強くお勧めします。 laravel5 に付属するデモを見てみましょう:
コードは次のとおりです:
これは、登録許可权のコントロール、我们看 __construct 構造関数、パラメータを利用して自動注入された "インターフェイス实现(参照手册IoC)" の绑定、我们看下レジストラ:
代码如下:
提交用户名秘密コード時の処理:
代码如下:
可以看,表单验证的业务逻辑仅仅一行:
代码如下:
コントローラー全体のコードは非常に簡単に理解できるため、コントローラーに直接封入するよりもはるかに優れた、多くの一般的なトラフィック ブロック化サービスを提供できます。
モデルmodels の名前は確認されていません。すべてのアプリケーションがデータベースに必要なわけではないため、laravel5 ではこの名前空間が提供されていませんが、App にこの名前空間が提供されているため、すべてのモデルを含む Models の名前を App/ で独自に作成できます。すべてのクラスは名前空間の AppModel を使用します。つまり、一部の上位を使用するだけで、事前に使用する必要がありますが、そのようにしても名前空間のグループの下にあるものはすべてありません。
時間制限がありますので、先にこの多くの内容を書いてください。希望大家が喜欢できます。
http://www.bkjia.com/PHPjc/962924.html