laravel5 の最初の紹介、laravel5_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:05:36
オリジナル
783 人が閲覧しました

laravel5、laravel5の初めての紹介

ディレクトリ構造の変更

laravel 5 で最初に強調されるのは、プロジェクトのディレクトリ構造の変更です。4.2 との違いは 1 つずつ説明します。

新しいディレクトリ構造は次のようになります:

アプリ
コマンド
コンソール
イベント
ハンドラー
コマンド
イベント
http
コントローラー
ミドルウェア
リクエスト
カーネル.php
Routes.php
プロバイダー
サービス
ブートストラップ
設定
データベース
移住

公開
パッケージ
リソース
ラング
閲覧数
ストレージ
キャッシュ
ログ
メタ
セッション
閲覧数
仕事
テスト

4.2のディレクトリ構造:

アプリ
コマンド
設定
コントローラー
データベース
ラング
モデル
スタート
ストレージ
テスト
閲覧数
ブートストラップ
公開
比較すると、変更は非常に大きく、config とデータベースがルート ディレクトリに移動され、lang ディレクトリと views ディレクトリが resource ディレクトリに移動され、コントローラが http ディレクトリに統合され、モデルが統合されていることがわかります。ディレクトリが消えており、目次は省略されています。

アプリの名前空間

laravel5 にはもう 1 つの変更があります。つまり、app ディレクトリにはデフォルトで App という名前空間があり、App の下にあるすべてのディレクトリとクラスはこの名前空間の下にある必要があります。つまり、psr4 標準が採用されています。

HTTP

laravel5 は、http ディレクトリなど、新しいディレクトリ構造が現時点で最良の構造の 1 つであり、開発をより便利にすることができると考えています。

http

コントローラー
ミドルウェア
リクエスト
カーネル.php
Routes.php
ミドルウェアは非常に馴染みがありませんが、これは元のルーティング フィルターのアップグレードされたバージョンであり、filters.php でフィルターを定義する必要はなくなり、代わりにクラスが Middleware ディレクトリに作成され、グローバルに、またはオプションで Kernel.php で設定されます。ミドルウェアはリクエストごとに実行され、オプションのものはルーティングまたはコントローラーで使用できる元のフィルターに相当します。

Requests は、コア クラス Request の拡張機能であり、さまざまな Requests クラスを拡張し、さまざまな機能を追加できます。

http リクエストに関連するすべての処理は http ディレクトリにあると考えることができます。たとえば、コントローラーはリクエストを受け入れて返すために使用されるため、Http ディレクトリに配置するのが合理的です。

ルーティング

ルーティングは前のルーティングとあまり変わりませんが、コントローラーの名前空間を指定する場合、名前空間は絶対パスではなく、AppHttpControllers に対する相対パスであることに注意する必要があります。例:

コードをコピーします コードは次のとおりです: Route::controllers([
'auth' => 'AuthAuthController',
'パスワード' => 'AuthPasswordController',
]);

対応するクラスは App/Http/Controllers/Auth ディレクトリにあります。

さらに、ルーティングはコマンドラインツールを通じてパフォーマンスを向上させるためのキャッシュもサポートしています

コードをコピーします コードは次のとおりです: php 職人ルート:キャッシュ

は簡単に生成することも、

を使用することもできます

コードをコピーします コードは次のとおりです: php職人ルート:クリア

キャッシュをクリーンアップします。

サービス

App ディレクトリの下に Services ディレクトリもあります。これは素晴らしい概念だと思います。私は、コントローラー内のビジネス ロジック コードの大きなセクションに常に悩まされてきました。カプセル化された別のレイヤーを使用したいと考えています。もちろん、これらのビジネス ロジックとサービスを使用してこの作業を行うことはできますが、使用することを強くお勧めします。 laravel5 に付属するデモを見てみましょう:

复制代码代码如下:
# Http/Controllers/Auth/AuthController.php
AppHttpControllersController を使用します;
IlluminateContractsAuthGuard を使用します;
IlluminateContractsAuthRegistrar を使用します;
IlluminateFoundationAuthAuthenticatesAndRegistersUsers を使用します;
class AuthController はコントローラーを拡張します {
    /*
    |------------------------------------------------- -------------------------
    |登録とログインコントローラー
    |------------------------------------------------- -------------------------
    |
    |このコントローラーは、新しいユーザーの登録と
の登録を処理します。     |既存のユーザーの認証。デフォルトでは、このコントローラーは
を使用します     |これらの動作を追加する簡単なトレイトです。探検してみませんか?
    |
    */
    AuthenticatesAndRegistersUsers を使用します;
    /**
     * 新しい認証コントローラー インスタンスを作成します。
     *
     * @param IlluminateContractsAuthGuard $auth
     * @param IlluminateContractsAuthRegistrar $registrar
     * @return void
    */
    パブリック関数 __construct(Guard $auth, Registrar $registrar)
    {
        $this->auth = $auth;
        $this->registrar = $registrar;
        $this->ミドルウェア('ゲスト', ['例外' => 'getLogout']);
    }
}

これは、登録許可权のコントロール、我们看 __construct 構造関数、パラメータを利用して自動的に注入された "インターフェイス实现(参照手册IoC)" の绑定、我们看下レジストラ:

复制代码代码如下:
AppUser を使用します;
バリデーターを使用します;
IlluminateContractsAuthRegistrar を RegistrarContract として使用します;
クラス Registrar は RegistrarContract {
を実装します     /**
     * 受信した登録リクエストのバリデータを取得します。
     *
     * @param 配列 $data
     * @return IlluminateContractsValidationValidator
    */
    パブリック関数バリデーター(配列 $data)
    {
        return Validator::make($data, [
            '名前' => '必須|最大:255',
            '電子メール' => '必須|メール|最大:255|固有:ユーザー',
            'パスワード' => '必須|確認済み|分:6',
        ]);
    }
    /**
     * 有効な登録後に新しいユーザー インスタンスを作成します。
     *
     * @param 配列 $data
     * @return ユーザー
    */
    パブリック関数 create(array $data)
    {
        return User::create([
            '名前' => $data['名前'],
            '電子メール' => $data['メール'],
            'パスワード' => bcrypt($data['パスワード']),
        ]);
    }
}

提交用户名秘密コード時の処理:

コードをコピーします コードは次のとおりです:
パブリック関数 postRegister(Request $request)
{
$validator = $this->registrar->validator($request->all());
($validator->fails()) の場合
{
$this->throwValidationException(
$request、$validator
);
}
$this->auth->login($this->registrar->create($request->all()));
リダイレクトを返します($this->redirectPath());
}

ご覧のとおり、フォーム検証のビジネス ロジックは 1 行だけです:

コードをコピーします コードは次のとおりです:
$validator = $this->registrar->validator($request->all());

コントローラー コード全体がすっきりしていて読みやすいように見えます。多くの一般的なビジネス ロジックをサービスにカプセル化できます。これは、コントローラー クラスに直接カプセル化するよりも優れています。

モデル

models ディレクトリがありません。すべてのアプリケーションがデータベースを使用する必要があるわけではないため、laravel5 がデフォルトでこのディレクトリを提供しないことは理解できます。App 名前空間が提供されているため、App/ の下に Models ディレクトリを自分で作成できます。これにはすべてのモデルが含まれています。すべてのクラスには名前空間 AppModel が付けられています。これだけですが、以前よりも使用するのが少し面倒で、最初にそれを使用する必要があります。ただし、これによりプロジェクトの構造が明確になり、すべてのクラス ライブラリが に編成されます。名前空間。

時間が限られているので、まずはこれくらい書いておきましょう。皆さんも気に入っていただければ幸いです。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/963125.html技術記事 laravel5 に初めて出会ったとき、laravel5 のディレクトリ構造の変更点は、まずプロジェクトのディレクトリ構造の変更点でした。4.2 との違いについて、一つずつ説明していきます。 新しいディレクトリ構造は次のようになります...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!