laravel5 の最初の紹介、laravel5_PHP チュートリアル
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 で設定されます。ミドルウェアはリクエストごとに実行され、オプションのものはルーティングまたはコントローラーで使用できる元のフィルターに相当します。
http リクエストに関連するすべての処理は http ディレクトリにあると考えることができます。たとえば、コントローラーはリクエストを受け入れて返すために使用されるため、Http ディレクトリに配置するのが合理的です。
ルーティング
ルーティングは前のルーティングとあまり変わりませんが、コントローラーの名前空間を指定する場合、名前空間は絶対パスではなく、AppHttpControllers に対する相対パスであることに注意する必要があります。例:
コードをコピーします コードは次のとおりです:
Route::controllers([
'auth' => 'AuthAuthController',
'パスワード' => 'AuthPasswordController',
]);
さらに、ルーティングはコマンドラインツールを通じてパフォーマンスを向上させるためのキャッシュもサポートしています
コードをコピーします コードは次のとおりです:
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 が付けられています。これだけですが、以前よりも使用するのが少し面倒で、最初にそれを使用する必要があります。ただし、これによりプロジェクトの構造が明確になり、すべてのクラス ライブラリが に編成されます。名前空間。
時間が限られているので、まずはこれくらい書いておきましょう。皆さんも気に入っていただければ幸いです。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

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

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