おすすめ書籍はじめに今回の記事は、PHPのフルスタックフレームワークであるLaravelの簡単な概要とライフサイクルなどの基礎的な知識となります。こちらの記事にもある通り、先日からPHPを勉強していおり、今回は続きを書こうと思っていたのですが、並行して勉強しているLaravelを記事にした方が勉強になるかなと思ったので、こちらを記事にすることにしました。Laravelの概要LaravelはPHPのいわゆるフルスタックフレームワークです。ルーティング、DB関連の機能(マイグレーションやORMなど)、テンプレートエンジン(Blade)などのWebアプリケーションに必要な一通りの機能を提供します。Laravelの特徴としてはいくつか挙げられますが、注目すべき点は下記の3つだと思います。学習コストが低いSymfonyがベースDIを積極的に活用している学習コストが低い公式でもうたっている通り、比較的に学習の難度は低いと思います。Laravelでは様々な機能をFacadeとして提供しており、容易に複雑な機能を利用できるようになっています。セッションを扱いたい場合は下記のようになります。\Session::get("user_id");SymfonyがベースLaravelではコア部分にSymfonyのコンポーネントを利用しています。Symfonyは古くからPHPで使用されている実績のあるフレームワークであり、Laravelの信頼性に寄与します。Injection)を実現しています。このサービスコンテナとコントラクト(インタフェース)を利用することで、Laravel自体のカスタマイズ(暗号化方式を変更するなど)も容易に行えるようになっています。ディレクトリ構成Laravelは拡張性の高いフレームワークなので、ディレクトリ構成を柔軟に変更することができます。ここでは、プロジェクト作成時のディレクトリ構成にそって説明します。ディレクトリ構成は下記のとおりです。webpack.mix.js<code>appConsole、Exceptions、Http、Providersなどのフォルダがあります。アプリケーションの処理はこのディレクトリ以下に配置します。bootstrapアプリケーションの初期化処理やオートローディングの設定ファイルが置かれます。configアプリケーションの設定ファイルが置かれます。databaseマイグレーションファイルやSEEDファイルが置かれます。publicindex.phpの他に画像、CSS、JavaScriptといったそのまま公開できるファイルが置かれます。index.phpはアプリケーションに送られる全てのリクエストを処理するエントリーポイントとなるファイルです。resourcesViewのテンプレートファイルやLESS、SASS、TypeScriptなどのファイルが置かれます。routesweb.phpやapi.phpなどのルート定義ファイルが置かれます。storageログファイルやキャッシュファイルなどのLaravelが作成するファイルが置かれます。testsテストコード関連のファイルが置かれます。vendorLaravel本体やSymfonyのコンポーネントが置かれています。他にもcomposerでダウンロードされるパッケージもここに置かれます。ライフサイクルLaravelがリクエストを処理する流れは下記のとおりです。レスポンスはリクエストと逆の流れで処理されます。エントリーポイントHTTPカーネルルータミドルウェアコントローラエントリーポイントLaravelでは全てのリクエストをエントリーポイントであるindex.phpで受ける必要があります。index.phpのコードを見ながら処理の流れを追ってみます。$response);HTTPカーネルHTTPカーネルはアプリケーションのセットアップやミドルウェアの設定を行います。その後、ルータにリクエストをディスパッチします。HTTPカーネルでは他にも例外処理やイベントリスナーの設定も行います。ルータルータではリクエストにマッチするルートを探して実行します。コントローラやアクションクラスの他に、クロージャを直接定義することもできるので、簡単な処理であればルータに記述することもできます。ルートの定義はweb.phpもしくはapi.phpに記述します。ルート定義の例をは下記のとおりです。view('1.0.0');});ミドルウェアミドルウェアはコントローラ等でリクエストを処理する前後に任意の処理を行います。ミドルウェアの例としては暗号化(復号化)やセッション管理などがあげられます。ミドルウェアの実行は数珠つなぎのように連結して行われるので、それぞれのミドルウェアは一つの処理のみを行います。コントローラコントローラではHTTPリクエストに応じて処理を行います。さいごにLaravelの基礎知識として特徴、ディレクトリ構成、ライフサイクルについて紹介しました。コメントをキャンセルメールアドレスが公開されることはありません。コメント名前メールアドレスサイト上に表示された文字を入力してください。こんにちは、tonnyです。今回はGitのケーススタディ的なものを書きたいと思います。私たちは無料アプリもリリースしています、ぜひご覧ください。下記のアイコンから無料でダウンロードできます。