laravelでの基本的な開発の流れを理解するために、簡単なWEBアプリケーションを作成してみました。Laravelでの開発は、イノベーションプロジェクト(※)でも進めています。※.弊社では週3時間を割り当てて、革新をもたらすシステム/機能の開発をメンバー主体で進めております。今回は、以下の要件を満たすtodoアプリケーションを作成します。タスク名とタスク内容/期限を指定して、タスクを登録できる。登録したタスクを一覧形式で閲覧できる。タスクの情報(タスク名、タスク内容、ステータス、期限)を編集できる。画面イメージ今回作成する画面イメージは以下のとおりです。タスク登録タスク一覧タスク編集テーブル構成テーブルは以下の構成とします。以下の構成でアプリケーションを実装します。レイヤードアーキテクチャを意識してサービスクラスを作成し、コントローラからビジネスロジックを分離しています。バリデーションもフォームリクエストで実装します。URL一覧このアプリでは以下のURLを使用します。環境構築Laravelでの開発の流れを理解することが目的なので、開発環境の構築手順は省略します。構築に関する詳細は、Laravelの公式サイトをご参照ください。ここで使用するソフトウェア/ライブラリのバージョンを以下に記載します。下記コマンドを実行することで、カレントディレクトリにLaravelプロジェクトを作成します。※.プロジェクト名として「todo」を指定しています。これにより「todo」ディレクトリが作成されます。"5.7.*"※.以降では特に指定がない限り、「todo」ディレクトリをカレントディレクトリとして記載しています。今回は、ヘルパー関数を使用してビューを記述します。そのため、下記コマンドを実行してlaravelcollective/htmlパッケージをインストールします。"laravelcollective/html":"^5.7.0"マイグレーション下記コマンドを実行することで、マイグレーションファイルを作成します。--create=taskマイグレーションファイルは、database/migrationsディレクトリに下記フォーマットで作成されます。[yyyy]_[MM]_[dd]_[hhmmss]_create_status_table.php[yyyy]_[MM]_[dd]_[hhmmss]_create_task_table.php「status」および「task」テーブルを作成するために、マイグレーションファイルを変更します。}}下記コマンドを実行し、DBにテーブルを作成します。migrate※.テーブルを作成する際は、マイグレーションファイルの作成順(ファイル名の昇順)に処理が実行されます。テーブル作成時の実行順序を変えたい場合は、ファイル名の日時部分を書き換えて下さい。下記コマンドを実行することで、シーダーファイルを作成します。StatusTableSeeder初期データを登録するために、シーダーファイルを変更します。}}下記コマンドを実行し、「status」テーブルに初期データを登録します。--class=StatusTableSeederこれにより、「status」テーブルには以下のデータが登録されます。キャンセル実装Model下記コマンドを実行することで、各モデルクラスを作成します。Taskモデルクラスは、appディレクトリに作成されます。作成したモデルクラスを変更します。}}モデルは、LaravelのORMである「Eloquent」によってテーブルと関連付けられます。規約を適用したくない場合は、明示的に指定することもできます。テーブル名については、以下の規約があるため、ここでは上記のように明示的に指定しています。※.テーブル名以外の規約については、Laravelの公式サイトをご参照下さい。Serviceビジネスロジックを実装するServiceクラスを作成します。app/Services/TaskService.phpファイルを作成します。作成したサービスクラスには下記内容を記述します。}}Controller下記コマンドを実行することで、コントローラークラスを作成します。--resourceコントローラークラスは、app/Http/Controllersディレクトリに作成されます。コントローラークラスを以下のように変更します。}}FormRequest下記コマンドを実行することで、フォームリクエストクラスを作成します。TaskFormRequestフォームリクエストクラスは、app/Http/Requestsディレクトリに作成されます。フォームリクエストクラスを以下のように変更します。}}上記により、タスク名およびタスク内容の入力チェックを行います。Routerroutes/web.phpファイルに下記を追加してルートを定義します。'TaskController@destroy');View「resources/views」ディレクトリ直下に「task」ディレクトリを作成し、以下のファイルを作成します。今回は、bootstrapを使用して入力エラー時のメッセージを、各項目に表示するようにしています。</body></html>最後にlaravelでの基本的な開発の流れを理解するために、簡単なtodo管理アプリを作成しました。DIの機能(サービスコンテナ)により、責務を分離した実装がしやすいため、保守性が高いアプリを作りやすいと思います。弊社ではビックデータを扱っているため、複数のデータストアを切り替えやすいリポジトリパターンも試してみるつもりです。弊社では開発部のコミュニケーションツールと...2018-04-10CloufdFrontからNLBに接続するはじめまして、株式会社Core開発部の瀧です。ヘッドレスをPHPから操作してWebページのキャプチャ画像を取得するはじめまして、株式会社Core開発部の加藤です。»プロフィール株式会社CINCのエンジニアチームです。日々マーケティングツールの開発やR&Dを行っています。月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。