ホームページ > バックエンド開発 > PHPチュートリアル > laravel5_PHP チュートリアルの最初の紹介

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

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

laravel5 との出会い

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 で設定されます。ミドルウェアはリクエストごとに実行され、オプションのものはルーティングまたはコントローラーで使用できる元のフィルターに相当します。

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());
if ($validator->fails())
{
$this->throwValidationException(
$リクエスト、$バリデータ
);
}
$this->auth->login($this->registrar->create($request->all()));
return redirect($this->redirectPath());
}

可以看,表单验证的业务逻辑仅仅一行:

代码如下:


$validator = $this->registrar->validator($request->all());

コントローラー全体のコードは非常に簡単に理解できるため、コントローラーに直接封入するよりもはるかに優れた、多くの一般的なトラフィック ブロック化サービスを提供できます。

モデル

models の名前は確認されていません。すべてのアプリケーションがデータベースに必要なわけではないため、laravel5 ではこの名前空間が提供されていませんが、App にこの名前空間が提供されているため、すべてのモデルを含む Models の名前を App/ で独自に作成できます。すべてのクラスは名前空間の AppModel を使用します。つまり、一部の上位を使用するだけで、事前に使用する必要がありますが、そのようにしても名前空間のグループの下にあるものはすべてありません。

時間制限がありますので、先にこの多くの内容を書いてください。希望大家が喜欢できます。

http://www.bkjia.com/PHPjc/962924.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/962924.html技術記事最初にlaravel5 laravel5が配布されました、現在国内の関連費用はさらに少なくなっています、最初に翻訳して官网を先見することができます、最初にいくつかの変更が完了しました、次のことを思います。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート