目次
laravel5、laravel5の初めての紹介
ホームページ バックエンド開発 PHPチュートリアル laravel5 の最初の紹介、laravel5_PHP チュートリアル

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

Jul 13, 2016 am 10:05 AM

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 との違いについて、一つずつ説明していきます。 新しいディレクトリ構造は次のようになります...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPロギング:PHPログ分析のベストプラクティス PHPロギング:PHPログ分析のベストプラクティス Mar 10, 2025 pm 02:32 PM

PHPロギングは、Webアプリケーションの監視とデバッグ、および重要なイベント、エラー、ランタイムの動作をキャプチャするために不可欠です。システムのパフォーマンスに関する貴重な洞察を提供し、問題の特定に役立ち、より速いトラブルシューティングをサポートします

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

PHPにおける後期静的結合の概念を説明します。 PHPにおける後期静的結合の概念を説明します。 Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 Mar 28, 2025 pm 05:12 PM

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

See all articles