Laravel - Laravelの構造

提供:MochiuWiki : SUSE, EC, PCB
2024年11月3日 (日) 09:48時点におけるWiki (トーク | 投稿記録)による版 (→‎開発フロー)
ナビゲーションに移動 検索に移動

概要



ディレクトリ構成

ディレクトリ名 説明
app アプリケーションのプログラム部分が存在するディレクトリである。
アプリケーションの開発時には、必要なスクリプトファイルを追加する。
bootstrap アプリケーションの起動時に実行される処理(laravelフレームワークの起動コード)が存在する。
config 設定ファイルが存在するディレクトリである。
database データベース関連のファイルが存在する。
MigrationファイルなどDB関連のファイル等が配置される。
public 公開ディレクトリである。
CSS、JS等の外部に公開するファイルを配置する。

NginXおよびApache2のドキュメントルートの設定では、このディレクトリを指定する。
resources プログラムが使用するリソース関連のファイル(例: ビューや言語変換用ファイル等)が存在するディレクトリである。
プログラムのテンプレートファイル等が存在する。
routes ルーティング情報が保存されているディレクトリである。
アクセスするアドレスに割り当てられるプログラムの情報等が記載されている。
storage アプリケーションのプログラムが保存するファイル等(例: ログファイル)を配置する。
tests ユニットテスト関係のファイルが存在するディレクトリである。
テストコード等を配置する。
vendor フレームワーク本体のプログラムが存在するディレクトリである。
Composerでインストールしたライブラリが保存されている。



resourcesディレクトリとpublicディレクトリの違い

resources ディレクトリ

ソースコードを配置する場所であり、コンパイル / バンドル前のファイルが置かれる。
Sass, TypeScript, モダンなJavaScript (ES6+) 等の開発用コードを配置する。

また、npmパッケージからインポートしたコードも含める。

これは、Vite / Webpackにより処理される前の状態である。

publicディレクトリ

Webブラウザから直接アクセス可能なファイルを配置する。
Webブラウザが解釈できる形式 (通常のCSS, ES5 JavaScript)

コンパイル / バンドル済みのファイルである。
(最適化・圧縮済みの本番向けのコード等)
(アセットのビルド後の出力先)

具体例

 // resources/css/app.scss
 
 @import 'variables';
 .button {
   @apply bg-blue-500;
   &:hover {
     @apply bg-blue-600;
   }
 }


 // public/css/app.css (コンパイル後)
 
 .button {
   background-color: #3b82f6;
 }
 
 .button:hover {
   background-color: #2563eb;
 }


開発フロー

  1. resources 下で開発を行う。
  2. vite build / npm run build でコンパイル。
  3. 結果がpublicディレクトリに出力される。
  4. publicのファイルがWebサーバから配信される。


resourcesは開発向け、publicは本番配信向けという役割の違いがある。