【PHP】Laravel【フレームワーク】 Part.5
レス数が1000を超えています。これ以上書き込みはできません。
テンプレ追加修正お願いします
Laravel
ウェブ職人のためのPHPフレームワーク
本家
https://laravel.com/
git
https://github.com/laravel
動画チュートリアル(英語)
https://laracasts.com/
日本語
http://laravel.jp/
書籍
Laravel リファレンス[Ver.5.1 LTS 対応] Web職人好みの新世代PHPフレームワーク
Laravelエキスパート養成読本[モダンな開発を実現するPHPフレームワーク!] (Software Design plus)
※前スレ
【PHP】Laravel【フレームワーク】 Part.4
https://medaka.5ch.net/test/read.cgi/php/1613209188/ >>949
落ち着け。それでログ読め。ファットコントローラーを頭ごなしに否定しているのは1人だけだぞ。 Webサービスでの画面遷移について質問があります。
画面A →(POST)→ 画面B →(POST)→ 画面C
と、遷移させたいとします。
で、画面Cで受信したPOSTデータにエラーがあったら画面Bに戻りたい。
このとき画面Bでは、画面Aから先にPOSTされたデータと、画面Bで先に入力した値を再表示させたい。
そこで質問ですが、
・画面Bや画面Cでは、受信したPOSTデータをセッションに保存するように作るのでしょうか?
・画面Cから画面Bに戻るには、redirect()を使うべきか、それとも $this->画面Bのメソッド(); を呼ぶのがいいのでしょうか?
教えてください。
お願いします。 そういう場合は、画面Bから画面CにPOSTするんじゃなくて、
画面Bから画面BにPOSTして、エラーが無かったら画面Cにリダイレクト >>952
ファットコントローラー否定派は俺以外に少なくとも1人いる。
MVCはMがアプリケーションでVとCは単なるUIなんだよ。Mにビジネスロジックは全部書く。UIがWebだろうがコマンドラインだろうが独立して動けるようにMを書く。
なのでバリデーションやDBアクセスはMに書くべきで、Cには認証やらGET/POSTの処理やらクッキーアクセスetcを書く。
それが本来のMVCだが、Laravelのドキュメントが違ってるなら、厳密なMVCを目指してはいないのだろう。別にMVCだけが正解なわけでもないから。 まー、955が正解だわな。
949みたいなオレオレMVC論を唱える奴がいるところが、ららべらーの次元の低さを如実に表してるな。 >>955
いや、「頭ごなし」に否定してる人はってことね。MVCちゃんと理解して設計してねって話をしてる人が大半だと思ってて、ファットコントローラーはその設計に失敗した結果だからダメって言ってると思うんだよね。
俺が書いたのは>>888や>>918ね。 バリデーションがMって違和感があるんだけどそんなもん? >>958
LaravelはControllerかその手前のFormRequest、 RailsやCakePHPはModelでやってた気がする。 俺はCakeを触ってたからバリデーションをControllerでやってるLaravelのドキュメントに違和感ある >>957
MVCちゃんと理解して設計したら、ファットコントローラーにはならないというのがMVCの思想なんだけど、違うか? >>961
そんなことはMVCのオリジナルの論文には書かれてなかったと思う。
元々は、ユーザーのメンタルモデルに沿った形でアプリケーションを再利用しやすいよう分割しようってだけの話だったかと。一体何を読んでその理解に至ったんだ・・・。
↓オリジナル
https://www.semanticscholar.org/paper/The-Model-View-Controller-(MVC)-Its-Past-and-Reenskaug/ff2ada602c96499c0f8a634e26c2c58ef8ec490f >>962
何を読んでって、Skinny Controller, Fat Modelってあちこちで言われてきたじゃん
と思ったらこれってRailsの話で結構古い記事なんだな、今の人は知らん&また違うのかも知れんな >>962
オリジナルって何だ?MVCの概念自体は1970年代からあるものでその論文?はそれを研究してまとめたものじゃないの?
コンピューターサイエンスにおけるMVCにファットコントローラーの話は出て来ないかも知れないが、
ここではWebフレームワークにおけるMVCの話をしてるんだと思う 捨て垢でもいいのでQiitaに持論をまとめてほしいです Skinny Controller, Fat Modelでぐぐるとキータすぐ出てくるやん
今まで散々議論されてる話題だし >>964
・MVCそのものにはFat Controllerなんて概念は含まれていない
・Rails以降WebアプリケーションでMVCが使われ出して、正しくない実装によるFat Controllerが問題視されるようになった
てことなんかな
でその後果たしてFat Modelって本当に正しいんだろうか?という議論が起こり、EntityやらRepositoryやらに分割したり、
Webアプリの実装に特化したLaravelではRequestにバリデーション機能を持たせるようになったりしてると >>968
MVCていうとJavaはstrutsとかもっと前からあるし、PHPならMojaviとか。Railsはもっと後発。初期のMVCフレームワークは、原則に従った結果としてcontrollerの役割が肥大化する傾向が指摘されていた。
railsあたりで色々変わったんだよね。入力値の検査をなぜかmodelでやるようになったり。
Laravelはrailsリスペクトなのに、例えば入力値の検査は オリジナルのMVCの原則に従ってたりする。
なのでMVCの原則通り設計してもファットコントローラーはあり得る。あとはフレームワークのベストプラクティスに従うかどうかに依存している。だから>>918のような言い方にしないと人によっては反発されてしまう。 > LaravelではRequestにバリデーション機能を持たせるようになった
Controllerにバリデーション機能を盛り込む
Modelにバリデーション機能を盛り込む
Requestにバリデーション機能を盛り込む
全部やってる事一緒じゃん。
なんで、バリデーションを行う専門のアーキテクチャを実装しねぇのか頭かち割って苺シロップかけてた方がいい。 LaravelにはFormRequestていう専用のクラスにバリデーション関係を切り出せる。>>968が言ってるのはおそらくそういうこと。
だから「全部やってること一緒じゃん。なんで、バリデーションを行う専門のアーキテクチャを実装しねぇのか頭かち割って〜」て発言の真意が、ちょっとよく分からない。 >>971
結局それはRequestにバリデーション機能を盛り込むってことだろ? >>972
はて。話が通じていないような?Requestにバリデーション機能を持たせるって言葉をどう解釈したのか知りたいなぁ。 横だが俺も>>970が何言ってるのかわからない
そしてそれは>>970のせいだと思う バリデーションはモデルに書くようにしないとCLIで必要になった時困るぞ
その必要が絶対無ければFormRequestでできるのは便利だとは思うが… Laravel動かすならapacheの方がいいでしょうか?
ほぼ動的コンテンツになる気がするのですがnginxでLaravel使ってる人も多いようで迷います 素人はapacheにしときなされ。nginxの場合それだけでは動かないからphp-fpmあたりも組み合わせなきゃいけない。 >>978
どちらかというと今までnginxばっかり触っていてapacheは初めてです 今どきQiita見りゃnginxの設定くらい余裕やろ じゃあnginxで良いじゃん。どこからapache出てきたの・・・ >>981
nginxは基本的に静的コンテンツに強いサーバで本来phpのような動的コンテンツを動かすようなサーバではないです
動的コンテンツは基本apacheなので自分もapacheにしようと思ったのですが調べたらLaravelで作られたサービスは
nginx上で動作させていることが多いと分かったので疑問に思って質問しました。 マジレスするとLaravelはnginxにあわせて最適化されたフレームワークなので
政敵コンテンツが特異なnginxであってもLaravelならnginxを使ったほうがいい フレームワークにApache向けとかnginx向けとかあるの?何が違うの? 大体ApacheなんてApacheの方が使いなれてる、xamppで手軽に環境が整う、どうしても.httaccess使う必要があるくらいの理由以外で選ぶ必要がない 表向きはnginxバックエンドでapacheの中でlaravelをうごかせばOK 特殊な事情がないかぎりは
今どきApacheを積極的に使う理由は何一つないと思うが >>988
> 今どきApacheを積極的に使う理由は何一つないと思うが
何故? 設定が簡単で.htaccessも使えるからApache使ってるわ Apacheの方が情報量多いし馴染みがあるからなぁ
XAMPPなんかでローカルでも使えるし このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 39日 8時間 23分 12秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。