質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

2回答

3873閲覧

Laravelで1つのControllerに収めるべき処理はどんなものでしょうか?

lily22

総合スコア16

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2019/02/20 17:03

Laravelに限らないかもしれませんが、MVCのフレームワークを使用する時に1つのContorollerに記載すべきメソッドの範囲はどのくらいが推奨されているとかあるのでしょうか?

例えばtwitterのような一般的なwebサービスでユーザー登録処理やログイン処理は個別にRegisterControllerやLoginControllerの様に分けた方がいいのか。
それとも1つにまとめてしまってAuthControllerにしてもいいのか。

はたまたユーザーのプロフィール編集処理などもまとめてUserControllerのようにしてしまってもいいのか。

極力切り分けた方がいいのかある程度まとめてしまってもいいのか。
ベターな方法ってありますか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Laravelに限らないかもしれませんが、MVCのフレームワークを使用する時に1つのContorollerに記載すべきメソッドの範囲はどのくらいが推奨されているとかあるのでしょうか?

推奨されているガイドラインはありません。

とはいえ何も考えずに設計してしまうと、後々大変なことになりますので、以下の点に気をつけておくと良いと思います。

  • ソースコードが肥大化しすぎて見づらくならない。
  • ユニットテストの実行時間が長くなりすぎない。
  • 今後の拡張性をある程度考慮しておく。

投稿2019/02/21 01:42

nskydiving

総合スコア6500

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lily22

2019/02/21 17:37

なるほど、推奨されているガイドラインはないのですね。 簡潔なアドバイスありがとうございます。
guest

0

ベストアンサー

要件が満たせればどのようなやり方でも構いません。
現場的な観点からしてもコーディング規約は現場によって違いますし、そこを柔軟に表現できるのがPHPの良いところとも言えます。

設計的な観点からすると、まずはどのような機能があるかを全て洗い出すところから始まりますよね。
機能はデザインレイアウトとほぼイコールですが、それが決まればアクセスするURLの形式も決まります。そして必要なデータも決まってきます。データが決まればモデル部分も決まります。
URLの形式が決まればルーティングが決まります。
しかし、コントローラーをどうするかというのはあくまで実装の話になってきます。

もしファットコントローラーになりそうであればデータ毎にわけていたコントローラーを画面単位や要件単位に分ければいいだけの話です。
クラス設計の観点からは「なるべく1つのクラスに役割を持たせ過ぎないように(単一責任原則)」というのはありますが、「過ぎない、過ぎる」はケースバイケースなので、
幸いLaravelには役割分担のためにさまざまな仕組み(キューとか参照)がありますし、それらを活用してファットコントローラーを避けるよつにされては如何でしょうか。

投稿2019/02/21 00:24

m.ts10806

総合スコア80765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lily22

2019/02/21 17:37

やはり基本的にはケースバイケースなのですね。設計のアドバイスまでくださりありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問