X



【PHP】Laravel【フレームワーク】 Part.5
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
垢版 |
2021/04/16(金) 10:14:08.30ID:???
テンプレ追加修正お願いします

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/
0952nobodyさん
垢版 |
2021/05/23(日) 22:01:03.36ID:???
>>949
落ち着け。それでログ読め。ファットコントローラーを頭ごなしに否定しているのは1人だけだぞ。
0953nobodyさん
垢版 |
2021/05/23(日) 22:05:03.30ID:???
Webサービスでの画面遷移について質問があります。


画面A →(POST)→ 画面B →(POST)→ 画面C

と、遷移させたいとします。

で、画面Cで受信したPOSTデータにエラーがあったら画面Bに戻りたい。
このとき画面Bでは、画面Aから先にPOSTされたデータと、画面Bで先に入力した値を再表示させたい。

そこで質問ですが、

・画面Bや画面Cでは、受信したPOSTデータをセッションに保存するように作るのでしょうか?
・画面Cから画面Bに戻るには、redirect()を使うべきか、それとも $this->画面Bのメソッド(); を呼ぶのがいいのでしょうか?

教えてください。
お願いします。
0954nobodyさん
垢版 |
2021/05/24(月) 00:47:22.76ID:???
そういう場合は、画面Bから画面CにPOSTするんじゃなくて、
画面Bから画面BにPOSTして、エラーが無かったら画面Cにリダイレクト
0955nobodyさん
垢版 |
2021/05/24(月) 07:06:53.59ID:???
>>952
ファットコントローラー否定派は俺以外に少なくとも1人いる。

MVCはMがアプリケーションでVとCは単なるUIなんだよ。Mにビジネスロジックは全部書く。UIがWebだろうがコマンドラインだろうが独立して動けるようにMを書く。
なのでバリデーションやDBアクセスはMに書くべきで、Cには認証やらGET/POSTの処理やらクッキーアクセスetcを書く。
それが本来のMVCだが、Laravelのドキュメントが違ってるなら、厳密なMVCを目指してはいないのだろう。別にMVCだけが正解なわけでもないから。
0956nobodyさん
垢版 |
2021/05/24(月) 08:48:15.94ID:???
まー、955が正解だわな。

949みたいなオレオレMVC論を唱える奴がいるところが、ららべらーの次元の低さを如実に表してるな。
0957nobodyさん
垢版 |
2021/05/24(月) 08:54:31.51ID:???
>>955
いや、「頭ごなし」に否定してる人はってことね。MVCちゃんと理解して設計してねって話をしてる人が大半だと思ってて、ファットコントローラーはその設計に失敗した結果だからダメって言ってると思うんだよね。

俺が書いたのは>>888>>918ね。
0958nobodyさん
垢版 |
2021/05/24(月) 08:56:43.51ID:???
バリデーションがMって違和感があるんだけどそんなもん?
0959nobodyさん
垢版 |
2021/05/24(月) 09:03:21.36ID:???
>>958
LaravelはControllerかその手前のFormRequest、 RailsやCakePHPはModelでやってた気がする。
0960nobodyさん
垢版 |
2021/05/24(月) 09:12:02.22ID:???
俺はCakeを触ってたからバリデーションをControllerでやってるLaravelのドキュメントに違和感ある
0961nobodyさん
垢版 |
2021/05/24(月) 09:14:49.93ID:???
>>957
MVCちゃんと理解して設計したら、ファットコントローラーにはならないというのがMVCの思想なんだけど、違うか?
0962nobodyさん
垢版 |
2021/05/24(月) 09:26:37.00ID:???
>>961
そんなことはMVCのオリジナルの論文には書かれてなかったと思う。

元々は、ユーザーのメンタルモデルに沿った形でアプリケーションを再利用しやすいよう分割しようってだけの話だったかと。一体何を読んでその理解に至ったんだ・・・。

↓オリジナル
https://www.semanticscholar.org/paper/The-Model-View-Controller-(MVC)-Its-Past-and-Reenskaug/ff2ada602c96499c0f8a634e26c2c58ef8ec490f
0963nobodyさん
垢版 |
2021/05/24(月) 09:33:48.05ID:???
>>962
何を読んでって、Skinny Controller, Fat Modelってあちこちで言われてきたじゃん
と思ったらこれってRailsの話で結構古い記事なんだな、今の人は知らん&また違うのかも知れんな
0965nobodyさん
垢版 |
2021/05/24(月) 10:08:51.77ID:???
>>962
オリジナルって何だ?MVCの概念自体は1970年代からあるものでその論文?はそれを研究してまとめたものじゃないの?
コンピューターサイエンスにおけるMVCにファットコントローラーの話は出て来ないかも知れないが、
ここではWebフレームワークにおけるMVCの話をしてるんだと思う
0966nobodyさん
垢版 |
2021/05/24(月) 10:18:21.57ID:???
捨て垢でもいいのでQiitaに持論をまとめてほしいです
0967nobodyさん
垢版 |
2021/05/24(月) 10:29:44.68ID:???
Skinny Controller, Fat Modelでぐぐるとキータすぐ出てくるやん
今まで散々議論されてる話題だし
0968nobodyさん
垢版 |
2021/05/24(月) 10:57:26.49ID:???
>>964
・MVCそのものにはFat Controllerなんて概念は含まれていない
・Rails以降WebアプリケーションでMVCが使われ出して、正しくない実装によるFat Controllerが問題視されるようになった
てことなんかな
でその後果たしてFat Modelって本当に正しいんだろうか?という議論が起こり、EntityやらRepositoryやらに分割したり、
Webアプリの実装に特化したLaravelではRequestにバリデーション機能を持たせるようになったりしてると
0969nobodyさん
垢版 |
2021/05/24(月) 11:54:43.80ID:???
>>968
MVCていうとJavaはstrutsとかもっと前からあるし、PHPならMojaviとか。Railsはもっと後発。初期のMVCフレームワークは、原則に従った結果としてcontrollerの役割が肥大化する傾向が指摘されていた。

railsあたりで色々変わったんだよね。入力値の検査をなぜかmodelでやるようになったり。

Laravelはrailsリスペクトなのに、例えば入力値の検査は オリジナルのMVCの原則に従ってたりする。

なのでMVCの原則通り設計してもファットコントローラーはあり得る。あとはフレームワークのベストプラクティスに従うかどうかに依存している。だから>>918のような言い方にしないと人によっては反発されてしまう。
0970nobodyさん
垢版 |
2021/05/24(月) 14:27:53.34ID:???
> LaravelではRequestにバリデーション機能を持たせるようになった

Controllerにバリデーション機能を盛り込む
Modelにバリデーション機能を盛り込む
Requestにバリデーション機能を盛り込む

全部やってる事一緒じゃん。

なんで、バリデーションを行う専門のアーキテクチャを実装しねぇのか頭かち割って苺シロップかけてた方がいい。
0971nobodyさん
垢版 |
2021/05/24(月) 19:41:18.13ID:???
LaravelにはFormRequestていう専用のクラスにバリデーション関係を切り出せる。>>968が言ってるのはおそらくそういうこと。

だから「全部やってること一緒じゃん。なんで、バリデーションを行う専門のアーキテクチャを実装しねぇのか頭かち割って〜」て発言の真意が、ちょっとよく分からない。
0972nobodyさん
垢版 |
2021/05/24(月) 20:45:35.93ID:???
>>971
結局それはRequestにバリデーション機能を盛り込むってことだろ?
0973nobodyさん
垢版 |
2021/05/24(月) 20:53:56.33ID:???
>>972
はて。話が通じていないような?Requestにバリデーション機能を持たせるって言葉をどう解釈したのか知りたいなぁ。
0974nobodyさん
垢版 |
2021/05/24(月) 21:00:43.13ID:???
横だが俺も>>970が何言ってるのかわからない
そしてそれは>>970のせいだと思う
0975nobodyさん
垢版 |
2021/05/24(月) 21:29:56.81ID:???
>>974
お、俺だけじゃなかったか。良かった。
0976nobodyさん
垢版 |
2021/05/24(月) 22:01:01.84ID:???
バリデーションはモデルに書くようにしないとCLIで必要になった時困るぞ
その必要が絶対無ければFormRequestでできるのは便利だとは思うが…
0977nobodyさん
垢版 |
2021/05/24(月) 22:46:27.90ID:???
Laravel動かすならapacheの方がいいでしょうか?
ほぼ動的コンテンツになる気がするのですがnginxでLaravel使ってる人も多いようで迷います
0978nobodyさん
垢版 |
2021/05/24(月) 22:56:36.84ID:???
素人はapacheにしときなされ。nginxの場合それだけでは動かないからphp-fpmあたりも組み合わせなきゃいけない。
0979nobodyさん
垢版 |
2021/05/24(月) 23:23:24.87ID:???
>>978
どちらかというと今までnginxばっかり触っていてapacheは初めてです
0980nobodyさん
垢版 |
2021/05/24(月) 23:25:34.60ID:???
今どきQiita見りゃnginxの設定くらい余裕やろ
0981nobodyさん
垢版 |
2021/05/24(月) 23:42:23.72ID:???
じゃあnginxで良いじゃん。どこからapache出てきたの・・・
0982nobodyさん
垢版 |
2021/05/25(火) 00:28:17.88ID:???
>>981
nginxは基本的に静的コンテンツに強いサーバで本来phpのような動的コンテンツを動かすようなサーバではないです
動的コンテンツは基本apacheなので自分もapacheにしようと思ったのですが調べたらLaravelで作られたサービスは
nginx上で動作させていることが多いと分かったので疑問に思って質問しました。
0983nobodyさん
垢版 |
2021/05/25(火) 00:30:59.41ID:???
マジレスするとLaravelはnginxにあわせて最適化されたフレームワークなので
政敵コンテンツが特異なnginxであってもLaravelならnginxを使ったほうがいい
0984nobodyさん
垢版 |
2021/05/25(火) 04:41:26.62ID:???
フレームワークにApache向けとかnginx向けとかあるの?何が違うの?
0985nobodyさん
垢版 |
2021/05/25(火) 06:07:11.14ID:???
大体ApacheなんてApacheの方が使いなれてる、xamppで手軽に環境が整う、どうしても.httaccess使う必要があるくらいの理由以外で選ぶ必要がない
0986nobodyさん
垢版 |
2021/05/25(火) 07:03:34.88ID:???
ngnixの裏にapacheがあったりする
0987nobodyさん
垢版 |
2021/05/25(火) 12:04:02.44ID:???
表向きはnginxバックエンドでapacheの中でlaravelをうごかせばOK
0988nobodyさん
垢版 |
2021/05/25(火) 15:10:03.74ID:???
特殊な事情がないかぎりは
今どきApacheを積極的に使う理由は何一つないと思うが
0989nobodyさん
垢版 |
2021/05/25(火) 16:01:04.00ID:???
>>988
> 今どきApacheを積極的に使う理由は何一つないと思うが

何故?
0990nobodyさん
垢版 |
2021/05/25(火) 16:35:39.00ID:???
設定が簡単で.htaccessも使えるからApache使ってるわ
0992nobodyさん
垢版 |
2021/05/25(火) 18:14:39.16ID:???
Apacheの方が情報量多いし馴染みがあるからなぁ
XAMPPなんかでローカルでも使えるし
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 39日 8時間 23分 12秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況