質問: 公式には、Controllerはapp\http\Controllers、Viewはresources\views、Modelはapp以下でお任せとされているかと思います。 今はControllerやデータベースと一対一の関係になっているModelに処理を書いているのですが、 可読性も処理速度も落ちるため、サービスコンテナ等を使用し、分割していきたいと考えています。 たとえば、公式ドキュメントの以下のページでは、Appの下にRepositoriesディレクトリを作成されていますが、 小規模〜中規模のアプリケーションであれば、どのようなディレクトリ構成にしていくのが良いのか参考にしたいと思っています。 https://readouble.com/laravel/5.7/ja/container.html (イントロダクションの `use App\Repositories\UserRepository;` ) お答えいただけると幸いです。
回答: > > 可読性も処理速度も落ちるため、サービスコンテナ等を使用し、分割していきたいと考えています > > > 処理速度は微妙なところですが、その考え方は良いと思います。 > > 小規模〜中規模のアプリケーションであれば、どのようなディレクトリ構成にしていくのが良いのか参考にしたいと思っています。 > > > しかしながら、規模の定義やアプリケーションの特性があいまいな上、正解のない質問をされています。 参考にされている公式ドキュメントのように、データアクセスの部分をRepositoriesに切り出したければ、現時点で一番人気のあるオープンソースアプリケーションとかを参考にされると良いでしょう。 > > 公式には、Controllerはapp\http\Controllers、Viewはresources\views、Modelはapp以下でお任せとされているかと思います。 > > > ご認識されている通り、本当に正解はありません。 色んなソースコードを参考にしながら、実際に手を動かしてみて、自分(チームならチーム)が納得できるアーキテクチャを選定されてください。