Lapis Lazuli

technical blog for web developer

【PHP】laravelのディレクトリ構造を考えたい

前回、laravelのイントロダクションを書いた訳ですが、やっぱりディレクトリ構成が気になったので・・・

laravelは他のフレームワークにあるような、MVCの各ファイルがそれぞれのディレクトリにあるという構造になっていません。
特にモデルに関してはModelというディレクトリがある訳でもなくappの直下がデフォルト。
つまりまとめると下記のように。

・Controller
/app/Http/Controllers

これはわかる。ちゃんとControllerって名前ついてるし

・Templete
/resources/views

ルートディレクトリから別なのがちょっと違和感だけど、まぁこれもわからんでもない。CSSとかJSなどの静的ファイルもここにまとめられているので、それと同じ扱いだと思えば。

・Model
/app

なぜにapp直下?

という感じです。専用ディレクトリがなく、app直下にすべてのModelが作られる仕組みになっています。
なので、規模が大きくなってファイルが増えてくると、別途Modelディレクトリを作るのが一般的らしいです。
そりゃそうですよね。app開いたらファイルたくさんですもん。

なぜこうなったかというと・・・こういうことらしいです。
qiita.com

要するにModelの定義が人によって異なるからということ。
確かに言われてみればビジネスロジックの定義についても異なりますからねぇ・・・
理屈はわかるんですが普通に使いづらいので、私はModelsディレクトリ作ってそこに移動させてしまいましたw

ここらへんはCakeの方は王道というか、素直で分かりやすい感じがしましたね。(まぁこれも慣れかなとは思いますが)
ただそれ以外の部分(特にテンプレートエンジン)は僕はlaravelが断然優れていると思います。
次回はそこら辺を記事にしようかなと。
それでは。