優しいIT亀井亮介です!
客先でLaravel PHP, Dockerなどを採用しており、ノウハウなどを公開します!
目的
新しいフレームワークにしたり、久しぶりに利用するフレームワークに触るとき、フレームワークごとにフォルダ構成が異なり戸惑うことはありませんか?
ファサードについては決められたルールがないので推奨例として記載します!
構成
テンプレート自動生成
下記は自動生成すると便利です。
自動生成の詳細は別記事にします。
- モデル
- ビュー
- コントローラー
- マイグレーション
- シーダー
app
モデル・コントローラ・ファサード関連のファイル・フォルダを置きます。
app直下
app直下の.phpはモデルです。
モデルには
1. 関連するテーブル名(Laravel命名規則に沿っていれば省略可能)
2. プライマリーキー(Laravel命名規則に沿っていれば省略可能)
3. EloquentのhasMany, belongsToの設定
などを記載します。
(詳細は別記事にします)
app/Http
コントローラーです。
コントローラーでは、ブラウザ・セッションからの値の受け取り、ビジネスロジック(ファサード)との連携、ビューに値を渡します。
(詳細は別記事にします)
ファサード関連
詳細は別記事にします。
Providers
サービスプロバイダ
テンプレートを自動生成し規則にのっとり記載
Facades
ファサード
規則にのっとり記載
Services
サービス
ファサードで処理する本体を記載
resources/views
resources/views/layout.blade.php
ヘッダーやフッターなど全画面共通の部分のビュー
layout.blade.phpを部品化する場合はこのフォルダに置くとわかりやすいです。
resources/views/モデル名フォルダ
各コントローラーのアクションで呼び出すビューを置きます。
例
- index.blade.php 一覧
- create.blade.php 新規登録
- edit.blade.php 更新画面
- show.blade.php 詳細画面
database
マイグレーションファイルとシーダーファイルがあります。
(別途詳細記事)
database/migrations
マイグレーション
テーブル構成(SQL CREATE文)を記載します。
テーブル構成をプログラムで管理し、バージョン管理できるので便利です。
database/seeds
シーダー
データ(SQL INSERT文)を記載します。
初期データをプログラムで管理し、バージョン管理できるので便利です。
大量ダミーデータ生成などもここで行うと便利です。
tests
(自動化した)テストを記載します。
(別途詳細記事)
public
画像やcss, JavaScript, フォントファイルなどを置きます。
config
設定ファイルです。
よく使うのは、ファサードを作るときに追記するapp.phpです。
app.phpは別途詳細記事
routes
ルーティングを記載します。
ルーティングとは、URLとコントローラとアクションを関連付けします。
(別途詳細記事)
routes/api.php
API用のルーティング
routes/console.php
クーロン用のルーティング
routes/web.php
ウェブ用(ブラウザから普通にアクセス)用のルーティング
storage
log以外はあまり見ないと思います。
storage/logs/laravel.log
ログです。下記のようにしてリアルタイムにモニタリングすると便利です。
$ tail -f {プロジェクト}/storage/logs/laravel.log
vendor
拡張モジュール(?)ライブラリです。