そのため、Laravel 5 は新しいフォルダー構造を持ち出し、カスタム クラスを管理する最善の方法を見つけようとしています (PhpSpec テストを念頭に置いてください)。
以前、私はこのようなことをしていました
- アプリ
- Apes(私のカスタムクラスが開催された場所)
- モデル
- コントローラー
- 等
新しい構造では、新しいディレクトリ構造に合わせてクラスをセグメント化しようとする必要がありますか? たとえば、現在アプリに Http フォルダーがあります。関連するカスタム クラスをそのディレクトリに追加する必要がありますか?
- アプリ
- Http
- 類人猿
- SomeHttpClass
- コントローラー
- ミドルウェア
- 類人猿
- プロバイダ
- 類人猿
- MyServiceProvider
- AppServiceProvider.php
- 類人猿
- Http
これはおそらく個人的な好みなどの問題であることは承知していますが、新鮮な新しい L5 プロジェクトをレイアウトするためのベスト プラクティス アプローチについて頭を悩ませていました。
任意の推奨事項をいただければ幸いです。
アップデート
しばらくいじくり回した後、私にとってはうまくいくアプローチに落ち着きました(これは小さなアプリです。
- アプリ
- コンソール
- ハンドラー
- ヘルパー
- Http
- コントローラー
- 管理者
- 公衆
- ミドルウェア
- リクエスト
- コントローラー
- プロバイダ
- リポジトリ
- AbstractDbRepository.php
- ClientRepositoryInterface.php
- DbClientRepository.php
- DbScheduleRepository.php
- ScheduleRepositoryInterface.php
- スケジュール
- 例外
- スケジュール.php
- ScheduleCalculator.php
- ScheduleInputTransformer.php
- ScheduleTimes.php
- 特徴
- SimpleModel.php
モデルがかなり単純な場合はアプリのルートにそのまま残しますが、より広範なテストが必要なより複雑なモデルの場合は、リポジトリ パターンを使用することにしました。
コントローラーを元の場所に保管しましたが、管理者/パブリックに細分化しました。このための小さな API も作成する可能性があり、おそらく API に関連するすべてのものを app/Api に配置します。