LoginSignup
12
16

More than 5 years have passed since last update.

Laravel PHPの構成

Last updated at Posted at 2017-03-31

優しいIT亀井亮介です!
客先でLaravel PHP, Dockerなどを採用しており、ノウハウなどを公開します!

目的

新しいフレームワークにしたり、久しぶりに利用するフレームワークに触るとき、フレームワークごとにフォルダ構成が異なり戸惑うことはありませんか?
ファサードについては決められたルールがないので推奨例として記載します!

構成

プロジェクト直下のフォルダ
プロジェクト直下のフォルダ構成

テンプレート自動生成

下記は自動生成すると便利です。
自動生成の詳細は別記事にします。
- モデル
- ビュー
- コントローラー
- マイグレーション
- シーダー

app

モデル・コントローラ・ファサード関連のファイル・フォルダを置きます。
app直下

app直下

app直下の.phpはモデルです。
モデルには
1. 関連するテーブル名(Laravel命名規則に沿っていれば省略可能)
2. プライマリーキー(Laravel命名規則に沿っていれば省略可能)
3. EloquentのhasMany, belongsToの設定
などを記載します。
(詳細は別記事にします)

app/Http

コントローラーです。
コントローラーでは、ブラウザ・セッションからの値の受け取り、ビジネスロジック(ファサード)との連携、ビューに値を渡します。
(詳細は別記事にします)

ファサード関連

詳細は別記事にします。

Providers

サービスプロバイダ
テンプレートを自動生成し規則にのっとり記載

Facades

ファサード
規則にのっとり記載

Services

サービス
ファサードで処理する本体を記載

resources/views

ビューです。
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

database/migrations

マイグレーション
テーブル構成(SQL CREATE文)を記載します。
テーブル構成をプログラムで管理し、バージョン管理できるので便利です。

database/seeds

シーダー
データ(SQL INSERT文)を記載します。
初期データをプログラムで管理し、バージョン管理できるので便利です。
大量ダミーデータ生成などもここで行うと便利です。

tests

(自動化した)テストを記載します。
(別途詳細記事)

public

画像やcss, JavaScript, フォントファイルなどを置きます。

public

config

設定ファイルです。
よく使うのは、ファサードを作るときに追記するapp.phpです。
app.phpは別途詳細記事

config

routes

ルーティングを記載します。
ルーティングとは、URLとコントローラとアクションを関連付けします。
(別途詳細記事)

routes

routes/api.php

API用のルーティング

routes/console.php

クーロン用のルーティング

routes/web.php

ウェブ用(ブラウザから普通にアクセス)用のルーティング

storage

log以外はあまり見ないと思います。

storage/logs/laravel.log

ログです。下記のようにしてリアルタイムにモニタリングすると便利です。

ログを見る
$ tail -f {プロジェクト}/storage/logs/laravel.log

vendor

拡張モジュール(?)ライブラリです。

12
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
16