nobodyさん<><>2021/05/25(火) 20:01:01.50 ID:E8rm8mmq.net<> Laravel
ウェブ職人のためのPHPフレームワーク
本家
https://laravel.com/
git
https://github.com/laravel
動画チュートリアル(英語)
https://laracasts.com/
和訳ドキュメント
http://laravel.jp/
※前スレ
【PHP】Laravel【フレームワーク】 Part.5
https://medaka.5ch.net/test/read.cgi/php/1618535648/ <>【PHP】Laravel【フレームワーク】 Part.6
nobodyさん<>sage<>2021/05/25(火) 20:01:55.13 ID:???.net<> 2021年6月1日発売
PHPフレームワーク Laravel Webアプリケーション開発 バージョン8.x対応 <>
nobodyさん<>sage<>2021/05/25(火) 20:25:13.82 ID:???.net<> 立て乙 <>
nobodyさん<>sage<>2021/05/26(水) 09:44:20.64 ID:???.net<> バージョン8から勉強したら、数年はなんとかなる?
それとも9や10でガラッと変わったりする? <>
nobodyさん<>sage<>2021/05/26(水) 11:53:58.15 ID:???.net<> Apacheで十分おじさん続きをどうぞ <>
nobodyさん<>sage<>2021/05/26(水) 12:18:27.65 ID:???.net<> >>5
相変わらず気持ち悪いやつだな
たまには部屋から出て太陽の光でも見てこい <>
nobodyさん<>sage<>2021/05/26(水) 13:00:16.80 ID:???.net<> >>4
9でめちゃくちゃ変わる
今は時期が悪い <>
nobodyさん<>sage<>2021/05/26(水) 13:18:15.13 ID:???.net<> >>7
そうなのか・・・
じゃ、>>2も買わないほうが良いのか <>
nobodyさん<>sage<>2021/05/26(水) 13:58:37.93 ID:???.net<> >>7
それ、どこ情報?前も似たようなこと言ってた人居るけど、同一人物? <>
nobodyさん<>sage<>2021/05/26(水) 19:12:47.52 ID:???.net<> >>9
今週Taylor兄貴が海外で放送されているIT関連の専門チャンネルに出演したんだけど
そこでLaravel9について質問された際に答えた内容がどう考えても多少の変更ではないレベルだったんだよ・・・ <>
nobodyさん<>sage<>2021/05/26(水) 19:19:12.13 ID:???.net<> あれはLaravel9ではなくLaravelの将来について質問された時の話だから
Laravel9ではまだそこまで影響でないと思うけど・・・ <>
nobodyさん<>sage<>2021/05/26(水) 19:20:45.17 ID:???.net<> ちなみにそこで発言した内容は現在のLaravelはMVCだけど
それをやめてMVVMパターンにしたいって話ね <>
nobodyさん<>sage<>2021/05/26(水) 19:23:53.13 ID:???.net<> お前ら英語エアプか?
私としてはMVVMを採用したいけど変更が多すぎるからMVCのままでしょうね HAHAHAHA
って言ってただろ MVVMになることはない <>
nobodyさん<>sage<>2021/05/26(水) 19:25:48.83 ID:???.net<> その話が本当か嘘かは置いておいてMVVMってMVCに比べるとどういうメリットとデメリットがあるんですか? <>
nobodyさん<>sage<>2021/05/26(水) 19:26:07.06 ID:???.net<> コンセプトが変わるような物になるなら別のフレームワークにするような <>
nobodyさん<>sage<>2021/05/26(水) 19:38:57.64 ID:???.net<> >>10
そういうことか。ありがとう。
>>12
それだと大きな変更にはならんよね。MVVMパターンてLivewire使ったら自然とそうなるし。JetstreamなんてまさにMVVMパターンの典型。controller要らなくなるなーてのを実感してる。 <>
nobodyさん<>sage<>2021/05/26(水) 20:47:32.19 ID:???.net<> MVCにすっかり慣れちゃったからLivewire使いにくいわ <>
nobodyさん<>sage<>2021/05/26(水) 22:41:02.80 ID:???.net<> つまり、これから勉強するなら8でも良いってことですか? <>
nobodyさん<>sage<>2021/05/27(木) 01:15:23.91 ID:???.net<> >>18
せやね <>
nobodyさん<>sage<>2021/05/27(木) 11:07:42.48 ID:???.net<> じゃ、>>2買っても良いのかなぁ
誰かのレビュー待って検討するか <>
nobodyさん<>sage<>2021/05/27(木) 11:11:47.55 ID:???.net<> >>20
>>2は大抵の人にとってはゴミだからやめろ。 <>
nobodyさん<>sage<>2021/05/27(木) 11:23:05.25 ID:???.net<> 9向けのプルリクかなりの数承認されてるから8と9は別物と考えていいよ <>
nobodyさん<>sage<>2021/05/27(木) 11:36:24.61 ID:???.net<> Laravelって、一生完成しなさそうですね。 <>
nobodyさん<>sage<>2021/05/27(木) 11:36:36.26 ID:???.net<> ブルリクの数だけでそんなこと言えるなら、8.0と8.43は別物!て言えちゃうんだけど大丈夫か? <>
nobodyさん<>sage<>2021/05/27(木) 14:02:31.10 ID:???.net<> >>24
お前が大丈夫か? <>
nobodyさん<>sage<>2021/05/27(木) 14:40:08.59 ID:???.net<> >>25
オウム返しじゃなくて、具体的な反論を頼む。 <>
nobodyさん<>sage<>2021/05/27(木) 15:19:53.77 ID:???.net<> まーたcomposerがエラー吐きまくって開発進まなくなった
composerの時代になってからこれが起きまくって困る、なんでこんなクソシステムが支持されてるの?
今vendor消してやり直したら復活したけど時間かかってしゃーないわ全く <>
nobodyさん<>sage<>2021/05/27(木) 15:48:53.05 ID:???.net<> >>27
そんなのなったこと無いがどうやればそうなるの? <>
nobodyさん<>sage<>2021/05/27(木) 15:49:11.92 ID:???.net<> まーたphpがエラー吐きまくって開発進まなくなった
phpの時代になってからこれが起きまくって困る、なんでこんなクソ言語が支持されてるの?
よく分からんから全部消して最初から書き直したら解決したけど時間かかってしゃーないわ全く <>
nobodyさん<>sage<>2021/05/27(木) 15:49:48.04 ID:???.net<> >>29
おまえだけやろそんなのw <>
nobodyさん<>sage<>2021/05/27(木) 16:00:09.22 ID:???.net<> >>28
マジかよ
Windows10上のDocker環境で普通に開発してるだけなんだがよくなるぞ
ならない環境教えて欲しい <>
nobodyさん<>sage<>2021/05/27(木) 16:03:52.76 ID:???.net<> >>31
エラーの具体的なメッセージ書かないと分からんやろ。 <>
nobodyさん<>sage<>2021/05/27(木) 16:12:26.10 ID:???.net<> いつも先行販売している本屋さんがあるので明日売ってたら買ってくるね <>
nobodyさん<>sage<>2021/05/27(木) 16:12:39.78 ID:???.net<> >>20宛 <>
nobodyさん<>sage<>2021/05/27(木) 16:13:13.47 ID:???.net<> ただのドキュメントに書いてあることをコピペしてるだけみたいな本だったら買うの辞めるけど <>
nobodyさん<>sage<>2021/05/27(木) 16:13:57.49 ID:???.net<> >>32
ここに詳しく書いても誰かが解決してくれるわけじゃないから書かなかったけど、抜粋するとこんな感じ
composer clear-cache
composer update --no-plugins
とか色々試したが駄目だった
- Upgrading symfony/var-dumper (v5.2.3 => v5.2.8): Update failed (Could not delete /var/www/html/vendor/symfony/var-dumper/Caster: )
- Upgrading nesbot/carbon (2.44.0 => 2.48.1): Update failed (Could not delete /var/www/html/vendor/nesbot/carbon/src/Carbon: )
0/5 [>---------------------------] 0% Install of psy/psysh failed
1/5 [=====>----------------------] 20% Update of league/commonmark failed
2/5 [===========>----------------] 40% Update of nikic/php-parser failed
3/5 [================>-----------] 60% Install of phpunit/phpunit failed
4/5 [======================>-----] 80% Update of nesbot/carbon failed
5/5 [============================] 100%
[ErrorException]
file_put_contents(/var/www/html/vendor/bin/var-dump-server): failed to open stream: File exists <>
nobodyさん<>sage<>2021/05/27(木) 16:17:44.20 ID:???.net<> var-dump-serverが既にあるぞって言ってるじゃん <>
nobodyさん<>sage<>2021/05/27(木) 16:17:44.59 ID:???.net<> >>33
ありがとうございます!
初心者向けかそれ以外かだけでもレビューください <>
nobodyさん<>sage<>2021/05/27(木) 16:18:37.26 ID:???.net<> >>36
既にファイルあるぞって警告出てるだろ
var-dump-server消せよ <>
nobodyさん<>sage<>2021/05/27(木) 16:19:05.69 ID:???.net<> >>35
昔よくあった「PHPで掲示板を作る本」的な、
Webアプリ作りながら進めるような内容かも教えて下さい。
公式のドキュメントは機能紹介が中心で、とっつきにくかったので。 <>
nobodyさん<>sage<>2021/05/27(木) 16:19:45.97 ID:???.net<> >>31
何が起きてるか、どんなエラーなのか書かないとそもそも対策すら立てられない気がするが
こちらはhomesteadで開発してるけど問題起きたことは無いなぁ <>
nobodyさん<>sage<>2021/05/27(木) 16:32:46.57 ID:???.net<> >>40
たぶんそういう本じゃないと思う
詳しくは目次
https://honto.jp/netstore/pd-contents_0630901278.html <>
nobodyさん<>sage<>2021/05/27(木) 16:35:26.53 ID:???.net<> >>42
ほんとですね・・・
Laravelのドキュメントも見てるんですが、よくわからないんですよねぇ
最初からDockerがどうのって時点で詰みます。
Composerはわかるものの、専門用語が多くてパニックになってます。
だから、もう少し初心者向けなら良かったんですが
目次を見る限り、ドキュメントと変わらないっぽいですね <>
nobodyさん<>sage<>2021/05/27(木) 16:36:42.34 ID:???.net<> >>36
まんま>>29と一緒だろ
エラーメッセージくらい読めば大抵のこと解決するのに <>
nobodyさん<>sage<>2021/05/27(木) 16:46:12.71 ID:???.net<> >>44
じゃあエラーださなければいいのでは
なんでこんなスレまで来て粘着してるのか <>
nobodyさん<>sage<>2021/05/27(木) 17:34:17.32 ID:???.net<> コテハンどころかIDすら出てない匿名なのに粘着とは <>
nobodyさん<>sage<>2021/05/27(木) 17:48:25.10 ID:???.net<> そもそもcomposerがエラー吐きまくるとか言うけど
初回以外に構成が変わったりしない限りそう叩くものじゃなくね?
composer dump-autoload
は叩くことがあるかもしれないが <>
nobodyさん<>sage<>2021/05/27(木) 17:52:30.07 ID:???.net<> 何かを追加する時に叩くだろ
laravel/uiとか
1つの開発に数回ぐらい感覚的にある <>
nobodyさん<>sage<>2021/05/27(木) 17:54:04.50 ID:???.net<> >>37
>>39
そりゃそうなんだけどなんでそんなことになるんだよ
エラー出たら都度手動で削除しながら使うツールがあるかいや <>
nobodyさん<>sage<>2021/05/27(木) 18:06:23.20 ID:???.net<> Laravel勉強したとして会社の仕事でLaravel使うの?
それともただの趣味? <>
nobodyさん<>sage<>2021/05/27(木) 18:27:57.04 ID:???.net<> 大抵は会社で使うから覚える感じじゃないのかなぁ?
趣味とかwebの学習でと言う人はPHPにあんまり行ってない気がする
仕事はPHPが一番ありそうだけど素人はPythonとかに何故か行くよね <>
nobodyさん<>sage<>2021/05/27(木) 18:57:26.68 ID:???.net<> 会社の仕事で使うよ <>
nobodyさん<>sage<>2021/05/27(木) 19:38:43.27 ID:???.net<> どうせたいしたものは作らないんだろ <>
nobodyさん<>sage<>2021/05/27(木) 20:10:33.08 ID:???.net<> そのディスり必要? <>
nobodyさん<>sage<>2021/05/27(木) 22:46:35.14 ID:???.net<> >>51
求人数と年収ともにjavaに負けるが <>
nobodyさん<>sage<>2021/05/27(木) 23:07:27.00 ID:???.net<> >>55
求人数と年収がjavaに負けているということは
javaに負けているという可能性があるな <>
nobodyさん<>sage<>2021/05/27(木) 23:22:30.74 ID:???.net<> セクシー大臣かな? <>
nobodyさん<>sage<>2021/05/28(金) 15:15:59.80 ID:???.net<> >>49
でもそれがPHPの世界のスタンダードだよ
それが受け入れられないんだったら暗黒の世界へお帰り <>
nobodyさん<>sage<>2021/05/28(金) 15:37:41.59 ID:???.net<> 急に魔女が出てきて草 <>
nobodyさん<>sage<>2021/05/28(金) 17:24:24.80 ID:???.net<> 来月発売の本、shin1x1が絡んでるやないか
立ち読みしてから買うの決めるか
カスタマイズ系の本が少なすぎるので出版してもらいたい <>
nobodyさん<>sage<>2021/05/28(金) 19:46:30.10 ID:???.net<> 目次見る限り5.5との差分が無さそうなんだよな。サンプルコードだけ変わってもなぁて。せめて8で公式にサポートされたvalue objectなんかにも触れてくれるなら良かったんだが。 <>
nobodyさん<>sage<>2021/05/29(土) 03:53:48.39 ID:???.net<> よくよく考えたら俺Laravel使ってなかった <>
nobodyさん<>sage<>2021/05/29(土) 13:03:11.38 ID:???.net<> >>2
いつも先行発売してくれるジュンク堂になかったからamazonで購入
明日届く
明日なら店頭にも並んでそうだな <>
nobodyさん<>sage<>2021/05/29(土) 13:03:51.85 ID:???.net<> 明日本読んでレビュー書くわ <>
nobodyさん<>sage<>2021/05/29(土) 13:23:52.43 ID:???.net<> >>63-64
お願いします!せめて初心者向けかだけでも教えて下さい <>
nobodyさん<>sage<>2021/05/29(土) 14:51:28.74 ID:???.net<> >>65
初心者向けだよ <>
nobodyさん<>sage<>2021/05/29(土) 15:15:44.68 ID:???.net<> むしろ初心者向けじゃない本なんてあるのか
初心者しか読まないのに <>
nobodyさん<>sage<>2021/05/29(土) 16:21:36.68 ID:???.net<> せめて目次見てから言えよ。CQRSとかADRを必要とする初心者って意味わからんわ。 <>
nobodyさん<>sage<>2021/05/29(土) 16:35:51.59 ID:???.net<> 500ページってボリュームを全部よむよりは
必要なページだけ読みたいね <>
nobodyさん<>sage<>2021/05/29(土) 16:56:13.73 ID:???.net<> 目次読む限り初心者向けとは思いませんでした <>
nobodyさん<>sage<>2021/05/29(土) 17:03:48.94 ID:???.net<> 今認証中のユーザーがどこのモデルに属しているか確認する方法ありませんか? <>
nobodyさん<>sage<>2021/05/29(土) 17:45:32.21 ID:???.net<> >>71
どういう意味だ? <>
nobodyさん<>sage<>2021/05/29(土) 17:47:26.80 ID:???.net<> 自己解決
user()の中に情報入ってました <>
nobodyさん<>sage<>2021/05/29(土) 18:08:39.67 ID:???.net<> >>71
user関数とかで情報取得できない? <>
nobodyさん<>sage<>2021/05/29(土) 18:08:55.77 ID:???.net<> ごめん解決したの見ていませんでした <>
nobodyさん<>sage<>2021/05/30(日) 22:23:54.16 ID:???.net<> 明日発売の本買いました
Laravel初心者さんはぜひ買っても問題ないです。
ただ、PHP初心者さんには難しいかもしれないです <>
nobodyさん<>sage<>2021/05/31(月) 11:07:29.81 ID:???.net<> >>76
本の手順で進めればひと通り理解できる内容ですか?
あと本が分厚くて読みにくい(学習しにくい)とかありますか? <>
nobodyさん<>sage<>2021/05/31(月) 11:12:44.84 ID:???.net<> >>77
ページ数が多いので全部読んでいませんが
辞書として必要なところを調べる形で使っています
それでも問題ない認識です <>
nobodyさん<>sage<>2021/05/31(月) 13:19:38.80 ID:???.net<> >>78
なるほど。順番に進めて覚えるような感じではないんですね <>
nobodyさん<>sage<>2021/05/31(月) 15:43:23.17 ID:???.net<> >>76
Windows環境でも解説ある? <>
nobodyさん<>sage<>2021/05/31(月) 16:14:10.00 ID:???.net<> >>80
Windows XPのことですか? <>
nobodyさん<>sage<>2021/05/31(月) 16:21:02.34 ID:???.net<> Laravelの.envってたまに変更しても反映されないことない?
キャッシュかとおもってキャッシュクリアコマンド実行しても反映されず
OSの再起動を実施すると反映されることがごくたまにある <>
nobodyさん<>sage<>2021/05/31(月) 16:33:53.50 ID:???.net<> https://readouble.com/laravel/8.x/ja/configuration.html
Note: 開発過程の一環としてconfig:cacheコマンド実行を採用する場合は、必ずenv関数を設定ファイルの中だけで使用してください。設定ファイルがキャッシュされると、.envファイルはロードされません。したがって、env関数は外部システムレベルの環境変数のみを返すだけです。 <>
nobodyさん<>sage<>2021/05/31(月) 16:36:56.62 ID:???.net<> >>81
いいえ、普通にwindows10ですが?
どうしてそんな古いOS使ってると思ったんですか?
laravelスレの人はこんな捻くれた回答しかできないんですか? <>
nobodyさん<>sage<>2021/05/31(月) 16:57:47.55 ID:???.net<> このスレ、前から約1名面白いことを言おうとして滑りまくってるやつが居るんだけど、>>81はそいつだと思う。
一応皆スルーしてるみたいなので、お前もスルーしとけ。下手に触ると喜ばせるだけ。 <>
nobodyさん<>sage<>2021/05/31(月) 17:25:10.91 ID:???.net<> ためし読みしろよ <>
nobodyさん<>sage<>2021/05/31(月) 17:31:37.93 ID:???.net<> >>86
滑ってるぞ <>
nobodyさん<>sage<>2021/05/31(月) 17:38:39.82 ID:???.net<> Laravelが遅いという話をよく聞くのですが本当でしょうか?
他のフレームワークと比較したときに人間が感知できるレベルで
処理などが遅くなるのでしょうか? <>
nobodyさん<>sage<>2021/05/31(月) 18:06:47.42 ID:???.net<> >>88
遅いと言えば遅い。Railsとどっこいどっこいって感じ。ただしそれはOPcaheを使ってない場合。OPcache使えば、おおよそ5-10倍のリクエストを捌けるようになり、十分な速さになる。 <>
nobodyさん<>sage<>2021/05/31(月) 20:42:44.91 ID:???.net<> >>82
.envの使い方間違ってるだろ <>
nobodyさん<>sage<>2021/05/31(月) 22:11:02.49 ID:???.net<> >>89
CakePHPと比べるとどうですか? <>
nobodyさん<>sage<>2021/05/31(月) 23:00:42.73 ID:???.net<> >>84
ちゃんと自分の環境を書かないからそうなる <>
nobodyさん<>sage<>2021/06/01(火) 19:59:24.93 ID:???.net<> 今から5系の参考書買って意味ありますか?
5系だとお安いので迷ってます。 <>
nobodyさん<>sage<>2021/06/01(火) 20:04:21.98 ID:???.net<> 5系あたりだと認証系の情報が古いよ <>
nobodyさん<>sage<>2021/06/01(火) 20:32:07.38 ID:???.net<> ありがとうございます。
サポートが長いバージョンとのことで大丈夫かと思ったのですが
もうサポート切れてたようです…
大人しく8系で安く出るの待ちます! <>
nobodyさん<>sage<>2021/06/01(火) 20:41:47.04 ID:???.net<> >>91
分からん。けどcakeのほうが早い可能性が高い。ただしOPcacheを使っているならば、ビジネス上懸念されるような差は無いと予想。 <>
nobodyさん<>sage<>2021/06/01(火) 21:19:09.39 ID:???.net<> >>96
なるほど・・・。
cakeは2までの知識しかないのですが、2でも遅いって話があるのに
それよりも遅いってのもなかなか辛いですね。
今はページ表示速度もSEOの指針になるので <>
nobodyさん<>sage<>2021/06/01(火) 22:53:37.49 ID:???.net<> >>95
金ないならアルバイト1日頑張ればええやん
タイムイズマネーだよ
そんなの待ってたらずっと取り残されたままで永遠にものにならないよ <>
nobodyさん<>sage<>2021/06/01(火) 23:01:44.38 ID:???.net<> >>95
正直公式読んで分からないやつは趣味なら大丈夫だけど仕事ではキツいぞ
本なんて買う必要ないよ <>
nobodyさん<>sage<>2021/06/01(火) 23:54:12.95 ID:???.net<> 公式は専門用語多くて分かりづらいっす・・・ <>
nobodyさん<>sage<>2021/06/02(水) 00:11:29.30 ID:???.net<> 公式読み解けない一にとっては本はありだと思うよ
職人のフレームワークだから公式は初心者には寄り添ってないしね
公式読み解けるレベルまで行けばそれ以降は本は不要 <>
nobodyさん<>sage<>2021/06/02(水) 00:42:33.19 ID:???.net<> 公式のどこを読めって話?まさか全部じゃないよね <>
nobodyさん<>sage<>2021/06/02(水) 01:04:11.81 ID:???.net<> インストールガイドを読んでそこから必要に応じて派生ページを読む <>
nobodyさん<>sage<>2021/06/02(水) 07:35:52.57 ID:???.net<> >>97
ビジネス上懸念されるようなことは無いって書いたのにスルーしないでくれ。cakeにしても遅い遅い言ってる奴は、どうせOPcache使ってないだろ? <>
nobodyさん<>sage<>2021/06/02(水) 08:15:26.02 ID:???.net<> 付け加えておくと、フレームワークのレベルで遅いかどうかって話はSEOとほぼ関係ない。あくまで時間当たりの処理可能件数に差が出るだけ。サーバーのリソースを食うから。
SEOに関してはDBのI/Oやフロントエンドで使用するアセットのサイズ、ブロッキングの有無の方が1万倍重要。 <>
nobodyさん<>sage<>2021/06/02(水) 11:14:24.51 ID:???.net<> 本を読まなくても学習することはできるけど
本を読まないやつは無能 <>
nobodyさん<>sage<>2021/06/02(水) 12:30:11.36 ID:???.net<> >>106
他人を無能扱いするなよ無能 <>
nobodyさん<>sage<>2021/06/02(水) 13:58:02.08 ID:???.net<> >>102
必要なところだけ読めばいいのでは?
それで分かりにくいとかならググれば大抵はヒントがあるやろ <>
nobodyさん<>sage<>2021/06/02(水) 15:43:00.67 ID:???.net<> 特定の言語やフレームワークの習得に限って言えば、本なんかに頼る必要性はほぼ無い。マニュアルとコード読んで理解するのがベスト。本に書いてあることなんてごく一部でしかない。
第一、じゃあその本書いた人たちはどうやって習得したんだろう?て話。無能な奴らが書いた本をありがたがってるってことになるわけだが。 <>
nobodyさん<>sage<>2021/06/02(水) 16:03:16.06 ID:???.net<> >>109
多分106はいつもの荒らしだから相手にしないほうが良い <>
nobodyさん<>sage<>2021/06/02(水) 18:17:47.79 ID:???.net<> >>108
必要なところだけ、しかもググった結果を集めてくれてる
それが書籍じゃないのかな
だとしたら有料であるという以外は書籍有利では? <>
nobodyさん<>sage<>2021/06/02(水) 18:34:23.89 ID:???.net<> 本単体では情報がアップデートされない <>
nobodyさん<>sage<>2021/06/02(水) 18:40:58.97 ID:???.net<> ちょうど本をされているので相談です。
・動かして学ぶ! Laravel開発入門
・PHPフレームワーク Laravel Webアプリケーション開発 バージョン8.x対応
を立ち読みしてきました。
どちらも初心者向けだと感じましたが、前者の方が読みやすかったです。
ただ、前者のはバージョン6対応とのことですが、
8とか9を勉強するなら問題ありますでしょうか? <>
nobodyさん<>sage<>2021/06/02(水) 18:42:55.69 ID:???.net<> >>113
後者は初心者にとって半分以上ゴミになる可能性があるから、1冊目にしとけ。 <>
nobodyさん<>sage<>2021/06/02(水) 18:52:30.96 ID:???.net<> なんかやたら書籍を持ち上げたがる人いるね
どちらが優れてるかなんて状況次第だし、本でもネットでも好きなので覚えればいいのに <>
nobodyさん<>sage<>2021/06/02(水) 18:54:26.29 ID:???.net<> >>115
すまん、前レス見てなかったが「どちらが優れてるいるか」のくだりは書籍かネットかの話ね
113のどちらの書籍が良いかという話は俺には分からん <>
nobodyさん<>sage<>2021/06/02(水) 19:39:24.28 ID:???.net<> 誰もお前にゃ聞いてないて…
ここの主かなんかなん? <>
nobodyさん<>sage<>2021/06/02(水) 19:41:57.02 ID:???.net<> そもそもネットで検索した程度なんて部分的なものしか集められない <>
nobodyさん<>sage<>2021/06/02(水) 19:52:38.70 ID:???.net<> 出版のタイミングにおいて整合性の取れてる整理された情報が手に入る、っていうのが今の書籍のメリット。
きちんとググり方がわかっていて予備知識があるなら必要ないよ。 <>
nobodyさん<>sage<>2021/06/02(水) 20:07:53.71 ID:???.net<> 整合性で言うなら普通に公式のマニュアル読めばよくね? <>
nobodyさん<>sage<>2021/06/02(水) 20:15:58.75 ID:???.net<> 普通の感覚だと書籍かマニュアル好きなほうで学べばいいと思うけど、書籍を絶対視するのはよくわからんな。 <>
nobodyさん<>sage<>2021/06/02(水) 20:32:53.02 ID:???.net<> 電子書籍ならまだ分かるけど物理的な本はもう正直いらないな
過去の技術書殆捨てちゃたよ <>
nobodyさん<>sage<>2021/06/02(水) 20:44:34.01 ID:???.net<> >>114
作者乙 <>
nobodyさん<>sage<>2021/06/02(水) 21:13:48.84 ID:???.net<> >>120
そうだぞ。本はマニュアル読み解けないレベルの初心者向けって感じの位置付けで良いと思う。 <>
nobodyさん<>sage<>2021/06/02(水) 21:38:52.93 ID:???.net<> 8いじってるけどLivewire使いにくいな、何か根本的な所が今まで慣れたMVCと違う気がする
これ基礎から学ぶのに何かええ教材ないかな <>
nobodyさん<>sage<>2021/06/02(水) 21:45:27.23 ID:???.net<> >>125
無理に使うことないんじゃね? <>
nobodyさん<>sage<>2021/06/02(水) 21:51:50.82 ID:???.net<> >>126
使うと最初から色々できてて楽なんだよ
これをベースにしたい <>
nobodyさん<>sage<>2021/06/02(水) 22:43:11.94 ID:???.net<> そもそもLivewireは、MVVMだぞ。その意識だけあればOK。それよか、親子関係のコンポーネント作る時に色々面倒すぎて憤死した。 <>
nobodyさん<>sage<>2021/06/03(木) 17:11:45.07 ID:???.net<> MVVMってなんだ? <>
nobodyさん<>sage<>2021/06/03(木) 17:19:38.63 ID:???.net<> なんで自分で調べないの? <>
nobodyさん<>sage<>2021/06/03(木) 17:50:25.27 ID:???.net<> >>130
なんでそんな言い方するの? <>
nobodyさん<>sage<>2021/06/03(木) 19:05:03.83 ID:???.net<> Livewireは流石に使う気になれないな
これどっちにしても流行らないでしょ? <>
nobodyさん<>sage<>2021/06/03(木) 19:32:16.91 ID:???.net<> >>131
ググればすぐに出てくるやん… <>
nobodyさん<>sage<>2021/06/03(木) 22:19:37.24 ID:???.net<> でもlivewire入れたら初期状態で認証とチーム管理入っていて便利やん <>
nobodyさん<>sage<>2021/06/03(木) 23:15:19.24 ID:???.net<> livewire入れると初期状態で認証とチーム管理がインストールされるということは
初期状態で認証とチーム管理が扱えるということですか? <>
nobodyさん<>sage<>2021/06/04(金) 00:41:54.56 ID:???.net<> いやlivewireで初期状態で使えるのは認証とチーム管理だけだよ <>
nobodyさん<>sage<>2021/06/04(金) 07:45:22.82 ID:???.net<> >>129
model-view-viewmodel というアーキテクチャのこと。フロントとバックエンドは、controllerを介さずview modelという層を挟んでmodelと状態やデータを同期させる仕組み。 <>
nobodyさん<>sage<>2021/06/04(金) 09:20:47.93 ID:???.net<> viewmodelってなんだ? <>
nobodyさん<>sage<>2021/06/04(金) 09:57:52.29 ID:???.net<> livewireと言えばモトリークルーだよな <>
nobodyさん<>sage<>2021/06/04(金) 11:09:03.06 ID:???.net<> livewireの読み方教えて下さい <>
nobodyさん<>sage<>2021/06/04(金) 11:37:17.81 ID:???.net<> MVVMってJavaScriptオフにされてたら動かないよね <>
nobodyさん<>sage<>2021/06/04(金) 12:15:18.12 ID:???.net<> 今時javascript切ってるやつなんか無視してよい <>
nobodyさん<>sage<>2021/06/04(金) 13:05:19.33 ID:???.net<> 信頼してるサイトでしかONにしない俺は少数派? <>
nobodyさん<>sage<>2021/06/04(金) 13:09:28.40 ID:???.net<> >>143
絶滅危惧種だろ
JavaScriptが怖いのは基本的にはXSSで、それは「信頼したいサイト」ほど仕込まれたときの影響が大きい
無駄に利便性を削ってると思うぞ <>
nobodyさん<>sage<>2021/06/04(金) 14:39:02.61 ID:???.net<> そろそろLaravel始めようか悩み中 <>
nobodyさん<>sage<>2021/06/04(金) 15:18:58.31 ID:???.net<> 6のLSTか8かで迷うよな <>
nobodyさん<>sage<>2021/06/04(金) 15:28:48.52 ID:???.net<> 今からなら8一択でしょ
9になればどうせすぐにアップデートするんだから <>
nobodyさん<>sage<>2021/06/04(金) 15:46:05.44 ID:???.net<> これ以上何をどうアップデートする機能があるのか? <>
nobodyさん<>sage<>2021/06/04(金) 16:51:55.37 ID:???.net<> >>148
機能だけなら今で十分だよなぁ
コレクションがもう少し処理速度が改善すればとは思うけど <>
nobodyさん<>sage<>2021/06/04(金) 16:58:56.68 ID:???.net<> ソーシャルログインみたいなライブラリ使いたい時も8でいいの? <>
nobodyさん<>sage<>2021/06/04(金) 20:03:44.75 ID:???.net<> 次のLaravel9では大型アップデートとかあるの? <>
nobodyさん<>sage<>2021/06/04(金) 20:35:39.82 ID:???.net<> 9はLTSだし大きな変更は入れてこないだろ <>
nobodyさん<>sage<>2021/06/04(金) 23:03:43.27 ID:???.net<> >>150
ソーシャルログインはsocialite使うって話なら、8にも対応してるから大丈夫。 <>
nobodyさん<>sage<>2021/06/05(土) 00:10:16.08 ID:???.net<> >>153
対応してる・してないってどう見極めたら良いの?
ググって使いたいライブラリやプラグイン探して、
あればそのバージョンを勉強していく感じ? <>
nobodyさん<>sage<>2021/06/05(土) 01:41:17.35 ID:???.net<> 見極めるも何もリポジトリ見れば依存関係書いてあるし <>
nobodyさん<>sage<>2021/06/05(土) 11:30:32.47 ID:???.net<> 見極めるは草 <>
nobodyさん<>sage<>2021/06/05(土) 12:56:38.90 ID:???.net<> >>154
いや、composer.json見りゃわかるよ。 <>
nobodyさん<>sage<>2021/06/05(土) 13:56:51.70 ID:???.net<> マニュアルやreadmeに親切に書いてあるだろ <>
nobodyさん<>sage<>2021/06/05(土) 14:11:10.57 ID:???.net<> >>158
composer.json見りゃわかるんだけど <>
nobodyさん<>sage<>2021/06/05(土) 15:27:37.24 ID:???.net<> >>159
サポートと依存が違うことが分からないのか
サポートしているから必ずしも依存しているとは限らない
自分で確認してこい
https://packagist.org/explore/?query=laravel <>
nobodyさん<>sage<>2021/06/05(土) 16:58:08.83 ID:???.net<> >>159
書いてないな <>
nobodyさん<>sage<>2021/06/05(土) 17:31:04.46 ID:???.net<> サポートも依存もcomposer.json見るのが普通
>>160のは誤っているので参考にしないようにしましょう <>
nobodyさん<>sage<>2021/06/05(土) 17:42:52.42 ID:???.net<> みんなどんなプロジェクトもLaravel使ってるの?
DB保存のお問合せフォームみたいなの作るんだけど、
過去に作ったオレオレ使うか、Laravel使うかで悩んでる
テーブル1つ2つで済むような規模でFW使うのもなぁ <>
nobodyさん<>sage<>2021/06/05(土) 17:59:11.60 ID:???.net<> 昔は小規模ならオレオレ派だったけど、誰かに引き継ぐ時にオレオレだと説明面倒だし、恥ずかしいし等あって、もう全てにおいてLaravel使ってる <>
nobodyさん<>sage<>2021/06/05(土) 17:59:26.74 ID:???.net<> 過去に作ったオレオレw
字面だけでメチャクチャヤバそう <>
nobodyさん<>sage<>2021/06/05(土) 18:01:35.06 ID:???.net<> >過去に作ったオレオレ
そんなゴミさっさと捨てて、前に進む勇気を持った方が幸せになれる <>
nobodyさん<>sage<>2021/06/05(土) 18:54:21.27 ID:???.net<> >>164
>>163みたいなお問い合せフォーム程度でも使ってるの?
納品する時ファイル数多くなって余計に面倒な気もするが <>
nobodyさん<>sage<>2021/06/05(土) 19:07:58.86 ID:???.net<> 最近インクリメント君こないな
彼はbigintを枯渇させたらしいけど一体何のシステムを作っているのだろうか <>
164<>sage<>2021/06/05(土) 19:11:53.71 ID:???.net<> >>167
そのサイトがこの先ずっとお問い合わせだけで終わる保障はないし、納品後誰が触るかわからないじゃん?
だから規模に関わらずLaravel使ってるよ
あくまで私はそうしてると言うだけで、万人に対するベストアンサーかは知らん <>
nobodyさん<>sage<>2021/06/05(土) 19:30:36.07 ID:???.net<> ちょっとしたものならオレオレに使いたい一部のライブラリ(twigとかcarbon等)をcomposerで導入で良いかも <>
nobodyさん<>sage<>2021/06/05(土) 19:48:52.12 ID:???.net<> >>160
サポートと依存が異なるっていうか、特に下位互換性については、main(master)のcomposer.json見ても分からんから、ReadMe読めってことかな?
バージョン落とせば古いLaravelにも対応できるパッケージがある一方、最新の8しかサポートしてないやつもあるよね。 <>
nobodyさん<>sage<>2021/06/05(土) 20:20:26.95 ID:???.net<> >>163
Googleフォームで十分すぎる <>
nobodyさん<>sage<>2021/06/05(土) 21:10:09.87 ID:???.net<> 問い合わせフォームは自動返信付きにすると一気に難易度上がるからなあ
Laravel使っといた方が制御が楽でしょ <>
nobodyさん<>sage<>2021/06/05(土) 21:19:42.25 ID:???.net<> 自動返信とかGAS書いて終わりだぞ。1時間もあれば大抵のユースケースに対応できる。唯一残念なのはデザインのカスタマイズがイマイチなことぐらい。一方のLaravelだとインフラ周りも用意しないとダメだし、割りに合わなさすぎる。 <>
nobodyさん<>sage<>2021/06/05(土) 21:42:22.60 ID:???.net<> GASってなんですか? <>
nobodyさん<>sage<>2021/06/05(土) 22:30:41.25 ID:???.net<> なんで自分で調べないの? <>
nobodyさん<>sage<>2021/06/05(土) 22:41:33.72 ID:???.net<> >>168
bigintを枯渇させた!?
それって全世界規模のシステム作ってないと枯渇しないのでは・・・
にわかに信じがたいな <>
nobodyさん<>sage<>2021/06/05(土) 23:01:47.41 ID:???.net<> >>176
ここアホしかいないから… <>
nobodyさん<>sage<>2021/06/06(日) 06:18:17.11 ID:???.net<> >>177
それは>>168の捏造。
実際はINT型で数年で破綻する設計があるので、
オーバーフローする型を主キーにする設計はおかしいという話だった。
>>168は以前から虚言癖あるからあんまりマトモに相手しない方が良い。馬鹿だから。 <>
nobodyさん<>sage<>2021/06/06(日) 11:02:22.06 ID:???.net<> laravelの場合id()をincrement()に変更しなければbigintになるかずだけど
increment()をおすすめする記事があるんだよな <>
nobodyさん<>sage<>2021/06/06(日) 12:01:48.87 ID:???.net<> >>169
どんな案件でも得意のFW使うって、考え方として正しいのかもね
たとえCakeみたいに古くなっても、更新できるしな <>
nobodyさん<>sage<>2021/06/06(日) 12:52:39.56 ID:???.net<> 自前のWebサービス作る時に、Livewire使うか従来のMVCで行くかすげえ悩む
要はフォームをPOSTで更新するかAJAXで更新するかの違いなんだけどどっちが使い勝手いいんだろうか?
個人的には本当にどっちでもいいしだったらユーザーが使いやすい方が良いんだけどそれもわからん <>
nobodyさん<>sage<>2021/06/06(日) 14:11:48.19 ID:???.net<> >>182
POSTかajaxかの違いは、MVCかどうかには関係ないだろ。 <>
nobodyさん<><>2021/06/06(日) 14:48:06.01 ID:hLhI30lV.net<> コントローラーの記述は少ないほうがいいってどこかの誰かが言ってた気がするんですけど、数ページある場合はページごとにコントローラー作ったほうがいいんですか?
例えば、トップ、料金システム、サービス内容、ブログ、お知らせ、問い合わせのページがあるような場合です。 <>
nobodyさん<>sage<>2021/06/06(日) 14:48:43.08 ID:???.net<> >>183
俺が迷ってるのはLivewire(MVVM)使うかMVC使うかって所な
後者でもAJAXできるが前者はAJAXオンリーになる <>
nobodyさん<>sage<>2021/06/06(日) 15:19:44.52 ID:???.net<> >>184
それならコンテンツ(モデル)毎にコントローラー作るべきだよ
なにせ用途が違うんだから <>
nobodyさん<>sage<>2021/06/06(日) 15:43:26.07 ID:???.net<> livewire使うくらいならreactかvueで作るわ <>
nobodyさん<>sage<>2021/06/06(日) 16:23:08.78 ID:???.net<> jQueryはだめですか <>
nobodyさん<>sage<>2021/06/06(日) 16:27:30.10 ID:???.net<> >>179
オーバーフローってことは枯渇についての話でしょ?
いまいち>>168の内容が捏造ってのがよくわからないんだけど <>
nobodyさん<>sage<>2021/06/06(日) 21:26:02.84 ID:???.net<> なんで過去に出たLaravel本は改定して最新バージョンに対応しないんだろうな <>
nobodyさん<>sage<>2021/06/06(日) 22:15:29.93 ID:???.net<> 売れないからだろうな <>
nobodyさん<>sage<>2021/06/06(日) 22:22:22.57 ID:???.net<> ぐぐればいい時代に本なんて買わんしな <>
nobodyさん<>sage<>2021/06/06(日) 22:33:42.63 ID:???.net<> ググっても書いてる人が文章能力ないと、わかりづらいんだよな <>
nobodyさん<>sage<>2021/06/07(月) 00:07:46.12 ID:???.net<> 公式マニュアルとその日本語翻訳サイトが優秀だから <>
nobodyさん<>sage<>2021/06/07(月) 01:53:23.81 ID:???.net<> とりあえず秋のLTS待ちでしょ
毎年出すほどは売れないから <>
nobodyさん<>sage<>2021/06/07(月) 02:43:15.71 ID:???.net<> 結局本を書く側もあんまり売れなきゃ金銭的に儲けはあんまりないし
フレームワーク限定の本なんて今の時代より売れない気がする
もうちょっとPHPのシェアが上がらないとなぁ <>
nobodyさん<>sage<>2021/06/07(月) 08:04:04.89 ID:???.net<> 周りに本出すエンジニア何人か居るけど、口を揃えて、「割りに合わない」と言ってるぞ。箔付にはなるってぐらいだ。だから儲かる儲からないは、出版の判断材料にはならない。 <>
nobodyさん<>sage<>2021/06/07(月) 08:34:22.03 ID:???.net<> 本買うにしても日本のこのIT後進国っぷりを見ると日本語の本は買わない方がいい <>
nobodyさん<>sage<>2021/06/07(月) 09:05:35.62 ID:???.net<> >>198
釣り針デカすぎ。荒らしは消えてどうぞ。 <>
nobodyさん<>sage<>2021/06/07(月) 10:51:34.42 ID:???.net<> >>179
bigintであれば数年で枯渇するようなレベルではなくないか?
普通にbigintのインクリメント使ってもいいとおもうけど <>
nobodyさん<>sage<>2021/06/07(月) 11:41:21.88 ID:???.net<> 元々、オートインクリメントだとオーバーフローするじゃん!みたいなこと言ってて、周りから「bigint使えば良いじゃん。もしかして知らない??」て突っ込まれて、すげー長々と言い訳してたからなぁ。
920京だとunsignedだからPHPでは読めない!とか馬鹿みたいなこと言ってたし(920京はsigned)。
laravelだとパージョン6から、標準のusersテーブルだとidにbiggntを使うようになっている。 <>
nobodyさん<>sage<>2021/06/07(月) 11:51:47.58 ID:???.net<> マイグレーションファイルのidのデフォルトはid()
何故increments()ではないのかの議論がissueかフォーラムか忘れたけどどこかにあったね <>
nobodyさん<>sage<>2021/06/07(月) 12:40:24.94 ID:???.net<> >>202
5.7まではincrements()、6.×でbigIncrements()、7.×でid()だな。その議論は7じゃなくて6の時じゃね? <>
nobodyさん<>sage<>2021/06/07(月) 12:51:31.46 ID:???.net<> >>199
なんで正論言ったら荒らしになるんだよ
何が気に障ったんだ <>
nobodyさん<>sage<>2021/06/07(月) 12:57:17.61 ID:???.net<> ∩___∩ |
| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | J
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ / <>
nobodyさん<>sage<>2021/06/07(月) 13:15:44.97 ID:???.net<> >>204
しつこい <>
nobodyさん<>sage<>2021/06/07(月) 13:18:17.45 ID:???.net<> >>206
釣られちゃったね キミの負け^^ <>
nobodyさん<>sage<>2021/06/07(月) 13:40:43.54 ID:???.net<> >>207
黙れお前のせいで発狂しそうだ <>
nobodyさん<>sage<>2021/06/07(月) 14:39:30.58 ID:???.net<> >>200-201
INT でオーバーフローが懸念されたので BIGINT型に変更したのは Twitter くらいしか話を聞いた事は無いけど、
俺が言ってるのは、オートインクリメントでプライマリキー作るような奴はそもそもデータ型に対する理解なんか一切無い場合が殆どだから、
INT型の範囲がどの位あって、何年で溢れそうか?
みたいな計算一切せずに、何となくINT型にする馬鹿だらけだろう、って話。
で、問題が発生してなにが起こったのかすら分からず、連日徹夜で闇雲に調査してやっと気付いた時には大問題、みたいな、恒例のパターンになるだろ?って事。 <>
nobodyさん<>sage<>2021/06/07(月) 15:04:44.88 ID:???.net<> >>197
この手の本なんて売れてもせいぜい数千部、頑張っても数万部とかだからね
印刷代、倉庫代、取次手数料、編集者の取り分なども考えたら著者に渡せる金はホント少ない
専業の人は何冊も書かないと食っていけないし、そうでない人は趣味みたいな気持ちでやるしかない
ただ、出版社も編集者も出版点数のノルマがあるので、
タイミングによっては数稼ぎでそこそこ手堅く損はしないだろうと判断できたら数稼ぎで本を出す
Laravel本は改定本出てるのが多いから、そういう対象にはギリギリなってるみたいね
おそらく次のLTSでも何冊かは出るよ <>
nobodyさん<>sage<>2021/06/07(月) 15:05:47.61 ID:???.net<> >>209
>INT型の範囲がどの位あって、何年で溢れそうか?
>みたいな計算一切せずに、何となくINT型にする馬鹿だらけだろう、って話。
これなんかデータあるの?それともお前の妄想? <>
nobodyさん<>sage<>2021/06/07(月) 16:08:03.74 ID:???.net<> > INT でオーバーフローが懸念されたので BIGINT型に変更したのは Twitter くらいしか話を聞いた事は無いけど、
これっていつ頃の出来事?そんなニュースあったっけ <>
nobodyさん<><>2021/06/07(月) 16:11:52.16 ID:XShOSVRG.net<> > INT でオーバーフローが懸念されたので BIGINT型に変更したのは Twitter くらいしか話を聞いた事は無いけど、
たった一例しか知らないのに「何となくINT型にする馬鹿だらけだろう」って決めつけてるの矛盾してない? <>
nobodyさん<>sage<>2021/06/07(月) 17:50:37.59 ID:???.net<> >>209
仮に1日あたり1億レコード消費する計算だとsignedBigint(63bit)を消費するまで何年かかるか分かる? <>
nobodyさん<>sage<>2021/06/07(月) 21:25:33.92 ID:???.net<> >>214
そのぐらい人に聞かないで自分で計算しろよ・・・ <>
nobodyさん<>sage<>2021/06/07(月) 21:36:03.19 ID:???.net<> >>215
214じゃないけど、聞きたいのって「何年か」ではなく「分かるか」であって、
integerではなくbooleanを求めているんでしょ <>
nobodyさん<>sage<>2021/06/07(月) 23:32:56.47 ID:???.net<> >>216
2.5億年かかるけど、おそらく彼は分からない <>
nobodyさん<>sage<>2021/06/07(月) 23:45:18.91 ID:???.net<> 作りたいアプリあるけど9待ちにするか8で始めるか
もしくはLaravelじゃなくてExpressにするか
ただしRailsだけは使わん
phpかjsだけにしておきたい <>
nobodyさん<>sage<>2021/06/07(月) 23:50:05.67 ID:???.net<> すぐ動けるなら8で始めなよ
9を待つ意味はない <>
nobodyさん<>sage<>2021/06/08(火) 00:21:12.96 ID:???.net<> >>214
3、4年くらいかな? <>
nobodyさん<>sage<>2021/06/08(火) 00:37:18.67 ID:???.net<> 6LTSでも大丈夫? <>
nobodyさん<>sage<>2021/06/08(火) 12:49:13.38 ID:???.net<> >>217
2.35億年じゃないか? <>
nobodyさん<>sage<>2021/06/08(火) 13:34:03.48 ID:???.net<> 6から9より
8から9のほうが移行楽 <>
nobodyさん<>sage<>2021/06/08(火) 13:43:54.81 ID:???.net<> そもそもそんなに移行するものなのかと <>
nobodyさん<>sage<>2021/06/08(火) 13:51:11.90 ID:???.net<> LTSごとにでいいんじゃないか?
6で開発してる人が移行するにしても9からだろ <>
nobodyさん<>sage<>2021/06/08(火) 14:13:45.20 ID:???.net<> 既に6で始めてるなら9が出てから移行すれば良いと思うけど、新たに6で始める意味は無いな。
6より8のほうがbugfixのサポート長いし、移行も楽だし。 <>
nobodyさん<>sage<>2021/06/08(火) 15:21:07.17 ID:???.net<> Laravelでやってはいけないアンチパターンみたいなものってあるんですか? <>
nobodyさん<>sage<>2021/06/08(火) 15:24:49.84 ID:???.net<> seederで本番データを登録はできるけどやっては駄目だね
seederはあくまでもテストデータを登録する用途だから
本番データを登録したいならartisan make:command等で専用コマンドを作ったほうがいい <>
nobodyさん<>sage<>2021/06/08(火) 18:11:14.76 ID:???.net<> 本番だけseederで登録しないようにする方法ありませんか
--seedの指定しなければ良いんでしょうけどうっかりもあるので <>
nobodyさん<>sage<>2021/06/08(火) 18:15:40.34 ID:???.net<> app.envみて制御すればいいじゃん <>
nobodyさん<>sage<>2021/06/08(火) 22:40:41.09 ID:???.net<> いやいや、制御も何も本番でseeder読み込もうとしたらプロンプトでてきて、本当にやるかどうか聞かれるはず。 <>
nobodyさん<>sage<>2021/06/09(水) 00:05:48.09 ID:???.net<> それはマイグレーションでも同じだったような
破壊的操作に関して本番環境でチェック入ってるのは当然かと <>
nobodyさん<>sage<>2021/06/09(水) 10:00:20.33 ID:???.net<> 選択肢だけじゃミスは防げないよね <>
nobodyさん<>sage<>2021/06/09(水) 10:19:19.85 ID:???.net<> Laravel使うとLaravel縛りで苦しむみたいだな <>
nobodyさん<>sage<>2021/06/09(水) 10:24:12.53 ID:???.net<> 他のフレームワーク使っても結局一緒では? <>
nobodyさん<>sage<>2021/06/09(水) 10:53:19.62 ID:???.net<> Zend Frameworkこそこの世で一番自由 <>
nobodyさん<>sage<>2021/06/09(水) 10:54:27.82 ID:???.net<> 皆がオレオレフレームワーク作る時代はもう来ないのか <>
nobodyさん<>sage<>2021/06/09(水) 11:20:05.20 ID:???.net<> 来ないだろ
面倒なことが多すぎる <>
nobodyさん<>sage<>2021/06/09(水) 20:50:19.63 ID:???.net<> どうだろ?
APIだけなら別に何でも良さそうだけどね <>
nobodyさん<>sage<>2021/06/09(水) 22:00:38.77 ID:???.net<> >>239
でもAPIはオレオレ詐欺フレームワークで作るのきつくない?
それだったらLaravel使ったほうがいいでしょ <>
nobodyさん<>sage<>2021/06/09(水) 22:18:30.24 ID:???.net<> APIって配信元がマニュアル公開してるから、作りやすくないか?
むしろフレームワーク通すとややこしくなりそうだが <>
nobodyさん<>sage<>2021/06/09(水) 22:31:32.02 ID:???.net<> この板で勢いあるのがこのスレだけなんだな
過疎板でいつ消えるかわからんけど <>
nobodyさん<>sage<>2021/06/09(水) 22:41:18.94 ID:???.net<> どうでもいい <>
nobodyさん<>sage<>2021/06/09(水) 22:43:42.01 ID:???.net<> お前らってコントローラの名称を単数形と複数形どっちにしてる? <>
nobodyさん<>sage<>2021/06/09(水) 22:48:27.05 ID:???.net<> Laravelのインストールに成功しました(10年ぶり2回目)
インストール手順変わったよね?今回めっちゃ苦労したぞ <>
nobodyさん<>sage<>2021/06/10(木) 09:25:36.87 ID:???.net<> 何に苦労した? <>
nobodyさん<>sage<>2021/06/10(木) 10:22:16.20 ID:???.net<> Composerがエラーを出す <>
nobodyさん<>sage<>2021/06/10(木) 11:10:59.75 ID:???.net<> ちなみに、エラー文をそのままググったけどよく分からなかった <>
nobodyさん<>sage<>2021/06/10(木) 11:13:22.95 ID:???.net<> Composerは未完成なツールだから使っちゃダメ
Composerに依存したシステムは破綻する <>
nobodyさん<>sage<>2021/06/10(木) 12:37:07.74 ID:???.net<> Composerのエラーって何々しろって出てるけど英語読まない人が対応できないみたいね <>
nobodyさん<>sage<>2021/06/10(木) 15:06:52.90 ID:???.net<> >>250
多分日本語で書いてあっても読まないだろうな <>
nobodyさん<>sage<>2021/06/10(木) 15:18:37.90 ID:???.net<> だってAllowed memory size of 2097152 bytes exhaustedとか出るけど増やしても増やしても解決しないんだぜ
読んで対応したぐらいで解決してりゃ誰も苦労しないよ <>
nobodyさん<>sage<>2021/06/10(木) 15:42:14.81 ID:???.net<> >>244
githubにアップされてるLaravelベストプラクティスを読めば良いぞ。 <>
nobodyさん<>sage<>2021/06/10(木) 15:43:05.95 ID:???.net<> composerを2にアップデートしてないやつがメモリエラーで死んでる印象。 <>
nobodyさん<>sage<>2021/06/10(木) 16:25:02.97 ID:???.net<> >>252
同時に Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors. って出てるはずだけど <>
nobodyさん<>sage<>2021/06/10(木) 16:33:13.00 ID:???.net<> うちの場合はServer error: `GET http://cabinet.laravel.com/latest.zip` resulted in a `522 Origin Connection Time-out` response:
だったけど、ぐぐって出た対策じゃ解決しなかった。タイムアウトとか言われてもどうしたらいいんだよ。 <>
nobodyさん<>sage<>2021/06/10(木) 20:26:57.37 ID:???.net<> お前らのためにベストプラクティス貼ってやるよ
https://github.com/alexeymezenin/laravel-best-practices/blob/master/japanese.md <>
nobodyさん<>sage<>2021/06/10(木) 20:35:58.99 ID:???.net<> >>257
バリデーションはモデルでやれよ
Requestでやるとバッチ処理の時に困るぞ <>
nobodyさん<>sage<>2021/06/10(木) 20:41:48.68 ID:???.net<> >>258
前もそれ書いてたよね。Laravelエアプかよ。 <>
nobodyさん<><>2021/06/11(金) 04:48:21.12 ID:5vkPxv+8.net<> できるだけCSSフレームワーク使いたくない派なんですけど、jetstreamがtailwindとのことなので、どうせjetstream使ってtailwind読み込むならtailwind使っちゃったほうがいいですかね? <>
nobodyさん<>sage<>2021/06/11(金) 08:41:44.66 ID:???.net<> >>260
そりゃそうよ。まぁtailwindCSS使った方が楽なことが多いから。アホみたいにCSS設計とか命名規約とかに無駄な時間使うことも無くなるし。 <>
nobodyさん<>sage<>2021/06/11(金) 09:03:48.83 ID:???.net<> 前に書いてたから何なんだ?
エアプって何?
言いたいことがあるなら普通に言えよ <>
nobodyさん<>sage<>2021/06/11(金) 09:26:23.73 ID:???.net<> >>262
Laravelのフォームリクエストは、外部からの入力を検証するための機構だからモデルでやれって主張はアホすぎるってこと。MVCでは、入力値の検査はコントローラーの責務。
RailsとかがModelで検査してるのは、MVCよりActiveRecordのルールを優先した結果に過ぎない。
そもそも画面やAPIからの入力とバッチの入力のバリデーション仕様が同じになるケースなんてまず無いと思うんだけど?
誰にも相手にされなかった主張を、また繰り返すのはやめたほうが良いぞ。 <>
nobodyさん<>sage<>2021/06/11(金) 09:46:27.72 ID:???.net<> MVVMだとValidationはどこでやるんですか? <>
nobodyさん<>sage<>2021/06/11(金) 09:59:29.37 ID:???.net<> Cakeだとバリデーションはモデルに書いてたけど、Laravelではダメなん? <>
nobodyさん<>sage<>2021/06/11(金) 10:03:18.73 ID:???.net<> >そもそも画面やAPIからの入力とバッチの入力のバリデーション仕様が同じになるケースなんてまず無いと思うんだけど?
え、そんなことはなくない?
1つのテーブルにデータを追加するシンプルな要件だと、WebからフォームをPOSTしてもバッチで追加してもルールは一緒になるだろう
エラーメッセージの出し方とかは異なると思うけども、バリデーターをそれぞれ別に書いたりはしないと思う <>
nobodyさん<>sage<>2021/06/11(金) 10:41:07.56 ID:???.net<> >>260
どのフレームワークを使うか選択できなかったっけ? <>
nobodyさん<>sage<>2021/06/11(金) 10:47:54.80 ID:???.net<> モデルに紐付かないバリデーションはどこに書けばいいですか? <>
nobodyさん<>sage<>2021/06/11(金) 10:51:50.88 ID:???.net<> コントローラー <>
nobodyさん<>sage<>2021/06/11(金) 11:20:17.41 ID:???.net<> 議論する際「どこでやるか」と「どこに書くか」を混同しないようにしないといかんな。
モデルに書いてもリクエストに書いても、流れ上は「コントローラーでやる」と言っても間違いではない。 <>
nobodyさん<>sage<>2021/06/11(金) 11:30:29.65 ID:???.net<> 議論するなら、「俺はAに書いてる。なぜなら○○だからだ。Bに書くと○○で駄目だ」
って理由まで答えないと成立しないけどな <>
nobodyさん<>sage<>2021/06/11(金) 11:44:57.48 ID:???.net<> >>269
268です。ありがとうございます。
ちなみにそれだと、
Aというルートではコントローラーにバリデーションを書き、
Bというルートではモデルにバリデーション書く、
というようにバラバラになってしまうんですが、気にしないほうが良いのでしょうか?
それとも一律コントローラーに書くほうが良いのでしょうか? <>
nobodyさん<>sage<>2021/06/11(金) 11:52:58.61 ID:???.net<> >>264
例えばLivewireだとViewModelでやる。
>>265
フレームワークの仕様による。LaravelはController。
>>266
どういうバッチを想定している?ファイルから一括でデータを投入するみたいなやつ? <>
nobodyさん<>sage<>2021/06/11(金) 12:04:14.61 ID:???.net<> >>270
それが許されるなら何でもありですがな <>
nobodyさん<>sage<>2021/06/11(金) 12:17:46.77 ID:???.net<> バリデーションのルールをコントローラーに直書きするのがよくないと思う
使い回したりメンテしやすいよう別の場所に出して、コントローラーはそれを呼び出すだけにしたい
じゃあどこに書くか?となると多分モデルなんだが、LaravelのRequestに書く仕様はちょっとビックリした
一見理に適っていて便利でもあるけど、既出の通りコマンドから同じバリデーションを実行する場合は一工夫必要になる <>
nobodyさん<>sage<>2021/06/11(金) 12:33:09.21 ID:???.net<> >>275
コントローラーのメソッドから呼び出すのは良くて、コマンドのメソッドから呼び出すのが良くない理由もお願いします。 <>
nobodyさん<>sage<>2021/06/11(金) 12:41:21.43 ID:???.net<> リクエストのrules()メソッドにルールがまとまって、コントローラーとかにルールが散らばらなくてメンテしやすいと思うけどなあ <>
nobodyさん<>sage<>2021/06/11(金) 13:04:31.37 ID:???.net<> お前ら細けえな
好きなように書けよ
どうせ誰もメンテしなくなるんだし
バリデーションなんて動けばいい <>
nobodyさん<>sage<>2021/06/11(金) 13:14:26.50 ID:???.net<> >>276
コマンドからはFormRequestなんて使わないから
呼び出したくても呼び出せないぞ
とは言え、rulesはpublicだしどうしようもないわけではない
うまくやれば共通化もできるかもしれない <>
nobodyさん<>sage<>2021/06/11(金) 13:15:28.69 ID:???.net<> >>272
そうだねそうなるよ <>
nobodyさん<>sage<>2021/06/11(金) 13:15:52.15 ID:???.net<> >>263
逆にフォームからとバッチからでバリデーションルールが異なるケースってどんな時だよ
そんなの見た事ないわ <>
nobodyさん<>sage<>2021/06/11(金) 13:27:07.72 ID:???.net<> コントローラにバリデーションルールダラダラ書いたコード納品されたら俺だったらキレるわ <>
nobodyさん<>sage<>2021/06/11(金) 13:46:10.64 ID:???.net<> メンテしない案件でも納品直前に「やっぱりパスワードの文字数○○文字以上に変えてくれ」なんて依頼よくあるからなあ
「空の時に表示が崩れる」という理由で本来必須じゃなかった項目をrequiredに変えたり
クライアントは馬鹿だから色々予期せぬ事が起こる <>
nobodyさん<>sage<>2021/06/11(金) 14:44:13.29 ID:???.net<> >>282
じゃあ今度からはモデルにルール書くね <>
nobodyさん<>sage<>2021/06/11(金) 16:02:51.40 ID:???.net<> メンテ=他人に見せることばかり考えてるやついるな
メンテは自分が見てわかりやすくするためのものでもあるだろ
好きなように書いてて、半年後に見ても思い出せるのかよ <>
nobodyさん<>sage<>2021/06/11(金) 17:22:45.42 ID:???.net<> Laravelってバリデーションどこに書くかでも大論争になるんですね
Symfony選んどいてよかった <>
nobodyさん<>sage<>2021/06/11(金) 18:26:53.59 ID:???.net<> laravel使いは年収低いから仕方ない <>
nobodyさん<>sage<>2021/06/11(金) 18:35:08.68 ID:???.net<> 年収高い言語だと論争が起きないの? <>
nobodyさん<>sage<>2021/06/11(金) 18:53:53.69 ID:???.net<> 言うほど大論争になってるか?
ボケがツッコまれてるだけやろ <>
nobodyさん<>sage<>2021/06/11(金) 20:04:20.61 ID:???.net<> Requestでバリデーションする方が分離されるから個人的には好きだけどね
モデルでやるとかは無いわw <>
nobodyさん<>sage<>2021/06/11(金) 21:33:26.10 ID:???.net<> 間違ってたら考えを改めたいから言って欲しいんだけど
何でFormRequestがやってるバリデーションって入力された値が想定してる値かってバリデーションなので
その先にあるであろうテーブルとかを考慮しちゃいけないものだと思ってる
例えば同じテーブルに入力されるデータでも管理者権限と一般ユーザー権限でバリデーションルール変えたいってケースなんてザラだし
モデルに入力される値のバリデーションは持てるの担当範囲外でその担当は
おそらくバックエンドにあるデータベースが受け持ってて入力値が正しくない場合
Exceptionって形で戻してるって解釈してる
違うかな <>
nobodyさん<>sage<>2021/06/11(金) 23:56:27.97 ID:???.net<> フレームワークなのに決まってないのかよ <>
nobodyさん<>sage<>2021/06/12(土) 00:03:21.17 ID:???.net<> バッチ処理のことを考慮したらFormRequestクラス使うのはありえないんだけどね
ここはレベルが低いからそこまで理解できないらしい <>
nobodyさん<>sage<>2021/06/12(土) 00:03:33.13 ID:???.net<> 今日もクソ暑い 毎年思うんだけどなんか1年のうちで暑くなる時期あるよな <>
nobodyさん<>sage<>2021/06/12(土) 00:05:27.36 ID:???.net<> >>293
正直俺もFormRequest使ってるぜってどや顔でこのスレの住人に言われたときは愕然としたな
バッチ処理何も考慮してないよな こいつらマジでバッチ処理どうやってるんだろうか <>
nobodyさん<>sage<>2021/06/12(土) 01:33:16.00 ID:???.net<> いうほどバッチ処理なんてあるか?
なんの処理を気にしてるわけ? <>
nobodyさん<>sage<>2021/06/12(土) 01:34:05.27 ID:???.net<> バッチ処理なんてそもそも間違った入力を渡す事なんか無いやろw
頭悪すぎwwwwwwwwwwwwwwwwwww <>
nobodyさん<>sage<>2021/06/12(土) 02:01:48.82 ID:???.net<> >>297
こういうやつの為に、バッチにもバリデーションが必要なんだよな。 <>
nobodyさん<>sage<>2021/06/12(土) 02:04:17.91 ID:???.net<> >> 297
バッチ処理で間違った入力がされない保証が100%じゃない限り、本来ならバリデーションするべきとは思うけど面倒だからやらないで運用でカバーしてもらう事が多いのも事実
バッチ処理がBatchableジョブの事を言ってるのかartisanコマンドで任意に叩いた処理の事言ってるのかどちらを指してるかわからんけど
どっちにしろ動かす状況やら権限でバリデーションルールが変化するわけだから
機能(バッチ処理)ごとにそれぞれルールは必要じゃないの?
Batchableジョブでミドルウェアが使える様になってるのってリクエストの時と同じように
そこでバリデーションかけたり前処理できる様にしてあるって思ってたけど <>
nobodyさん<>sage<>2021/06/12(土) 04:22:05.20 ID:???.net<> もうCloseされちゃったけど最近のissuesでもFormRequestsはバッチ処理に向いてないから廃止しようって話あったよね
やっぱりコミュニティでもモデルにルール書く人が大半らしい <>
nobodyさん<>sage<>2021/06/12(土) 05:03:09.94 ID:???.net<> >>300
laravelのOSSかなりみて回ったけど、FormRequest使ってる奴らばかりだったぞ。その話は疑わしいのでソースを提示してくれ。 <>
nobodyさん<>sage<>2021/06/12(土) 05:05:03.89 ID:???.net<> バッチがーて言ってるやつは、まず具体的にどんな処理を想定しているのか答えてくれ。 <>
nobodyさん<>sage<>2021/06/12(土) 05:33:28.20 ID:???.net<> モデルにバリデーションルール書く場合で
ユーザーのロールによってバリデーションルール変える必要があった時ってどんな書き方してるのか知りたい <>
nobodyさん<>sage<>2021/06/12(土) 07:00:44.62 ID:???.net<> 間違った住所のままDBに登録される
↓
出荷バッチが働き間違った住所のまま伝票に印刷される ※1
↓
間違った住所の伝票が貼られたまま郵便局に持ち込まれる
↓
ご指定の住所に行き当たりませんでしたといって荷物が返ってくる
↓
商品がこないからキャンセルだと客から連絡が来る
おまえらがバリデーションしないせいで月間300件の荷物が返ってくる
1つ送るのに1050円だから1050*300=315000円の損失
そして※1のところで伝票印刷アプリが「取り込みすら無理なデータだけど」ってエラー出すからバッチ処理が止まる
データ修正してバッチを再投入
だが、ほかにも間違ってる住所があるからまたやり直しっていうのを何度も繰り返す
とにかく間違ったデータが入力されてしまうっていうのは損失として大きいんだよ <>
nobodyさん<><>2021/06/12(土) 07:06:50.30 ID:HaomJXxh.net<> >>303
Laravelで普通にできるだろ <>
nobodyさん<>sage<>2021/06/12(土) 07:06:56.41 ID:???.net<> >>304
うん?バッチってDBから一覧を抽出するバッチの話なの?バリデーションは何の関係があるの?そんなの登録画面でバリデーションすれば良いだけでしょ? <>
nobodyさん<>age<>2021/06/12(土) 07:22:55.34 ID:???.net<> >>302
バリデーションが必要なデータを追加するバッチだよ
それを聞いてとうするんだよ <>
nobodyさん<>sage<>2021/06/12(土) 07:48:40.82 ID:???.net<> >>307
具体的にて書いたはずなんだが。モデルで書けっていってるやつの主張が意味不明だから。
まず、画面で入力と同じ操作をバッチでもやるって前提が理解できない。
俺の経験上、大体のデータは親子関係にあって、入力する画面は分かれている、バッチだとそれらをまとめて投入するから画面とバッチではバリデーションのルールは異なる。
更に、そんなバッチ自体稀だから、わざわざそのためだけにLaravelの標準を無視してモデルに書くって発想が理解不能。 <>
nobodyさん<>sage<>2021/06/12(土) 07:56:05.02 ID:???.net<> モデルに書くのに違和感あるって人はLaravelしかフレームワーク触ったことない人なの?
煽りじゃなくて純粋な疑問 <>
nobodyさん<>sage<>2021/06/12(土) 07:56:31.89 ID:???.net<> そもそもバッチにパラメータなんて基本ないからな
デイリーだとその日が分かればいいだけだし
特殊なバッチのようなものならそもそも管理画面でパラメータ入れて実行やろ <>
nobodyさん<>sage<>2021/06/12(土) 08:02:54.84 ID:???.net<> >>309
処理の流れからして先にバリデーションするやろ
モデルでするとかそもそも考え方が異常やろ
複数のモデルを使う時、2個目のモデルに投入するまでそこで使うパラメータはエラーが分からんの?w
バカバカし過ぎる <>
nobodyさん<>sage<>2021/06/12(土) 08:03:47.75 ID:???.net<> >>309
モデルにバリデーションがあるほうがMVCの原則としてはおかしいのだよ。上でも書いたけど、モデルにバリデーションてのは、Active Record由来。
だから、モデルでのバリデーションに違和感持たない人は、Rails以降のなんちゃってMVCフレームワークしか知らないって理解。 <>
nobodyさん<>sage<>2021/06/12(土) 08:22:52.49 ID:???.net<> >>308
どこまで具体的に要るんだ?実際のコード貼れってか?ちょっとそれは今すぐできないんだが
例えば最近やったのでは、1日1回他社がS3に置いたcsvデータを取り込んで、テーブルにレコード追加するバッチ
requiredやuniqueやdateなど普通にバリデーションが必要でバリデーションしたよ
この程度の例も思い付かないなんてどんだけ経験値低いんだよ <>
nobodyさん<>sage<>2021/06/12(土) 08:26:48.44 ID:???.net<> >>313
経験値ではなくて規模の話だね。そこそこ正規化されたデータしか扱ったことないんで。
あとそれがどれぐらいあんの?画面10あって、そんなのが1、2程度なら、わざわさモデルでバリデーションするようアーキテクチャを変更するのはアホだってことぐらいは、理解してくれるよね? <>
nobodyさん<>sage<>2021/06/12(土) 08:33:20.84 ID:???.net<> >>312
その辺は一応浅く理解してるけどコントローラーにもリクエストにも書きたくない場合モデルしかなくね?と思った
Cakeでもモデルに書いてたし
他にもっといい場所あったら知りたい <>
nobodyさん<>sage<>2021/06/12(土) 08:49:11.01 ID:???.net<> >>314
確かにうちは小規模案件が多い、その意味では俺も経験値足りてないが
もちろん不必要な所まで変えなくてもいんじゃね?俺もRequestのバリデーション使うことはある
ただそれだとバッチの時に不便だから、うちではモデルに書いたバリデーションメソッドを、
Webの場合はコントローラー、バッチの場合はコマンドから呼び出すという実装が多い
だから>>257のページみたいにリクエストクラスでやるのがベストプラクティス!と言いきられるとモヤモヤする <>
nobodyさん<>sage<>2021/06/12(土) 09:04:00.24 ID:???.net<> 週末に気持ち悪い奴らだな
みんな可愛い彼女連れて楽しく過ごしてるのにバリデーションごときに熱くなって悲しくならんの? <>
nobodyさん<>sage<>2021/06/12(土) 09:09:31.93 ID:???.net<> 考え方違くね?
モデルに入るデータをバリデーションするんじゃなくてS3にあるCSVデータが正しいフォーマットかをバリデーションするんじゃないの?
後laravelしか触ってないからモデルに書く事に違和感があるんじゃなく
laravelがリクエストでバリデーションする機能を提供してるからその方針を尊重してるってだけ
使ってるフレームワークがビューテンプレートに書くって方針ならそうするよ
自分のやりやすいを優先して得られるものなんてないでしょ <>
nobodyさん<>sage<>2021/06/12(土) 09:12:38.72 ID:???.net<> >>304
間違った住所のままDBに登録される
↓
出荷バッチが働き間違った住所のまま伝票に印刷される ※1
バッチ動く前に「間違った住所のままDBに登録される」って書いてあるけど、そこでバリデーションが必要じゃん <>
nobodyさん<>sage<>2021/06/12(土) 09:17:14.51 ID:???.net<> >>315
cakePHPはRailsを真似たフレームワークの代表みたいなもんだから、例としては不適切。 <>
nobodyさん<>sage<>2021/06/12(土) 09:18:38.00 ID:???.net<> >>316
バッチもあるやつだけ、モデルにバリデーションを移しているの?それはそれで大変そうな・・・ <>
nobodyさん<>sage<>2021/06/12(土) 09:20:50.82 ID:???.net<> >>318
そうそう、フレームワークの標準にのることが大事。それを無視して俺流をはじめちゃうと、オレオレフレームワークの亜種になってしまう。
その結果、新規に参画するエンジニアや引き継ぐ場合の学習コストが跳ね上がったり、メンテできなくて匙を投げられるみたいなことが起きる。 <>
nobodyさん<>sage<>2021/06/12(土) 09:34:05.89 ID:???.net<> >> 322
基本的に面倒くさがりだから独自ルールで書いたらどんなルールかをドキュメントに残さないと引き継げないけど
フレームワークの標準に合わせとけば引き続ぎはフレームワークの作法でやってるのでよろしくで終わる
理解できないって話ならそれは本人の技量であってドキュメントを残してないこっちのせいじゃないって突っぱねられる <>
nobodyさん<>sage<>2021/06/12(土) 09:58:26.28 ID:???.net<> めんどくさいからちょっとまとめてやるわ
バリデーションて言っても厳密には2種類ある
・フォームから送信されたデータのバリデーション
・DBに保存するデータのバリデーション
例を挙げると長くなるので省略する
前者はリクエストで、後者はモデルで担当するのが正解だが
シンプルな要件ではこの2種類が同じになることも多く、その場合はどこに書くか議論の余地が出て来る <>
nobodyさん<>sage<>2021/06/12(土) 10:02:25.63 ID:???.net<> まとめなくていい
スルー耐性つけろ <>
nobodyさん<>sage<>2021/06/12(土) 10:05:09.96 ID:???.net<> すまん、スレの総意的には、Requestsクラスは非推奨で、モデルでバリデーションするのが正解ってことでOK? <>
nobodyさん<>sage<>2021/06/12(土) 10:07:15.93 ID:???.net<> バッチ処理に向く、向かないって言ってる意味がよく分からん
要は正しいデータ登録できるかできないかって話だよね?
バリデーションの機能そのものの話だよな <>
nobodyさん<>sage<>2021/06/12(土) 10:07:22.63 ID:???.net<> モデルでバリデーションするって言ってる奴は.envをコミットするって言ってるやつと同一人物だろw <>
nobodyさん<>sage<>2021/06/12(土) 10:10:54.19 ID:???.net<> スレの総意としてはどっちでもいいだろ <>
nobodyさん<>sage<>2021/06/12(土) 10:16:45.06 ID:???.net<> なんでスルーするんだ?
有益な話だと思うけど <>
nobodyさん<>sage<>2021/06/12(土) 10:34:11.31 ID:???.net<> >>321
じゃあそういう時他にどうすればいいの? <>
nobodyさん<>sage<>2021/06/12(土) 11:23:04.15 ID:???.net<> 異常値は入力時に弾いてDBに入れないのがシステム屋さんの考え方。WEB屋さんはDBにも異常値があるものを作るようだ <>
nobodyさん<>sage<>2021/06/12(土) 11:31:37.43 ID:???.net<> 俺のところはlocalhostからしかアクセスできないバッチ用コントローラを配置して
そいつに対して他社システムが配置したCSVから読み込んだデータをPOSTしてるな
だからFormRequestは普通にバッチで使えてたな <>
nobodyさん<>sage<>2021/06/12(土) 11:33:22.83 ID:???.net<> >>331
それぞれでバリデーション書け。理由は、ユースケースが異なるから。結果的に今は同じだからって共通化しようとするのは、経験の浅いエンジニアが犯しやすい過ち。 <>
nobodyさん<>sage<>2021/06/12(土) 11:40:55.95 ID:???.net<> >>334
それLaravelではアンチパターンだよ <>
nobodyさん<>sage<>2021/06/12(土) 11:41:08.06 ID:???.net<> バッチからとフォームからでルールが異なるってレアケースだし、共通化できる部分はすべきだと思う
あちこちに分散して書くと非常にバグの基になりやすい
それぞれの担当者が別で開発終盤の忙しい時に仕様が変わって片方にしかちゃんと伝わらないとか、超ありがち <>
nobodyさん<>sage<>2021/06/12(土) 11:44:42.08 ID:???.net<> >>333
それはそれで苦肉の策って感じで嫌だな
絶対駄目でもないけど <>
nobodyさん<>sage<>2021/06/12(土) 12:16:55.27 ID:???.net<> あらゆるインプットにはバリデーションが必要で、特定のインプット方法にしか使えない形でバリデーションを実装するのはどうなの?っていうだけなんだが。
特定のケースならバリデーションはいらない、っていうのはむしろ例外だから考慮しなくていい。 <>
nobodyさん<>sage<>2021/06/12(土) 12:25:37.45 ID:???.net<> >>335
勝手にLaravelのアンチパターンとか言い出して何様www <>
nobodyさん<>sage<>2021/06/12(土) 12:29:45.84 ID:???.net<> >>338
Laravelベースの人気OSSも一通り調べてみたけど、ユースケースごとにバリデーションは分けて定義している。例えば同じuserモデルに対する処理でも、登録と更新ではFormRequestを分けて用意している。 <>
nobodyさん<>sage<>2021/06/12(土) 12:51:16.37 ID:???.net<> >>338
ログインIDが登録可能な3種類のrouteがあったとして
1. /users
2. /manager/users
3. /file/users
1は半角英数10文字まで
2半角英数10文字で先頭にmgr_が必要
3はアップロードされたファイルに書かれている文字半角英数10文字まで
これをどういう形でバリデーション実装するの? <>
nobodyさん<>sage<>2021/06/12(土) 13:03:45.28 ID:???.net<> >>341
設計が悪いと思わんのかw <>
nobodyさん<>sage<>2021/06/12(土) 13:07:54.18 ID:???.net<> もうLaravelも9が出るというのに未だにFormRequests使ってるやつが居て草
バッチ処理のこと何にも考えてないんだろうね <>
nobodyさん<>sage<>2021/06/12(土) 13:08:43.28 ID:???.net<> やっぱRails使いたちのほうが圧倒的にレベル高いわ
Laravel使ってる奴らやべえな <>
nobodyさん<>sage<>2021/06/12(土) 13:15:55.81 ID:???.net<> >>344
そんな化石使ってるやつのほうがヤバいからw <>
nobodyさん<>sage<>2021/06/12(土) 13:19:21.91 ID:???.net<> >>343
バッチ処理でバリデーションとかまじで笑えるwww
お前開発したことないやろ?w <>
nobodyさん<>sage<>2021/06/12(土) 13:27:47.73 ID:???.net<> .envと.env.backupが.gitignoreで除外されてるけど
.env.helloとかは問題なく追加できる
これってLaravelの思想としては初期の.envや.env.backupを管理対象にしてないのは
初心者に対する配慮の上でのことですよね?
devenvの仕組み上.env.aとか作れるので自分で管理しろって意味ですよね? <>
nobodyさん<>sage<>2021/06/12(土) 13:34:09.52 ID:???.net<> >>341
設計が悪い 以上この話はもう終わり <>
nobodyさん<>sage<>2021/06/12(土) 13:35:21.15 ID:???.net<> そもそもバッチ処理ってのが何を言ってるかよく分からん
バッチ処理云々言ってるやつは、
まずはバッチ処理そのものについてまずは説明してほしいわ
バリデーション云々の話はまずは置いといて良い <>
nobodyさん<>sage<>2021/06/12(土) 13:37:17.78 ID:???.net<> >>341
そんなシステムはおかしいのでこの場合のバリデーションを考えるのは時間の無駄です <>
nobodyさん<>sage<>2021/06/12(土) 13:39:10.54 ID:???.net<> >>349
バッチ処理の意味知らない人初めて見たかもしれない
このURLに説明書いてますよ
https://www.otsuka-shokai.co.jp/words/batch-processing.html <>
nobodyさん<>sage<>2021/06/12(土) 13:44:19.29 ID:???.net<> >>341
設計ひどすぎてワロタ
それは単純な例だからそういう設計ってことでいんだよな?
まさか実際にリリースしたことのある製品がそういう設計になっているんじゃないよな? <>
nobodyさん<>sage<>2021/06/12(土) 13:59:25.34 ID:???.net<> >>351
そのリンク先とLaravelのバリデーションとの関係は説明できます? <>
nobodyさん<>sage<>2021/06/12(土) 14:00:41.19 ID:???.net<> >>353
バリデーションの説明はまだいらないとのことだよ
>>349はバリデーションの話はまず置いておいてバッチ処理について教えてほしいって言ってるんだから <>
nobodyさん<>sage<>2021/06/12(土) 14:18:30.51 ID:???.net<> 上の方のレスも読んでなんとなく言ってる意味は分かったが
バッチ処理の内部で起きてる話のことで、
それをバッチ処理と相性悪いって言われても意味は伝わらんわな
言い方が悪い <>
nobodyさん<>sage<>2021/06/12(土) 14:19:18.33 ID:???.net<> やっぱすげえ動物園みがあるなこのスレ
いつ来ても苦笑させられる <>
nobodyさん<>sage<>2021/06/12(土) 14:24:11.67 ID:???.net<> >>352
こんな設計あるわけないでしょ
routeによってバリデーションの内容が変わるってのを極端に書いただけ
ここまで極端じゃなくとも大なり小なりrouteで変化するルールをどうやって対応するのかが聞きたかっただけ
それからクライアントからの絶対条件だったっ場合
設計がおかしいから変えないなら仕事したくありませんとかって言うわけでもないだろうし
FormRequestに書くって選択肢を許容すればそんなゴネる必要ないのに・・・
バリデーション分けると寿命が減ったりするわけでもないんでしょ? <>
nobodyさん<>sage<>2021/06/12(土) 15:17:08.81 ID:???.net<> >>357
だからrouteでモデルの解釈が変わるというのが設計が悪いという証拠 <>
nobodyさん<>sage<>2021/06/12(土) 16:00:14.29 ID:???.net<> その考え方だと
モデルに対してwebで出来ること以上の機能を持ったapiは設計が悪いってならない? <>
nobodyさん<>sage<>2021/06/12(土) 16:04:49.88 ID:???.net<> >>348
一言で済むならプログラマー入りませんよ
頭の悪い無能は引っ込んでおれ <>
nobodyさん<>sage<>2021/06/12(土) 16:07:15.24 ID:???.net<> 別にrouteによらなくてもバリデーションルールが様々な条件によって変わることは普通にあり得るし
Laravelも他のフレームワークもその辺は割と柔軟にできるように工夫してるでしょ
そしてそれはFormRequestに書くかどうかと全く関係ないぞ、スレを面白くしようとしてるのか知らんが変にややこしくするな <>
nobodyさん<>sage<>2021/06/12(土) 16:10:43.21 ID:???.net<> FormRequestはバッチで使用できないから廃止しようというissuesが前に立ったけど
結局否決されてクローズだったな <>
nobodyさん<>sage<>2021/06/12(土) 16:12:25.14 ID:???.net<> 別に廃止はしなくていいじゃん 使わなきゃいいだけ <>
nobodyさん<>sage<>2021/06/12(土) 17:28:44.55 ID:???.net<> >>351
機能文盲のようなので横から捕捉しておくと、ここで求められているのは、バリデーションを必要とするバッチ処理というものが何なのかって話だよ。
おそらく、それをはっきりさせた後にバリデーションについて語りたいんだろう。 <>
nobodyさん<>sage<>2021/06/12(土) 17:32:15.47 ID:???.net<> >>364
違う 俺が言ってるのはまずはバリデーション抜きでバッチ処理を語ってくれってこと <>
nobodyさん<>sage<>2021/06/12(土) 17:33:43.08 ID:???.net<> バッチでユーザーリストのcsvファイルを読み取って、追加更新するとか。
これくらいも思いつかないのか。。。 <>
nobodyさん<>sage<>2021/06/12(土) 17:35:40.77 ID:???.net<> >>365
俺が機能文盲だったのか。100年ぐらいROMってるわ。 <>
nobodyさん<>sage<>2021/06/12(土) 18:49:14.02 ID:???.net<> FormRequestでバリデーション実装しているやつはバッチ処理を考えていないを指摘したら、急にスレの流れが変わってそのことに触れないようにしててワロタ <>
nobodyさん<>sage<>2021/06/12(土) 19:03:17.61 ID:???.net<> やっぱLaravelスレって零細しか居ないんだろうなぁ
大企業向けワクチン接種の予約した人もここには居ないんだろうな <>
nobodyさん<>sage<>2021/06/12(土) 19:31:11.49 ID:???.net<> 昔は大企業にいたけどやめちゃったよ <>
nobodyさん<>sage<>2021/06/12(土) 19:34:25.88 ID:???.net<> >>369
おれ一応大企業ね。1000人超えてるから。ただし事業部制だから全然実感は無い。 <>
nobodyさん<>sage<>2021/06/12(土) 19:39:19.73 ID:???.net<> おそらくWEBインターフェースを使用しない話をしてるのだろうが、
それをバッチ処理という括りで話すのがまずおかしい
おそらく永遠に話が噛み合わない
バッチ処理言ってるのは古いシステムを触ってるおっさん世代と思われる <>
nobodyさん<>sage<>2021/06/12(土) 20:06:17.54 ID:???.net<> >>372
laravelでバッチってワードが出てくるのなんて
ジョブバッチしかないんだからそれなんじゃないの?
タスクスケジュールを指してるとはとても思えないし
artisanはコマンドだし <>
nobodyさん<>sage<>2021/06/12(土) 20:15:58.06 ID:???.net<> バッチ処理が必要なシステムとか古すぎて草
何年前の設計思想だよw <>
nobodyさん<>sage<>2021/06/12(土) 20:26:58.08 ID:???.net<> 働いたことがないやつがたくさんいるなこのスレ <>
nobodyさん<>sage<>2021/06/12(土) 20:28:21.94 ID:???.net<> >>374
後学のために教えて欲しいんだが、例えば50万件のデータを毎日DBに投入するときは、どんな設計にすれば良いの? <>
nobodyさん<>sage<>2021/06/12(土) 20:29:40.76 ID:???.net<> >>376
>>374が毎日手で入れる <>
nobodyさん<>sage<>2021/06/12(土) 20:32:35.42 ID:???.net<> >>377
すごい!モダンだ。 <>
nobodyさん<>sage<>2021/06/12(土) 20:42:28.46 ID:???.net<> 俺の会社も考えたらバッチ処理ってないな
いろいろな設備や予約を行うためのシステムだけど利用者に関するデータはそもそも他社のアカウント管理サーバがあるからそこを参照しているだけだし
実際の予約情報もまた他社のExchange Web ServicesにアクセスしてデータのCRUDを行うだけ
備品や施設情報もExchange Web Servicesから参照しているだけだし <>
nobodyさん<>sage<>2021/06/12(土) 20:48:28.91 ID:???.net<> >>361
俺としてはフレームワークでlaravelを選択した際には
リクエストされた値に対してのバリデーションなんだからform requestに書くって自然な流れだと思ったんだけど
modelに書くのが一般的って言うからどう対応してるのかが知りたかったんだよね
そっちのがlaravelの文脈として理にかなってるなら考えを改めて、ウソ教えちゃった人達に謝って訂正しようと思ったから粘着質になってしまった
申し訳ない <>
nobodyさん<>sage<>2021/06/12(土) 20:53:54.35 ID:???.net<> FormRequest書いたルールをrule()メソッドで参照したらどこでもバリデーションできるけどそういう話じゃないだろな多分 <>
nobodyさん<>sage<>2021/06/12(土) 21:11:30.26 ID:???.net<> いやほとんどのケースでFormRequestに書くで別に問題ないだろうし
他で必要な場合は>>381みたいな方法でも別にいいと思うぞ
でも他のFWみたいにモデルに書く手もあると思うし、何故かそれを認めない輩も一定数いる模様(一人かも知れんが) <>
nobodyさん<>sage<>2021/06/12(土) 21:12:30.93 ID:???.net<> バッチガー言ってる奴って頭悪そうw <>
nobodyさん<>sage<>2021/06/13(日) 01:31:01.07 ID:???.net<> 転職サイトとか見ててもLaravel案件は単価低いから仕方ないよね
Laravelというかphpが低いのかもしれないけど <>
nobodyさん<>sage<>2021/06/13(日) 01:42:59.42 ID:???.net<> Windowsの古のシステムを保守してたおっさんが紛れ込んだと思われる <>
nobodyさん<>sage<>2021/06/13(日) 07:47:48.47 ID:???.net<> 実際、バッチって必要なもんなの? <>
nobodyさん<>sage<>2021/06/13(日) 08:28:49.94 ID:???.net<> AWSだってわざわざバッチ用のサービスを用意しているというのに、このスレの奴らは大量のデータを一括で処理するようなユースケースに遭遇したことがないのか?それとも、その場合バッチ以外の手段で対処している?
キャリア1、2年目のエンジニアがバッチ処理必要になった時に、設計したことないって話は聞くけども。 <>
nobodyさん<>sage<>2021/06/13(日) 08:36:35.05 ID:???.net<> 俺もそれは不思議
バッチという言葉も知らず実装したこともない初心者無職が、なぜか開き直って偉そうに罵倒してくるスレ <>
nobodyさん<>sage<>2021/06/13(日) 09:33:28.13 ID:???.net<> 当然知ってるからこそパラメータとか言ってるのが滑稽なのだよw
定期処理ならパラメータなんて無いし
(あってもその日時とかやろ)
必要に応じて動かすならフォームからパラメータ入れたりして実行するし
そもそもそういうパターンは管理画面だから非同期にする必要も本来は無いのだけどな <>
nobodyさん<>sage<>2021/06/13(日) 09:42:03.59 ID:???.net<> パラメータおじさんが何もわかってないことはわかった
お前はずっとROMでいいよ <>
nobodyさん<>sage<>2021/06/13(日) 09:48:32.96 ID:???.net<> バッチが必要なのは昔の貧弱なシステムでやりくりする知恵でしょ? <>
nobodyさん<>sage<>2021/06/13(日) 10:00:41.16 ID:???.net<> >>391
へー、最近は数十万件のデータの処理であっても、オンラインでhttpタイムアウトする前に処理終わるんだ? <>
nobodyさん<>sage<>2021/06/13(日) 10:04:17.69 ID:???.net<> >>391
エンジニアじゃない人はロムっててね <>
nobodyさん<>sage<>2021/06/13(日) 10:08:13.12 ID:???.net<> 1日に1回、基幹システムからデータを取り込む処理とか作ったことないの?零細の俺ですらあるというのに <>
nobodyさん<>sage<>2021/06/13(日) 10:44:43.19 ID:???.net<> >>391
よくあるサブスクのサービスとかで月に一度クレジットカード会社に請求する仕組みとか世にいくらでもあるんだが、君はどうやって実装してるのか知りたい <>
nobodyさん<>sage<>2021/06/13(日) 10:47:39.20 ID:???.net<> >>395
マッチョな>>391が毎日手動で実行 <>
nobodyさん<>sage<>2021/06/13(日) 10:47:50.07 ID:???.net<> >>391
FormRequest使ってるバカwwwww <>
nobodyさん<>sage<>2021/06/13(日) 10:59:01.81 ID:???.net<> >>392
1件ずつリアルタイム処理するって話なのに
どうしてリクエスト来るたびに全件処理するバッチ処理を走らせてんの?
そもそも数十万件ならHTTPのタイムアウト60秒だとして間に合うでしょ <>
nobodyさん<>sage<>2021/06/13(日) 10:59:28.11 ID:???.net<> >>394
1日1回じゃなくて1日中やりつづけたらいいよねって話 <>
nobodyさん<>sage<>2021/06/13(日) 11:02:06.81 ID:???.net<> >>395
そういうの求める人いるけど、怖くて手を出せないわ
大きな会社でもしょっちゅうやらかしてるし <>
nobodyさん<>sage<>2021/06/13(日) 11:02:28.37 ID:???.net<> >>395
世の中の仕組みが古いよねって話だよ
メガバンクですら夜間バッチからリアルタイム処理に変わったのに <>
nobodyさん<>sage<>2021/06/13(日) 11:04:32.05 ID:???.net<> おまえら昔は大手にいたかもしれんが
最近のシステムを触ってないでしょ?
どんどんリアルタイムに変わっていってるのに
そもそもサーバにクレジットカードの情報があるようなシステムは違法だぞ <>
nobodyさん<>sage<>2021/06/13(日) 11:10:23.19 ID:???.net<> 客の基幹システムが古いんだから仕方ないじゃん
こっちは頼まれた通りに作るだけだよ <>
nobodyさん<>sage<>2021/06/13(日) 11:21:24.27 ID:???.net<> >>391
例えば、1日ごとの会員の数をCSVなどでダウンロードしたいという要件を実現するとき、
1. 毎日0時時点の会員テーブルのレコード数(や会員の付随属性など)を取得する
2. 1. の結果を集計結果テーブルに挿入する
3. 出力リクエストを受けたら集計結果テーブルをCSVに変換して出力する
俺だったらこんな設計して、 1. と 2. はバッチで作るけど>>391のモダンなやり方だとどんな設計になるの?
あ、ちなみに俺はバリデーションルールをモデルに書くなんて馬鹿なことはしないよ、普通にFormRequestに書くわ。
しかしバッチをLaravelで作るかは微妙だが。 <>
nobodyさん<>sage<>2021/06/13(日) 11:35:51.15 ID:???.net<> なにそのキチガイな設計、頭だいじょうぶか?
普通にリクエスト受けたらCSV生成してダウンロードさせたらええだけやん <>
nobodyさん<>sage<>2021/06/13(日) 11:40:41.67 ID:???.net<> >>404
FormRequest使ってるやつってやっぱりガイジしかいねーんだな
そのままCSVで出せばいいだろ <>
nobodyさん<>sage<>2021/06/13(日) 11:47:50.11 ID:???.net<> >>404
この人(達)わかってて言ってるから相手にしない方がいい
私生活が上手くいってなくてこういう方法でしかストレスの吐き出し方知らない
かわいそうな子だから何言っても意味ないよ <>
nobodyさん<>sage<>2021/06/13(日) 11:49:45.50 ID:???.net<> わざとボケてスレをかき回して喜んでる奴ずっといるよな <>
nobodyさん<>sage<>2021/06/13(日) 12:33:44.44 ID:???.net<> >>398
バッチ処理書いたことない人だったか <>
nobodyさん<>sage<>2021/06/13(日) 12:47:23.57 ID:???.net<> >>408
そうそう。荒らしね。知識なくて話に加われないなら黙ってりゃ良いのにといつも思うわ。 <>
nobodyさん<>sage<>2021/06/13(日) 12:49:50.72 ID:???.net<> 集計結果テーブルはさすがに草 <>
nobodyさん<>sage<>2021/06/13(日) 13:10:46.41 ID:???.net<> 反論したくなるギリギリの外し方は上手いと思うから知っててやってるんじゃないかと予想した
でも、あんまり知識レベルは高くないと感じるから
いくつもやってたら無知が故に画期的なアイデアを書くかもしれない
がんばれ <>
nobodyさん<>sage<>2021/06/13(日) 13:41:14.33 ID:???.net<> 俺の会社は>>379で書いた通りの方式だからバッチ処理はないな
上位システムでは何かやってるのかもしれないけど <>
nobodyさん<>sage<>2021/06/13(日) 13:46:40.89 ID:???.net<> バッチ処理をどうやるかって話をしているのに
わざわざ「俺の会社ではないな」とか書いてくる奴ってガイジなのか?職場でもそんな感じで会話してるの? <>
nobodyさん<>sage<>2021/06/13(日) 13:51:14.23 ID:???.net<> 死語な感じするけどキョロ充ってやつじゃないの
とにかくハブられないために情報量ゼロでも何か発言せずにはいられないんだろう
悲しいね <>
nobodyさん<>sage<>2021/06/13(日) 13:57:52.16 ID:???.net<> >>414
最初にバッチ処理でFormRequest云々の話をしたのは俺なんだけど
みんながバッチ処理をそもそもしているのかどうかという正直>>379のような話がしたかったんだよ・・・・
正直今の流れは望んでいない・・・ <>
nobodyさん<>sage<>2021/06/13(日) 14:06:34.29 ID:???.net<> バッチ処理は必要だしみんなしてるよ
スレ読んでて何故それが未だにわからない? <>
nobodyさん<>sage<>2021/06/13(日) 14:19:07.15 ID:???.net<> >>405
統計処理としては普通の方式だと思うけど
リクエストあるたびに集計処理が動作するんじゃ重すぎる <>
nobodyさん<>sage<>2021/06/13(日) 14:19:33.67 ID:???.net<> >>416
バッチ処理ってどれを想定してるかで答え変わるんじゃないかな?
ちなみに俺は6番だと思ってる
1. 時間のかかる処理をする事
2. 非同期で処理をする事
3. 複数の処理をまとめた機能
4. 定期的に行う処理の事
5. コンソールから行う処理の事
6. Batchableジョブの事 <>
nobodyさん<>sage<>2021/06/13(日) 14:20:47.40 ID:???.net<> >>417
いやバッチ処理がいらないシステムも実際存在するし作ったこともあるから必ず必須というのは誤りだけど
実際のところ自分の構築した体感で7、8割りのシステムはバッチ処理が必要なシステムになるね <>
nobodyさん<>sage<>2021/06/13(日) 14:24:09.71 ID:???.net<> >>419
HTTPリクエスト以外からのlaravel処理起動ってことだ。
バリデーションをHTTPリクエストしか想定してないところに書くのがどうなの?って話になって、例としてバッチはどうするの?って話になって、バッチを知らない馬鹿が騒いでるのが今の流れ。 <>
nobodyさん<>sage<>2021/06/13(日) 14:26:43.23 ID:???.net<> サーバ内部からアクセスできないようなコントローラを作って
そいつに対して別システムからもらったCSV等のデータをPOSTしたりとかするようにすれば
FormRequest使えるのでは? <>
nobodyさん<>sage<>2021/06/13(日) 14:27:21.35 ID:???.net<> それも一つの方法ではあるけど苦肉の策って感じだな <>
nobodyさん<>sage<>2021/06/13(日) 14:29:04.06 ID:???.net<> >>421が正解なんだが>>419はわかっててわざとボケてる奴だよな
「バッチ」の定義にこだわってわざと話をかき回し続けている もう病気だろこれ <>
nobodyさん<>sage<>2021/06/13(日) 14:30:11.09 ID:???.net<> >>422-423
あれ?話がループしてね? <>
nobodyさん<>sage<>2021/06/13(日) 14:41:07.98 ID:???.net<> ちょーっと、イイですかー?
あなたターチは、ヴァカですかー? <>
nobodyさん<>sage<>2021/06/13(日) 14:43:44.46 ID:???.net<> >>424
俺はわざとやってる人じゃない
ややこしくしようとしてるって感じたなら謝る
書いてもらうまで「HTTPリクエスト以外からのlaravel処理」
が議論の対象だったってのは完全に頭になかった <>
nobodyさん<>sage<>2021/06/13(日) 15:07:05.62 ID:???.net<> 書くの忘れてた
バリデーションをHTTPリクエストしか想定してないところに書くのがどうなの?
って部分に関してはバリデーションの対象が「リクエスト」なのでFormRequestに書くべきだと思う
FormRequestを使わない処理に対してのバリデーションは必要があるなら処理単位で書くべきと思ってる <>
nobodyさん<>sage<>2021/06/13(日) 15:13:25.13 ID:???.net<> FormRequestを継承したクラスをnewしてそれのrules()で取り出したルール使いましょうよ <>
nobodyさん<>sage<>2021/06/13(日) 15:28:00.34 ID:???.net<> >>427
繰り返しそう書かれてるのに、スレを読んでてそこに気付かないとか考えられないんだが
案外見落とすもんなのか…? <>
nobodyさん<>sage<>2021/06/13(日) 15:32:11.26 ID:???.net<> このスレでは行間読んでもうバッチでいいけど、
個人的にはバッチって表現とLaravelのバリデーションを紐づけるのは違和感あるよね
Laravelのドキュメントの中でバッチって使ってたりするか? <>
nobodyさん<>sage<>2021/06/13(日) 15:43:20.99 ID:???.net<> >>431
バッチって定義はないけど、cursorやchunkメソッド、lazy collectionなんかは大量データを一括で処理するためのものだよね。 <>
nobodyさん<>sage<>2021/06/13(日) 16:01:34.50 ID:???.net<> こんなんで言い争いしてるのを見るとわかる通り
laravelはダメなフレームワークです。 <>
nobodyさん<>sage<>2021/06/13(日) 16:04:02.20 ID:???.net<> バッチの定義がおっさんと若者で違うんだろうか
でもこんなスレでそう結論付けてはいかん気がする、異常者が集まっている <>
nobodyさん<>sage<>2021/06/13(日) 16:13:37.22 ID:???.net<> >>431
何回か書いてるんだけどジョブバッチってのがあるのよ
https://readouble.com/laravel/8.x/ja/queues.html#job-batching <>
nobodyさん<>sage<>2021/06/13(日) 16:35:12.14 ID:???.net<> >>429
それやった段階でルールがどこで使われてるかが追えなくなっちゃうから
のっぴきならない事情でそのルールを変更せざるを得なくなった時に
影響範囲が全くわからなくて予想外の不具合起こしかねないからやりたくないのよね
チーム開発とそんな変更受けちゃダメってのは無しでお願いします <>
nobodyさん<>sage<>2021/06/13(日) 16:36:32.43 ID:???.net<> Laravelは独自の用語が多いから単語本来の意味と違ってたりして話がややこしくなる
そういう所は嫌い、というか普通にバッドプラクティスだろそれ <>
nobodyさん<>sage<>2021/06/13(日) 16:48:25.97 ID:???.net<> >>436
その観点だとモデルに書いても同じことが起こると思うし、バリデーションに限らず何かしらのクラスを複数箇所で使ってはならないんじゃないの?
というかバッチ用クラスのテストは書かないの? <>
nobodyさん<>sage<>2021/06/13(日) 18:15:15.30 ID:???.net<> >>438
サービスって単位での使いまわしはするけど
基本的にクラス単体を複数個所で利用するって事はしてないな
当然共通処理って部分での使いまわしは当然あるけどabstractでやってる
実際に使う場合はサービスプロバイダで必要なインターフェースが実装されたクラスをbindして
コンテナから呼び出して使ってる感じ
このやり方が全くの見当はずれだったりアンチパターンとかだったりしたら早急に修正しなきゃいけないから変だったら言って欲しいのよね <>
nobodyさん<>sage<>2021/06/13(日) 18:31:49.01 ID:???.net<> >>439
要員の必須スキルが上がって人を集め難くなりそうなんだけど
その仕組みで何人くらいのメンバーで開発してるの? <>
nobodyさん<>sage<>2021/06/13(日) 18:39:39.48 ID:???.net<> そろそろ別の話題にしてくんねえかな
いつまでやってるんだよ <>
nobodyさん<>sage<>2021/06/13(日) 18:49:44.98 ID:???.net<> >>440
プロジェクトの規模にもよるけど俺のほかに2人で外部に必要あればちょいちょいって感じ
設計とかインターフェースの部分の開発をやってもらう場合は確かに人が集め難いとは思うけど
どちらかっていうと能力が低くても依頼可能にしたかったからこうしてるんだよね
とはいえメソッドチェーンってなんすか?レベルまではカバーできないけど <>
nobodyさん<>sage<>2021/06/13(日) 18:59:18.05 ID:???.net<> >>441
.envをコミットするかしないかで延々議論していたころに比べれば健全だろ <>
nobodyさん<>sage<>2021/06/13(日) 22:55:51.29 ID:???.net<> で、.envはコミットするの? <>
nobodyさん<>sage<>2021/06/13(日) 23:10:23.25 ID:???.net<> するだろ <>
nobodyさん<>sage<>2021/06/13(日) 23:19:07.85 ID:???.net<> ・.envはコミットする必要がある
・/vendorはコミットする必要がある
・バリデーションルールはモデルに書くべき
・テストを書く必要は無い
・いかなる場合もバッチは必要無い
・jsonは脆弱性があるので使うべきではない <>
nobodyさん<>sage<>2021/06/13(日) 23:43:13.81 ID:???.net<> >>404
ネタにマジレスして悪いがその処理だと要件満たしてないw <>
nobodyさん<>sage<>2021/06/13(日) 23:46:43.57 ID:???.net<> >>421
cronで60秒ごとにキックして一瞬で終わるような処理と
夜間に数時間にわたって一括で走らせるような処理
この二つを同列に語るのはちょっと違うと思うよ <>
nobodyさん<>sage<>2021/06/13(日) 23:55:51.81 ID:???.net<> >>446
テスト書かないのだけは駄目だろ
他はわからんでもないが <>
nobodyさん<>sage<>2021/06/13(日) 23:57:49.62 ID:???.net<> >>404
1は会員登録および退会の時刻を見ればいいだけだから別に0時に処理する必要はない
2はテーブルに持つべき値ではない
3も同様
磁気テープの時代ならともかく、値を取得を得られるまでの期待値が0.1秒未満の今の時代に
なぜバッチ処理をするのか?
レスポンス改善の為にあらかじめCSVを作成して静的に配置しておくっていうならともかく、そういうわけでもないようだし・・・ <>
nobodyさん<>sage<>2021/06/14(月) 00:06:05.58 ID:???.net<> >>444-446
小さいころ数人でワイワイ砂場で遊んでたら知らない男の子が後から入ってきたからその子も含めてみんなで遊んでると
他の子が作った山とかを壊したり100万円持ってるとか意味わからん嘘ついたりを「やめて」って何回言ってもやる子だったから
またその子が砂場に来た段階でみんなで別の遊具に移動するようになって
誰もいない砂場でごく短時間だけ「楽しいなー」みたいなこと言いながら遊んでた「あの子」を思い出すからやめて・・・ <>
nobodyさん<>sage<>2021/06/14(月) 00:30:02.01 ID:???.net<> >>451
長い上に意味不明で読んで損した <>
nobodyさん<>sage<>2021/06/14(月) 00:41:42.72 ID:???.net<> 未だにバッチ処理とか組んでる老害居るのかよ
.envをコミットしてるガイジまで居るしとんでもない動物園だこりゃ <>
nobodyさん<>sage<>2021/06/14(月) 00:55:03.51 ID:???.net<> >>449
他も分からん方が多いわw <>
nobodyさん<>sage<>2021/06/14(月) 00:58:23.56 ID:???.net<> >>450
頭の中がおじいちゃんなのよ…
あまり責めないで <>
nobodyさん<>sage<>2021/06/14(月) 01:16:21.42 ID:???.net<> 零細vs老害 <>
nobodyさん<>sage<>2021/06/14(月) 02:11:20.10 ID:???.net<> >>450
想定会員数と用途とか情報が足りてないから想定可能なボトルネックは「ある」ものとして設計しなきゃならないと思うから
100万会員/dayで運用開始から現在までって仕様だった場合、どこかで破綻するでしょ <>
nobodyさん<>sage<>2021/06/14(月) 06:20:56.93 ID:???.net<> >>451
幼児特有の「アレ」な
幼児特有?w <>
nobodyさん<>sage<>2021/06/14(月) 06:48:03.41 ID:???.net<> >>450
例えば自由に停止再開できる有料サービスを契約している会員数もCSVに載せることになった場合でもそうする? <>
nobodyさん<>sage<>2021/06/14(月) 06:57:35.05 ID:???.net<> >>457
100万会員/dayの場合OSSのDBで扱えないだろうし言語にPHPを選ばないと思う <>
nobodyさん<>sage<>2021/06/14(月) 08:05:08.93 ID:???.net<> 100万会員、何? 登録? アクセス? <>
nobodyさん<>sage<>2021/06/14(月) 08:16:03.69 ID:???.net<> 毎日100万会員増えるサービスってどんなんや?
100万DAUのサービスならPHP/MySQLのもある、ソシャゲとか結構PHPだし俺も昔モバゲーのゲームをCakeで作った <>
nobodyさん<>sage<>2021/06/14(月) 08:16:05.43 ID:???.net<> >>461
注射打つ回数に決まってんだろ! <>
nobodyさん<>sage<>2021/06/14(月) 08:23:14.20 ID:???.net<> グラブルがPHPらしいしPHPで出来ないサービスなんて殆ど無いやろな <>
nobodyさん<>sage<>2021/06/14(月) 08:34:29.37 ID:???.net<> slackはLaravelらしいで。 <>
nobodyさん<>sage<>2021/06/14(月) 08:38:56.36 ID:???.net<> >>448
何論点ずらしてるのこの人 <>
nobodyさん<>sage<>2021/06/14(月) 08:45:22.50 ID:???.net<> むしろPHPよりはボトルネックになるのはDBの方じゃないかな? <>
nobodyさん<>sage<>2021/06/14(月) 08:48:42.34 ID:???.net<> それより>>459どうするのか気になる <>
nobodyさん<>sage<>2021/06/14(月) 09:02:27.24 ID:???.net<> >>459
だからそれも同じ
出力時に計算してCSVに出せばいいだろ <>
nobodyさん<>sage<>2021/06/14(月) 09:22:28.65 ID:???.net<> >>462
会員数としか明記されてないので
例えばアプリのインストールやログインとかのレポートなんかを提供するマーケティングツールをイメージした <>
nobodyさん<>sage<>2021/06/14(月) 09:23:29.71 ID:???.net<> バリデーションをモデルでやるのってそんなにおかしいか?
データはDBのテーブルに保存されるんだからバリデーションはそれに合わせるべきでしょ
ユーザーIDなんかはカラムにユニーク制約付けて、Laravelのバリデーションでcreate時にユニークチェックする
必須項目はNULL不許可にしてバリデーションでrequired
数値はint型のカラムにしてバリデーションでnumericまたはinteger
みたいになるだろ
テーブルに紐付いたり一番近いのはモデルなんだからカラムの属性はモデルにまとめて書くべき
普通fillableまたはguardedを指定すると思うけど同じようにrulesも書いとけばいいんだよ
コントローラーやコマンドはそれを呼び出して使えばいい <>
nobodyさん<>sage<>2021/06/14(月) 09:42:51.12 ID:???.net<> >>471
DBに投入するデータと入力データはかならずしも一致しない
例えば、パスワードなんてハッシュされてしまう <>
nobodyさん<>sage<>2021/06/14(月) 09:43:49.79 ID:???.net<> >>471
おかしくないと思うしあってもいいと思うけど
ユーザー属性によってバリデーションルールが変化するサービスの場合はどうするって問題が出てくるでしょ <>
nobodyさん<>sage<>2021/06/14(月) 09:47:30.70 ID:???.net<> >>472
完全一致する必要はない、むしろ普通は完全一致しない
けどバリデーションされる情報ってだいたいテーブルに紐付く情報だろ、多少の例外はあってもそこは無視できんだろ <>
nobodyさん<>sage<>2021/06/14(月) 09:50:14.64 ID:???.net<> >>473
そんなのどうにでもなるじゃん
Laravelのバリデーションルールにはいくらでも複雑な条件書けるぞ、足りなければルール自作すればいい
動的に変化する条件も書けるぞ <>
nobodyさん<>sage<>2021/06/14(月) 09:51:47.66 ID:???.net<> >>474
それ言い出したら、フロントに一番近いとこでやっても変わらんだろ
多少の例外があっても、基本的にフロントから来たデータをバリデーションすんだろ?
そこを議論してもしょうがないんだよ <>
nobodyさん<>sage<>2021/06/14(月) 10:01:29.38 ID:???.net<> >>476
・フロントから来たデータをバリデーションする
・DBに入るデータをバリデーションする
この考え方の違いか、俺はずっと後者だったから前者の考え方はこのスレの議論で初めて知った
バリデーションは何のために必要か?と言うとDBに不正なデータを渡さないためだから、後者の方がしっくり来るけど <>
nobodyさん<>sage<>2021/06/14(月) 10:03:24.32 ID:???.net<> >>471
Laravelが提供している標準を無視して、そんなオレオレ実装にこだわる理由がわからん。どうしてもモデルでやりたいなら、cakePHPやRails使えば良いのでは? <>
nobodyさん<>sage<>2021/06/14(月) 10:11:49.31 ID:???.net<> >>477
それは「なんちゃってMVC」しか知らないからだね。元々MVCは、入力値のチェックをコントローラーの責務としている。
俺はどっちでも良いと思ってるから、その仕組みが提供しているほうに合わせるべきだと思う。それをせずにわざわざ仕組みを変えようとして無駄に工数を使うやつは、仕事ができないやつだと思う。
極論、作るシステムのステークホルダー(エンジニアの除く)にとって、バリデーションがどこで行われているかはそのシステムの価値を決める上で一切関係が無い。 <>
nobodyさん<>sage<>2021/06/14(月) 10:18:25.16 ID:???.net<> >>478
標準を無視してオレオレ実装にこだわっているわけではない。
モデルに書くのも一理あるでしょ?って言ってるだけ。俺だってFormRequestのバリデーションも使うし。 <>
nobodyさん<>sage<>2021/06/14(月) 10:25:50.03 ID:???.net<> >>479
なんちゃってMVCで作ってるのはわかっている。本来のMVCでないとダメなんて思ってないし。
Laravelが提供してる方法ってFormRequestのバリデーションのことだろうけど、
モデルに書いてもあまり手間変わらないよ。
そもそも公式の例ではコントローラーにバリデーション書いてる。その
[
'title' => ['required', 'unique:posts', 'max:255'],
'body' => ['required'],
]
なんかの部分を、モデルに持って行くだけだよ。コントローラーでは
$request->validate(SomeModel::getRules());
のように使う。こうすれば他のコントローラーからも同じように使える。条件によってルールが変わる時は引数で指定する。 <>
nobodyさん<>sage<>2021/06/14(月) 10:26:59.67 ID:???.net<> あのさぁ、アプリの基本って、入口と出口を固める事なのな。
バリデーションは入口、エスケープは出口。
どうしてModelみたいな真ん中でバリデーションしようとする?
こんな基本的な事言わんとわからんの? <>
nobodyさん<>sage<>2021/06/14(月) 10:29:11.16 ID:???.net<> >>479
>極論、作るシステムのステークホルダー(エンジニアの除く)にとって、バリデーションがどこで行われているかはそのシステムの価値を決める上で一切関係が無い。
わかりやすい所に書かれていたり、うまいこと共通化できる所はしてある方が
バグの可能性が減って価値が上がるよ。 <>
nobodyさん<>sage<>2021/06/14(月) 10:31:56.43 ID:???.net<> >>482
真ん中じゃないじゃん。
モデルはデータに紐付くもので、データの入口と考える。
もちろんこれが唯一の正解じゃないから、本来のMVCがとかお前のMVCがどうとかは知らん。 <>
nobodyさん<>sage<>2021/06/14(月) 10:33:37.04 ID:???.net<> DB投入値の担保は、モデルの引数に型宣言かませばいい
https://speakerdeck.com/twada/php-conference-2016-original?slide=35
これで「出来ていいこと」が明確になる <>
nobodyさん<>sage<>2021/06/14(月) 10:40:00.83 ID:???.net<> >>475
実際に書いて試した事ないでしょ?
やったらわかるけどartisanコマンドの時にどうすんのこれってなるから
一つにまとめる事がダメって訳じゃないけど分岐していくやり方は
見通し悪くなるってのと分岐が増えると結合度が上がってどんどん変更に弱くなると思ってる <>
nobodyさん<><>2021/06/14(月) 10:45:28.78 ID:65mpymBy.net<> >>484
ごめん、頭の悪い子と話すの疲れるんだけどさ、
お前が作ってるの、一体何だ? バラの部品を複数作ってるのか?
何でアプリ全体で見ないで部品単位で見てるんだよ?
空港降りたら検疫して、駅に入る前に検疫して、電車に乗る前に検疫して、県境越えたら検疫して、電車に乗る前に検疫して、バスに乗る前に検疫して、宿に入る前に検疫して…
なんてやると思うか? 国に入ってきた時に一回だけだろ。
最初に1回きっちり検疫すればその後、どんなところを通ろうが関係ないだろ。効率って物を考えろよ。
というか、モデルはデータの入り口って、本物のバカなの?
RDBに対してデータを“出力”する場所だろ。だからエスケープが必要になる。
お前マジで、安全なアプリケーションの作り方とか、全く勉強してないだろ? <>
nobodyさん<>sage<>2021/06/14(月) 10:47:59.90 ID:???.net<> DBがモデルに一番近いからそこでバリデーションするって言い張る人に聞きたいんだけど
例えば携帯電話番号の入力フォームでは以下の入力を受け付ける
「09012341234」
「090-1234-1234」
「09001231234」
「090−0123−1234」
DBに格納すれる値は正規化して以下の通り
「09012341234」
って要件を実現するのにどうやってるの?
先に正規化してからバリデーションしてるわけ? <>
nobodyさん<>sage<>2021/06/14(月) 10:59:57.74 ID:???.net<> >>484
あと、もう一個言うとさ、
おまえのアプリではModelは常に1つなの?
Modelファイルが複数ある場合、どこでバリデーションするって言ってる?
流石に、各Modelでそれぞれバリデーションするとか言わないだろ?
じゃあ、どこ? 復数のModelの前?
そこはModelじゃなくて、つまりControllerじゃん。 <>
nobodyさん<>sage<>2021/06/14(月) 11:00:13.33 ID:???.net<> SOLID原則 <>
nobodyさん<>sage<>2021/06/14(月) 11:13:15.18 ID:???.net<> >>488
自分で答え書いてるじゃん
ユーザーの入力とDBに格納する形式が違うなら、
先にユーザーの入力値を整形した上でバリデーションしたらいいだけ <>
nobodyさん<><>2021/06/14(月) 11:17:35.38 ID:65mpymBy.net<> ちなみに、ネットの多数派の意見はどうなんだい?と思って検索してみて最初に出てきたのが、これで、
心の底から脱力した。
http://blog.64p.org/entry/2013/11/26/131914
『言いたいことは「結局、昔はサーバサイドで懇切丁寧なエラーメッセージを出すためにModelではなくControllerでバリデーションに関する知識が必要だったけど 今はJavaScriptでやるから不要だよね111」ってことです。』
そういう事してるから、フロントとサーバーサイドでバリデーションルールが違うみたいな事が発生してくるんだろ。 <>
nobodyさん<><>2021/06/14(月) 11:21:34.06 ID:65mpymBy.net<> 実際、俺がいじるわけじゃないからどこでバリデーションしようとそいつの勝手ではあるんだけどさ、
どこでも同じバリデーションが使えるような実装じゃないと、メンテ大変だろ?
で、この話って元々なんだったんだっけ? <>
nobodyさん<>sage<>2021/06/14(月) 11:23:12.90 ID:???.net<> ageてるやつの能書きがキモいって話題
引きこもりは出てくんなよ <>
nobodyさん<>sage<>2021/06/14(月) 11:24:29.11 ID:???.net<> バリデーションはデータの受け渡しが発生するたびに行う
1.入力時にJavascriptでチェック
2.フォームがPOSTされるときにバックエンド側でチェック
3.バッチ処理が走るときにチェック
4.ビジネスロジックが走るときにチェック
5.CSVとして出力するときにチェック
少なくとも入力されてからCSVとして出力されるまで5回はチェックされる
なんらかのロジックが走るたびにチェックされるから実際は何十回もする <>
nobodyさん<>sage<>2021/06/14(月) 11:29:30.70 ID:???.net<> >>491
いやおかしいだろ
そしたらパスワードもハッシュしてからバリデーションすんのか? <>
nobodyさん<>sage<>2021/06/14(月) 11:30:04.85 ID:???.net<> >>488
バリデーションルールを4つ書いて、saveをオーバーライドして文字列加工でよくない? <>
nobodyさん<><>2021/06/14(月) 11:35:31.83 ID:65mpymBy.net<> >>494
まーた頭おかしいの湧いてきたし。
内容に関係ないことで頭に血を上らせて、おまえ、脳に障害でもあんのか? <>
nobodyさん<>sage<>2021/06/14(月) 11:37:13.01 ID:???.net<> >>489
>>481にコードも書いたからよく見てくれ
俺が提案してるのは、コントローラー(FormRequestでもいいけど)でバリデーションする際、ルールはモデルに書いてあるのを参照するって事だ
Laravel公式のやり方のほんの一箇所変えてるだけなんだよ
その方が使い回しとかメンテしやすくていいじゃない?って言ってる <>
nobodyさん<>sage<>2021/06/14(月) 11:38:52.46 ID:???.net<> 月曜の朝から熱いねおっさんなのに <>
nobodyさん<>sage<>2021/06/14(月) 11:40:04.64 ID:???.net<> >>495
2と3しかやらないなあ
1はうまいことやればユーザビリティが上がる可能性はあるけど、大抵そこまでやらんな
4と5はよくわからん、出力時にバリデーションてどういうことだ?整形じゃなくて? <>
nobodyさん<>sage<>2021/06/14(月) 11:41:30.86 ID:???.net<> 今日月曜か <>
nobodyさん<>sage<>2021/06/14(月) 11:41:54.32 ID:???.net<> dbもformも通さないバリデーションはどうやってチェックしたら良いですか? <>
nobodyさん<>sage<>2021/06/14(月) 11:42:20.31 ID:???.net<> フロントのバリデーションはユーザーの為
バックのバリデーションはシステムの為 <>
nobodyさん<><>2021/06/14(月) 11:42:27.00 ID:65mpymBy.net<> >>495
おまえ、強迫性障害かなんかなの?
https://fdoc.jp/byouki-scope/features/covd-19_obsessive-compulsive-disorder/ <>
nobodyさん<>sage<>2021/06/14(月) 11:45:30.32 ID:???.net<> >>501
> 出力時にバリデーションてどういうことだ?整形じゃなくて?
そいつ、バリデーションの意味わかってねぇんだろ。
CSV用のフォーマットに変えるって事なら、それ、バリデーションじゃねぇよ。 <>
nobodyさん<>sage<>2021/06/14(月) 11:53:29.60 ID:???.net<> >>503
目視 <>
nobodyさん<>sage<>2021/06/14(月) 11:55:53.31 ID:???.net<> 平日の昼間から頭おかしい奴ワラワラで草 <>
nobodyさん<>sage<>2021/06/14(月) 12:02:50.57 ID:???.net<> >>496
モデルバリデーション厨はガイジだから触らないほうがいいぞ <>
nobodyさん<>sage<>2021/06/14(月) 12:04:46.36 ID:???.net<> 俺以外みんな頭おかしいわこのスレ <>
nobodyさん<>sage<>2021/06/14(月) 12:54:27.83 ID:???.net<> システム屋さんは結合テスト、システムテストで普通にシステムからのみDBデータ作るけど
システム屋さん以外の人は手動でデータを入れたり更新削除したりしちゃう。怖い怖い <>
nobodyさん<>sage<>2021/06/14(月) 12:56:47.38 ID:???.net<> それを防いでいないシステム屋が悪い <>
nobodyさん<>sage<>2021/06/14(月) 13:03:35.20 ID:???.net<> >>499
所詮個人の感想じゃん。手間が増えることに変わり無いし、その実装のルールをチームで共有して維持しなくてはならなくなる点は全く考えてないのでは?
なぜそこまでmodelでのバリデーションに拘るのか謎。他のフレームワーク検討したら? <>
nobodyさん<>sage<>2021/06/14(月) 13:08:55.85 ID:???.net<> 凄いスレが進んでてワロタw <>
nobodyさん<>sage<>2021/06/14(月) 13:09:41.69 ID:???.net<> >>513
FormRequest厨顔真っ赤で草 <>
nobodyさん<>sage<>2021/06/14(月) 13:20:24.88 ID:???.net<> 普通のシステム環境ならインフラ担当が居て環境が分けられてて本番DBを直接手動では使えなくしてる。
システム屋さん以外の人が安く作るとそうはできない <>
nobodyさん<>sage<>2021/06/14(月) 13:30:50.40 ID:???.net<> ここ本当にlaravelスレなの?
Dependency injection関連のワードが出てこないんだけど <>
nobodyさん<>sage<>2021/06/14(月) 13:38:47.42 ID:???.net<> じゃあお前が出せよ <>
nobodyさん<>sage<>2021/06/14(月) 13:55:15.81 ID:???.net<> DIなんか、必要ないしなぁ…、本来は。 <>
nobodyさん<>sage<>2021/06/14(月) 13:59:11.07 ID:???.net<> >>517
コンストラクタインジェクションを使ってサービスを渡しているけど、状況に応じて使い分けはしてないな <>
nobodyさん<>sage<>2021/06/14(月) 14:10:31.25 ID:???.net<> さすがphpはエンジニアの中でも底辺が好んで使うと言われるだけのことはある <>
nobodyさん<>sage<>2021/06/14(月) 14:15:52.73 ID:???.net<> お前らこんな議論白熱するならLaravelのgithubリポジトリで
バッチ処理時にバリデーションについてissue挙げてみたら? <>
nobodyさん<>sage<>2021/06/14(月) 14:18:46.32 ID:???.net<> 英語できないので無理です <>
nobodyさん<>sage<>2021/06/14(月) 14:21:14.27 ID:???.net<> アホの上にこういう周回遅れの奴が出て来るから収拾付かんのだよな
過去に出て却下されてるって何度もスレで言及されてるやん <>
nobodyさん<>sage<>2021/06/14(月) 14:44:55.72 ID:???.net<> >>521
零細と低収入しか居ないしね
大企業向けワクチン接種の枠の人も多分ここには居ない <>
nobodyさん<>sage<>2021/06/14(月) 17:37:41.09 ID:???.net<> >>525
同じ穴のムジナですな <>
nobodyさん<>sage<>2021/06/14(月) 18:13:51.65 ID:???.net<> >>525
お前と一緒にしないでくれ
俺は大企業向けワクチン接種の対象だわ <>
nobodyさん<>sage<>2021/06/14(月) 18:49:14.35 ID:???.net<> >>525
>>371ね。俺と上のやつで少なくとも2人は居るが? <>
nobodyさん<>sage<>2021/06/14(月) 20:08:44.64 ID:???.net<> 俺は医療関係者枠で打っちゃったよ。丸2日パソコン打つ気になれなかったよ。 <>
nobodyさん<>sage<>2021/06/14(月) 21:34:09.82 ID:???.net<> SESSION_LIFETIMEってlast_activityからの時間ですよね?
例えば120分の設定だった場合、ログインから60分の時点でページ遷移するとそこから120分非アクティブでセッション破棄されてログアウトされる
これをログインからの時間にすることはできますか
120分の設定でログインから60分の時点でページ遷移してもそこから60分(ログインから120分)非アクティブでセッション破棄されてログアウトされる
というようにしたいです <>
nobodyさん<>sage<>2021/06/14(月) 22:06:32.60 ID:???.net<> 頑張ればできます <>
大手勤務<>sage<>2021/06/14(月) 22:22:17.65 ID:???.net<> >>530
バージョン書いたら教えてあげるよ <>
nobodyさん<>sage<>2021/06/14(月) 22:50:08.82 ID:???.net<> >>532
Version6系です <>
大手勤務<>sage<>2021/06/14(月) 23:07:05.83 ID:???.net<> >>533
1. Illuminate\Session\Middleware\StartSession を継承するミドルウェアを作る
2. 1. のクラスで handle() をオーバーライドする。中身はとりあえず継承元と全く同じ。
3. 2. にメソッド内の $this->saveSession($request); に注目する。
4. 3. の実行に条件をつける。
5. if (Route::current()->getName() === 'login') { $this->saveSession($request); } みたいな。
6. App\Http\Kernel から \Illuminate\Session\Middleware\StartSession::class を消す
7. 消した箇所に 1. で作ったミドルウェアのクラス名を入れる。
以上
多分動くと思う
動かしてないけど <>
nobodyさん<>sage<>2021/06/14(月) 23:30:10.33 ID:???.net<> >>534
できましたありがとうございます。 <>
nobodyさん<>sage<>2021/06/14(月) 23:30:36.59 ID:???.net<> できたのかよw 大手勤務君有能すぎるだろ <>
nobodyさん<>sage<>2021/06/14(月) 23:48:52.06 ID:???.net<> やっぱり零細で簡単なシステム作っているやつより
大手で複雑なシステム作ってるほうが技術力あるんだなぁ <>
nobodyさん<>sage<>2021/06/15(火) 01:46:38.86 ID:???.net<> すべて自作自演だったらどうしよう <>
nobodyさん<>sage<>2021/06/15(火) 03:03:55.12 ID:???.net<> 大手勤務すげえなおい
なんでわかるんだよ <>
nobodyさん<>sage<>2021/06/15(火) 11:08:36.31 ID:???.net<> そらやったことがあるからだろう <>
nobodyさん<>sage<>2021/06/15(火) 14:33:47.85 ID:???.net<> >>539
大手勤務だからというよりは彼が一握りの天才だからだと思う <>
nobodyさん<>sage<>2021/06/15(火) 15:51:23.27 ID:???.net<> ここの低レベルな争いの空気を一瞬で変えてしまったww <>
nobodyさん<>sage<>2021/06/15(火) 15:55:38.05 ID:???.net<> このスレに本当に天才がいれば、あの延々続いたくだらない論争を一発論破してくれたんだろうか <>
nobodyさん<>sage<>2021/06/15(火) 16:44:09.65 ID:???.net<> 全部自演だけどな <>
nobodyさん<>sage<>2021/06/15(火) 18:33:55.17 ID:???.net<> 大手勤務様の技術力の高さに驚愕
簡単な仕様をいっただけで構築手順をレスしてくれるとか最高すぎませんか? <>
nobodyさん<>sage<>2021/06/15(火) 18:44:04.88 ID:???.net<> やったー、かっこいー! <>
nobodyさん<>sage<>2021/06/15(火) 19:13:01.16 ID:???.net<> 自演やなw <>
nobodyさん<>sage<>2021/06/15(火) 19:35:01.49 ID:???.net<> やっぱワッチョイ無いと自演し放題だな <>
nobodyさん<>sage<>2021/06/15(火) 19:39:42.93 ID:???.net<> コテ付けてまで自演とか自己開示欲はんぱねえなw
さすが大手勤務だ、俺たち零細には真似できねーw <>
nobodyさん<>sage<>2021/06/15(火) 21:10:42.04 ID:???.net<> >>530の質問に具体的な実装を提示できなかった時点でお前らの負けだよ <>
nobodyさん<>sage<>2021/06/15(火) 21:29:29.40 ID:???.net<> 別に勝とうとか思ってないし <>
nobodyさん<>sage<>2021/06/15(火) 22:10:43.11 ID:???.net<> これだからワッチョイなしはやめられない
ほんと楽しいわ <>
nobodyさん<>sage<>2021/06/15(火) 22:13:32.85 ID:???.net<> 別の板に立てたバカがいたけどそういうスレは誰も来ないからなw <>
nobodyさん<>sage<>2021/06/15(火) 23:06:29.44 ID:???.net<> view側でcontrollerのメソッドを利用したいんですが
どういう書き方をすればいいでしょうか?
初心者ですいませんがどなたか教えて下さい <>
nobodyさん<>sage<>2021/06/15(火) 23:45:56.55 ID:???.net<> ちょっと考えても分からんのなら、
そもそもその手法が間違ってると思った方が良いかもね <>
大手勤務<>sage<>2021/06/15(火) 23:49:09.77 ID:???.net<> >>554
自分自身であるthisをviewに渡せばview側でcontrollerのメソッドを実行可能です <>
nobodyさん<>sage<>2021/06/15(火) 23:53:55.62 ID:???.net<> その発想は思いつきませんでした。
確かにcontroller毎viewに渡したらview側でcontrollerのメソッドを実行できました。
教えていただきありがとうございました。 <>
大手勤務<>sage<>2021/06/15(火) 23:58:20.14 ID:???.net<> >>554
それはMVCとかけ離れてるので設計がおかしいです
その呼びたいメソッドがviewの仕事をしているんじゃないですか?
ちゃんと見直してください <>
nobodyさん<>sage<>2021/06/16(水) 00:02:08.51 ID:???.net<> 言われてみればMVCじゃないですね
viewのメソッドにできないか考えてみます
教えていただきありがとうございました <>
nobodyさん<>sage<>2021/06/16(水) 00:02:45.29 ID:???.net<> 一人で何やってんだこいつ <>
nobodyさん<>sage<>2021/06/16(水) 00:04:50.98 ID:???.net<> 前回敬語使ってなかったろ
もっとうまく成り済ませよ <>
nobodyさん<>sage<>2021/06/16(水) 00:18:19.01 ID:???.net<> >>561
突然Laravelスレでなんで敬語の話を? <>
nobodyさん<>sage<>2021/06/16(水) 00:21:32.45 ID:???.net<> 大手勤務の人はやっぱり違うな ちゃんと色々な質問に適切にこたえてくれるし
このスレの零細起業の連中とは格が違うね <>
nobodyさん<>sage<>2021/06/16(水) 01:46:25.47 ID:???.net<> CSRF対策について質問があります。
特定のページだけCSRF対策をする方法はあるのでしょうか? <>
nobodyさん<>sage<>2021/06/16(水) 01:55:38.89 ID:???.net<> 恐ろしい質問があらぬ方向からやってきた! <>
nobodyさん<>sage<>2021/06/16(水) 11:47:10.51 ID:???.net<> 大手勤務さんは自分が書いた質問以外には答えられません <>
nobodyさん<>sage<>2021/06/16(水) 12:13:04.47 ID:???.net<> >>530
これに対してのやり方が
>>533
って流れって釣りだよな?
この質問って120分で強制ログアウトさせたいって話だよね?
セッションでどうにかしようとしてる時点で解答ありきの質問じゃね?
まあ大芋勤務してるとベストプラクティスなのかもしれんが <>
nobodyさん<>sage<>2021/06/16(水) 12:16:28.43 ID:???.net<> どう見ても自演なんだけどさ、
自分が大手で働いてるのを自演までして自慢するのはさすがに草 <>
nobodyさん<>sage<>2021/06/16(水) 12:32:09.21 ID:???.net<> まぁ大手君の中では強制ログアウトをセッションでやるのがベストプラクティスなんじゃね?
俺はそんな面倒なやり方しないけど <>
nobodyさん<>sage<>2021/06/16(水) 12:43:15.35 ID:???.net<> >>569
ではどのように実装するかご高説願おうじゃないか <>
nobodyさん<>sage<>2021/06/16(水) 13:11:04.35 ID:???.net<> >>570
セッションなんか使用せずDBにログイン時間を保存しておけばいいだろ <>
nobodyさん<>sage<>2021/06/16(水) 13:20:03.99 ID:???.net<> >>570
大手勤務君、名無しでイライラしながらレスしてて草 <>
nobodyさん<>sage<>2021/06/16(水) 14:05:07.31 ID:???.net<> そもそも最終ログイン時刻を残さないユーザー認証なんてガバガバすぎじゃ…
basic認証でログインするならあるかもしれないが <>
nobodyさん<>sage<>2021/06/16(水) 14:15:25.64 ID:???.net<> >>571
俺もこっちが単純で分かりやすい気がするわ
わざわざkernel書き換えるとか大袈裟なんだよね <>
nobodyさん<>sage<>2021/06/16(水) 14:15:32.08 ID:???.net<> >>573
やめたれw <>
nobodyさん<>sage<>2021/06/16(水) 14:40:06.58 ID:???.net<> 大芋勤務君「ミドルウェアを作って〜、Kernelを書き換えて〜、以上。動かしてはない(ドヤw自演もしたろw」
謎の名無し「セッション使わないでDBにログイン時間保存すればいいだけ」
この差よ… <>
nobodyさん<>sage<>2021/06/16(水) 15:31:17.34 ID:???.net<> ゴミカスが負けを認められずに騒ぎ出した <>
nobodyさん<>sage<>2021/06/16(水) 15:36:52.53 ID:???.net<> 社員数20人って大手とは言わないと思うんだけどこのスレでは大手扱いなの? <>
nobodyさん<>sage<>2021/06/16(水) 15:50:31.99 ID:???.net<> >>574
この方法もミドルウェア作ってカーネルへの登録も必要じゃね? <>
nobodyさん<>sage<>2021/06/16(水) 16:07:13.04 ID:???.net<> >>579
rootMiddlewareに追加しないで
controllerかrouteでやるって事でしょ <>
nobodyさん<>sage<>2021/06/16(水) 16:10:04.43 ID:???.net<> >>580
だとしたら、大手くんの大勝利じゃん <>
nobodyさん<>sage<>2021/06/16(水) 16:42:06.08 ID:???.net<> >>580
コントローラーで認証チェックはちょっと遅すぎるかな…
ルートだとセッション始まってないからユーザーIDの特定無理じゃない? <>
nobodyさん<>sage<>2021/06/16(水) 16:53:42.50 ID:???.net<> >>582
認証用ミドルウェアってこんな感じの実装だと思うんだけど
作ったやつの部分に例のミドルウェアを入れとくイメージ
Route::group(['middleware' => ['auth:sanctum', 'verified','作ったやつ'] ],function (Router $router ){
$router->get('users' , 'コントローラー' )->name('users');
}) ; <>
nobodyさん<>sage<>2021/06/16(水) 16:57:56.05 ID:???.net<> あ、前提条件としてroutes/web.phpに書いてあるから
webのミドルウェアグループは読み込んでる前提ね <>
nobodyさん<>sage<>2021/06/16(水) 16:59:18.00 ID:???.net<> >>580
rootMiddlewareって何だ
routeMiddlewareのこと? <>
nobodyさん<>sage<>2021/06/16(水) 17:04:52.38 ID:???.net<> >>585
あ。。。ごめん普通に
間違えてたrouteMiddleware
この間違いはあかんね <>
nobodyさん<>sage<>2021/06/16(水) 17:27:54.14 ID:???.net<> >>583も結局routeMiddlewareへの登録必要(Kernelを書き換える)なのでは
そもそもなぜKernel書き換えたくないのか知らんけど <>
nobodyさん<>sage<>2021/06/16(水) 17:52:35.68 ID:???.net<> >>587
別に>>574ここでKernelに〜って言いだしたの俺じゃないんだけどね
でもサービスとして分離する事考えるとサービスプロバイダでaliasの登録するか
['auth:sanctum', 'verified',\Package\Name\Middleware\作ったヤツ::class]
的なやり方しちゃう事が多いかも <>
nobodyさん<>sage<>2021/06/16(水) 19:20:03.78 ID:???.net<> ホントの大手ならlaravelなんか使わないで独自FW作ってるでしょ <>
nobodyさん<>sage<>2021/06/16(水) 19:30:55.47 ID:???.net<> そんなことはないと思うが
案件次第 <>
nobodyさん<>sage<>2021/06/16(水) 19:52:10.08 ID:???.net<> 今時独自FWなんて作ると思うか? <>
nobodyさん<>sage<>2021/06/16(水) 20:07:52.79 ID:???.net<> DBにログイン時間保存してどうすんだ?毎アクセスごとにチェックして2時間経ったらログインに飛ばすの?
一定時間毎にログアウトさせて途中の作業パアにしてくれるクソシステムあるけどあれお前らが作ってんのか <>
nobodyさん<>sage<>2021/06/16(水) 20:12:12.16 ID:???.net<> >>589
根拠ゼロで草 <>
nobodyさん<>sage<>2021/06/16(水) 20:17:13.52 ID:???.net<> 保険屋さんとかデータ系とかJavaで自前で作ってる現場多かったよ <>
nobodyさん<>sage<>2021/06/16(水) 20:17:23.57 ID:???.net<> >>592
それはさすがに知らねーよ
大手勤務の俺が120分でログアウトする仕組みで無双した件的なラノベの矛盾点が論点なんだから <>
nobodyさん<>sage<>2021/06/16(水) 20:20:13.41 ID:???.net<> 結局DBの時間見るとのセッション期限を更新しないのはどっちが良いんだよ <>
nobodyさん<>sage<>2021/06/16(水) 21:03:26.40 ID:???.net<> どっちでも良いだろ
どうせ大してアクセスのないサイトだろ <>
nobodyさん<>sage<>2021/06/16(水) 21:03:43.31 ID:???.net<> このスレの総意としては>>534のやり方を推奨だよ <>
nobodyさん<>sage<>2021/06/16(水) 21:06:57.77 ID:???.net<> スレの総意おじさんもずっとこのスレいるよな
的外れなことばっかり言う <>
nobodyさん<>sage<>2021/06/16(水) 21:29:26.18 ID:???.net<> お前ら本当に暇なんだな
大手だの零細以前にまず働いてんのか? <>
nobodyさん<>sage<>2021/06/16(水) 21:40:00.79 ID:???.net<> 半分くらいは実際に仕事で使ってそうだけど
残り半分は趣味とかやろな <>
nobodyさん<>sage<>2021/06/17(木) 01:10:46.72 ID:???.net<> ここにいる全員がその半分に属してるんだよ <>
nobodyさん<>sage<>2021/06/17(木) 06:46:12.22 ID:???.net<> ほんとにバカしか居ねぇなぁ…。 <>
nobodyさん<>sage<>2021/06/17(木) 07:28:04.84 ID:???.net<> お前だってそうだろ <>
nobodyさん<>sage<>2021/06/17(木) 07:38:58.35 ID:???.net<> アプリ側で時間管理して超過したら強制ログアウトでええやろ <>
nobodyさん<>sage<>2021/06/17(木) 07:42:06.92 ID:???.net<> >>596
ロードバランサ使ったりAWSで複数インスタンス使ってるような構成だとDBでセッション管理してると思う
だから今回のような疑問が出てくる時点でおそらくシステム構成を理解できてない
もしくは既存システムをいじりたくないのであれば別途監視アプリを作って常駐させる
C言語使えるならこっちのほうが楽かもね <>
nobodyさん<>sage<>2021/06/17(木) 07:47:30.33 ID:???.net<> >>589
独自FW作るのはLaravel以前からやってる案件
cakeの頃に独自FW作るのが流行った
codeigniterに皮かぶせて独自FWっていってるのもあったな
とにかく一世代前の話
昔からやってる人は慣れてる独自FWで揃えたいっていうのもあるだろう
会社として複数FWを利用すると教育コストがかかっちゃうから一度採用したFWは変えられないという都合もある
ただ、新陳代謝が一巡してるであろう今の時期になってもまだ独自FWのままっていうのは
特殊な事情があるのか、もしくは開発者が入れ替わってない(高齢化)のか、もしくは開発者のレベルが低すぎて
言われたままやる人しかおらずもはやFW入れ替えなんていうことをするパワーがないのだろう
独自FWっていうのは下請け企業が他社に仕事を取られない為の難読化テクニックの一つ <>
nobodyさん<>sage<>2021/06/17(木) 07:48:57.47 ID:???.net<> >>606
DBってリレーショナルDBのことか?
そんなとこでセッション管理しないだろ
今までの現場はほぼRedisだわ <>
nobodyさん<>sage<>2021/06/17(木) 08:03:25.51 ID:???.net<> >>608
どっちでもいいんちゃう?
DBでも大して遅くはならんやろ <>
nobodyさん<>sage<>2021/06/17(木) 08:05:12.58 ID:???.net<> >>608
インフラ設計したことある?IaaSとかで売上の立たない業務システム作るときは、月額のインフラコスト少しでも減らしたいからKVSじゃなくてDB使うケースはありえるでしょ。
わざわざセッションドライバやキャッシュドライバにDBが用意されているのはなぜか考えような。 <>
nobodyさん<>sage<>2021/06/17(木) 08:05:30.80 ID:???.net<> 過疎システムなら別にRDBで管理しようがRedisで管理しようがあんま変わらないけど、
ロードバランサで負荷分散が必要になる規模だとRDBでセッション管理するのは非効率極まりないね <>
nobodyさん<>sage<>2021/06/17(木) 08:07:11.27 ID:???.net<> RedisってNoSQLだし、そりゃRDBよりも高速だよね <>
nobodyさん<>sage<>2021/06/17(木) 08:09:41.75 ID:???.net<> > ロードバランサ使ったりAWSで複数インスタンス使ってるような構成だとDBでセッション管理してると思う
↓
> IaaSとかで売上の立たない業務システム作るときは、月額のインフラコスト少しでも減らしたいからKVSじゃなくてDB使うケースはありえるでしょ。 <>
nobodyさん<>sage<>2021/06/17(木) 08:10:53.06 ID:???.net<> どうせDBアクセスしまくるんだからセッション管理分が1、2回ぐらい増えても大してレスポンス変わらんやろ <>
nobodyさん<>sage<>2021/06/17(木) 08:13:21.38 ID:???.net<> >>613
いやさすがに別人だろ…
同一人物だったら笑うが、ワッチョイ無いのが悔やまれるな <>
nobodyさん<>sage<>2021/06/17(木) 08:28:34.83 ID:???.net<> >>607
自前FWでドキュメントもある所もあった。自前FWを作ったコストを相殺できるくらいには各種案件に使おうとしてるようだった <>
nobodyさん<>sage<>2021/06/17(木) 08:35:34.07 ID:???.net<> >>616
独自FWだと下請けに出すときに困るんだよ
というか出された下請けが困る
つまりワイが困る <>
nobodyさん<>sage<>2021/06/17(木) 08:36:02.14 ID:???.net<> 独自FWはバージョン管理で破綻しやすい
パブリックなFWだと案件のほうをあわせるしかない
しかし、独自FWだとFWを案件にあわせていく
案件の数だけ枝がわかれた独自FWなんてただの悪夢だ <>
nobodyさん<>sage<>2021/06/17(木) 08:37:39.20 ID:???.net<> composerはそもそも使ってるのかな? <>
nobodyさん<>sage<>2021/06/17(木) 09:41:33.08 ID:???.net<> >>614
誰もレスポンス速度のこと言ってないよ
安いRedisを使うか高いRDBを使うか、コストの話だよ <>
nobodyさん<>sage<>2021/06/17(木) 09:50:44.17 ID:???.net<> >>613
何が言いたいのか詳しく。ちなみに>>606は俺じゃないけどな。 <>
nobodyさん<>sage<>2021/06/17(木) 09:51:25.32 ID:???.net<> 業務に使ってるRDBMSを使いまわしたってかまわないし
セッション用にNOSQLを使う場合もあるだろう
細かい条件を決めてベストを尽くすのがおまえらの仕事
ここで何も聞かずにベストプラクティスが決まるようならおまえらの仕事は不要だよ
予算ないならRDBMS1台とロードバランサー1台、インスタンス1台の構成で
アクセス増えてきたら動的にインスタンス起動ってところじゃないのかな
本当に金かけたくないならインスタンス1台に全盛りでスケーラビリティなしだ <>
nobodyさん<>sage<>2021/06/17(木) 09:56:11.83 ID:???.net<> ロードバランサーの用途を負荷分散のためだけとか思ってる奴が何人か居るんだな。冗長化必須の場合もロードバランサーで複数のインスタンス使うよ。
業務システムだと負荷は無くても落としたらしばかれるからそういう構成になる。まぁ零細だと多少落ちてもそんなもんだって許されるのかもしれないが。 <>
nobodyさん<>sage<>2021/06/17(木) 10:07:56.12 ID:???.net<> >>619
独自FWの場合、composerは使わない
独自FWのメリットはソースコードを非公開にできることが大きい
公開することによって脆弱性が見つかる場合もあるから <>
nobodyさん<>sage<>2021/06/17(木) 10:37:16.95 ID:???.net<> いい加減独自FWなんて負債以外の何者にもならないって、皆痛い目して学んどるやろ
まあ非独自にしたって100%解決はせんけど <>
nobodyさん<>sage<>2021/06/17(木) 11:00:02.08 ID:???.net<> >>624
OSSの思想と真逆のアプローチをとるんだな
公開して皆で脆弱性を見つけて修正できるという思想、
非公開にすれば脆弱性を見つけるのが難しくなるという思想。
日本らしいといえば日本らしいな。 <>
nobodyさん<>sage<>2021/06/17(木) 11:15:57.65 ID:???.net<> 毎日のようにSQLインジェクションくさいアクセスログを見ている身としては、非公開FWのほうが安全てのは思考停止すぎるよとだけ言っておく。 <>
nobodyさん<>sage<>2021/06/17(木) 11:28:39.27 ID:???.net<> composerでどうにかなる程度の枝しか作ってないと思ってるのか?
案件ごとに独自進化する地獄を見せつけてやりたい
案件バージョンとFWバージョンのグリッドを見て涙するがいい <>
nobodyさん<>sage<>2021/06/17(木) 11:42:55.10 ID:???.net<> なんでドヤ顔でバッドノウハウ自慢してるんだ <>
nobodyさん<>sage<>2021/06/17(木) 11:52:04.34 ID:???.net<> 囚人はつながれた鎖の大きさでマウントをとる <>
nobodyさん<>sage<>2021/06/17(木) 11:52:55.96 ID:???.net<> なにそれいい言葉だなどこで覚えたの <>
nobodyさん<>sage<>2021/06/17(木) 12:07:09.91 ID:???.net<> 自前FW作ってる所はVPCで業務に使ってるとかそんなのだった気がする。確かに案件毎の別バージョンは地獄っぽかった <>
nobodyさん<>sage<>2021/06/17(木) 13:27:43.67 ID:???.net<> >>627
それ言うほど問題か?SQLインジェクションなんて真っ先に対策するじゃん
XSSとかCSRFとかある程度の脆弱性対策してから開発するだろ <>
nobodyさん<>sage<>2021/06/17(木) 13:42:57.50 ID:???.net<> アメリカ人「OSSにすれば脆弱性が見つかる」
日本人「OSSにすれば脆弱性が見つかる」 <>
nobodyさん<>sage<>2021/06/17(木) 13:50:26.10 ID:???.net<> >>633
その対策がガバガバだったらどうするの? <>
nobodyさん<>sage<>2021/06/17(木) 13:54:35.52 ID:???.net<> >>635
そんなレベルのやつはOSSフレームワーク使っても脆弱なシステムしか作れんよ
根っこが理解できてないんだから <>
nobodyさん<>sage<>2021/06/17(木) 14:01:44.56 ID:???.net<> >>633
そういうことではなくて、独自だろうが何だろうが、外に出す以上は一定の脅威に晒されることに変わりがなく、コードから脆弱性を見つけられないという点は何ら安全を保証するものでもないし、公開しているFWより安全であることの証明にもならないって指摘。 <>
nobodyさん<>sage<>2021/06/17(木) 15:51:52.25 ID:???.net<> Web公開したらまっさきに攻撃してくるのがトレンドマイクロ <>
nobodyさん<>sage<>2021/06/17(木) 17:33:38.73 ID:???.net<> 20年ぐらい前のペーペーの頃、SQLインジェクション(実際には実行できない)があるって
見知らぬ奴がわざわざお問合せフォームから連絡してきたっけ
当時は不正アクセス防止法とかないから、攻撃しようと思えばできたろうけど
単に教えてくるって良いやつだったんだな <>
nobodyさん<>sage<>2021/06/17(木) 18:03:54.76 ID:???.net<> >>633
一般的な会社は画面に「データを返してほしかったらビットコインをよこせ(意訳)」って表示されてから対策をはじめるんだよ <>
nobodyさん<>sage<>2021/06/17(木) 18:04:54.95 ID:???.net<> >>636
さすがにそれは違うだろ
少なくともオレオレFWで作るよりははるかに安全 <>
nobodyさん<>sage<>2021/06/17(木) 18:04:55.83 ID:???.net<> >>634
海外の有名FWと公開したところで誰も使わないであろう弊社FWを比較するのはちょっと違和感を感じる <>
nobodyさん<>sage<>2021/06/17(木) 18:07:22.40 ID:???.net<> >>638
githubを巡回してるロボいるよな
あれAWS社は有名だけどあとはどこが巡回してるんだ <>
nobodyさん<>sage<>2021/06/17(木) 18:17:59.36 ID:???.net<> >>640
え、お前の会社が日本の標準なの? <>
nobodyさん<>sage<>2021/06/17(木) 18:27:41.08 ID:???.net<> >>644
社名に日本って入ってるし <>
nobodyさん<>sage<>2021/06/17(木) 20:33:27.24 ID:???.net<> LaravelでFWの素の状態を知ってから他のFWを触ると面白いよね。
あーこの部分をこうしてるんだーってFW制作者の工夫が分かるようになる。
そんでもってやっぱSymfonyとCakeは勉強になるチューニングしてあって評価の高さも納得できる。 <>
nobodyさん<>sage<>2021/06/17(木) 21:18:29.83 ID:???.net<> Cakeももう少し頑張ってくれたら良いんだけどね <>
nobodyさん<>sage<>2021/06/17(木) 21:38:11.06 ID:???.net<> cakeはなぜ廃れたんだ?
オフィシャルサイトは良さげなのに <>
nobodyさん<>sage<>2021/06/17(木) 21:50:39.37 ID:???.net<> Laravelが使いやすいから <>
nobodyさん<>sage<>2021/06/17(木) 21:51:54.09 ID:???.net<> Cakeと比べてどう使いやすいの?速度は遅いみたいだけど(キャッシュ無しで <>
nobodyさん<>sage<>2021/06/17(木) 22:30:37.91 ID:???.net<> >>650
cakeとの比較だと
・認証周りの機能があらかじめ用意されている
・テンプレートエンジンがあらかじめ用意されている
・フロントエンド周りの環境構築が楽ちん
・ファーストパーティとサードパーティに豊富な拡張パッケージが用意されている
・クリーンアーキテクチャ的な拡張がしやすい
・redisなどの外部システムとの連携の設定が簡単
ぐらいかな。 <>
nobodyさん<>sage<>2021/06/17(木) 22:47:17.63 ID:???.net<> >>651
ご丁寧にありがとうございます。
Symfonyと比べるとどのような点が使いやすいですか? <>
nobodyさん<>sage<>2021/06/17(木) 22:59:54.02 ID:???.net<> >>651
ほとんどCakeにも用意されてないか? <>
nobodyさん<>sage<>2021/06/17(木) 23:17:38.61 ID:???.net<> 自分で調べもせず楽に知ろうとする教えて君うざいよね <>
nobodyさん<>sage<>2021/06/17(木) 23:21:03.55 ID:???.net<> >>654
どうした大手勤務君
自分が答えられない質問に他の人が答えているのを見て嫉妬しちゃったの? <>
nobodyさん<>sage<>2021/06/17(木) 23:25:54.71 ID:???.net<> cakeは古臭く感じるんだよ
色々用意されていて自由度もそれなりにあるLaravelを使うと他のフレームワークを使う気になれなくなる
homesteadとか環境面も色々あるし便利だなと
個人的な感想だけどね <>
nobodyさん<>sage<>2021/06/17(木) 23:36:34.64 ID:???.net<> >>653
そうなの?なら>>651のうちcakePHPでも十分同等と言える点はどれ? <>
nobodyさん<>sage<>2021/06/17(木) 23:45:10.19 ID:???.net<> LaravelがなかったらCake使い続けてたと思う
Cakeは一般ユーザーとadminを認証し分けるのや別のテンプレートエンジン入れたりするのが面倒臭かった
誰かが作ったプラグインも色々あったがメンテされなくなったら終わりだし <>
nobodyさん<>sage<>2021/06/17(木) 23:47:02.69 ID:???.net<> LaravelのスレでCakeの話するの違うと思う <>
nobodyさん<>sage<>2021/06/18(金) 09:16:58.68 ID:???.net<> まぁ大昔は日本で流行っていた訳だし比較のために出すのは別に問題ない気がする <>
nobodyさん<>sage<>2021/06/18(金) 20:50:05.69 ID:???.net<> 大手勤務君ってLaravelにすごい詳しいけどどうすればここまで詳しく詳しく詳しく <>
nobodyさん<>sage<>2021/06/18(金) 21:39:38.92 ID:???.net<> 結局バリデーションはモデルでやったほうがベストプラクティスということで決着がついたの? <>
nobodyさん<>sage<>2021/06/18(金) 21:42:50.33 ID:???.net<> そんなこと一人しか言ってなかったぞ <>
nobodyさん<>sage<>2021/06/18(金) 21:43:43.75 ID:???.net<> >>662
きみ、相変わらずキモいね <>
nobodyさん<>sage<>2021/06/18(金) 21:45:04.79 ID:???.net<> Laravelでviewをbladeではなくtwigに変更するライブラリってありますか?
bladeは使っていて違和感を覚えるので変えたいです <>
nobodyさん<>sage<>2021/06/18(金) 21:46:18.07 ID:???.net<> >>662
違う
バッチ処理が必要なアプリ→モデルでバリデーションがベストプラクティス
バッチ処理が必要ないアプリ→FormRequestでバリデーションがベストプラクティス
アプリの構成によってベストプラクティスが変わるという結論だよ <>
nobodyさん<>sage<>2021/06/18(金) 21:51:41.54 ID:???.net<> すみません教えてください laravelでプロジェクトを作成すると
プロジェクト直下にartisanというファイルがありこれを使ってコントローラ生成したりなど色々行うと思います。
本番環境にアプリを配置する場合このartisanというファイルは削除したほうがいいのでしょうか?
WEBブラウザからartisanファイルが実行されて変なことにならないか心配しています <>
nobodyさん<>sage<>2021/06/18(金) 21:55:34.25 ID:???.net<> >>667
そんなレベルでLaravel使うことのほうが心配だよ <>
nobodyさん<>sage<>2021/06/18(金) 21:56:23.91 ID:???.net<> 荒らしはスルーで <>
nobodyさん<>sage<>2021/06/18(金) 21:59:25.19 ID:???.net<> すみません。別FWだと本番環境にモードを設定するコマンドが用意されており
そのコマンドを実行すると開発にしか使わないようなライブラリや開発専用コマンドなどのファイルを
自動削除してくれていたので今まで気にしたことはありませんでした。
laravelだとそのようなコマンドがないようだったので本番リリース時にどこまで削除すればいいのか
わからなくなって質問させていただきました。 <>
nobodyさん<>sage<>2021/06/18(金) 22:03:06.71 ID:???.net<> 普通はプロジェクトディレクトリ/publicがドキュメントルートなはずだから実行されないと思うけど
実際WEBサーバの脆弱性ついたらドキュメントルートより上にアクセスして実行できるのかな? <>
nobodyさん<>sage<>2021/06/18(金) 22:08:03.33 ID:???.net<> 今開発しているアプリがテストデータ程度だと普通なんだけど本番データに近い件数入れたら
なんか一覧を表示する速度が遅いなって思ってたら数年ぶりにN+1を発生させてしまっていたぜ
N+1なんて回避して当然だから自分やらかしていることに気付かず調べてから判明するまで6時間費やした <>
nobodyさん<>sage<>2021/06/18(金) 23:07:00.42 ID:???.net<> eloquentのwithを知らない又は使ったことが無い人は案外いるのかな <>
nobodyさん<>sage<>2021/06/19(土) 00:33:52.61 ID:???.net<> お前らモハメドの話聞いてないのかよ <>
nobodyさん<>sage<>2021/06/19(土) 01:04:26.68 ID:???.net<> LaravelのEloquentにはupdateメソッドとsaveメソッドがありますが
どちらを使うのが一般的なんですか? <>
nobodyさん<>sage<>2021/06/19(土) 01:08:31.82 ID:???.net<> >>675
動作が違うので必要な場面で必要な方を使うのが一般的です <>
nobodyさん<>sage<>2021/06/19(土) 02:52:09.97 ID:???.net<> 基本的にはモデルからfind()なりwhere()->first()なり1件取ってきてからsave()かと
複数行が対象とかで無い限りupdate()使ったりしない気がする <>
nobodyさん<>sage<>2021/06/19(土) 08:34:10.69 ID:???.net<> 相変わらず、ワケワカラン実装してんなぁ…。
作ってる奴がアホなんだろうなぁ…。 <>
nobodyさん<>sage<>2021/06/19(土) 09:09:10.30 ID:???.net<> >>678
ワケワカランてどういうところがそう思ったのか気になるなー。 <>
nobodyさん<>sage<>2021/06/19(土) 12:41:17.93 ID:???.net<> saveを使う場合は
$user->fill($request->validated())->save()
というような感じで使えばいいですか? <>
nobodyさん<>sage<>2021/06/19(土) 13:01:08.11 ID:???.net<> 初心者はまずドキュメントか本を読んで基礎を学べ <>
nobodyさん<>sage<>2021/06/19(土) 14:18:24.11 ID:???.net<> ずっとjavascriptマンやっていて再びphpに戻ってきたらなんかいろいろ苦しい <>
nobodyさん<>sage<>2021/06/19(土) 15:33:42.74 ID:???.net<> >>680
その使い方だとupdateでも同じでしょ?
自分はfillした後に何か処理挟むならsave、挟まないならupdateって使い分けしてる
あとコントローラー内限定だよね?その書き方 <>
nobodyさん<>sage<>2021/06/19(土) 16:42:53.66 ID:???.net<> 釣り針デカすぎ <>
nobodyさん<>sage<>2021/06/19(土) 16:52:11.13 ID:???.net<> >>684
>>683
「updateでも同じ」って部分を言ってるなら多分勘違いしてるぞ <>
nobodyさん<>sage<>2021/06/19(土) 19:37:14.74 ID:???.net<> >あとコントローラー内限定だよね?その書き方
はぁ? 場所によって書き方変わんの?
相変わらず、ワケワカラン実装してんなぁ…。
作ってる奴がアホなんだろうなぁ…。 <>
nobodyさん<>sage<>2021/06/19(土) 19:40:36.23 ID:???.net<> >>686
お前はせめてPHP初心者卒業してからコメントしろよ
アホなんだからw <>
nobodyさん<>sage<>2021/06/19(土) 20:34:25.83 ID:???.net<> >>686
横だけど、requestオブジェクトからバリデートした値だけを受け取っている部分があるから、controller限定かどうか尋ねてるってことでしょ。Laravelのこと知らないなら黙ってたほうがいいよ。どうせお前bigintおじさんでしょ? <>
nobodyさん<>sage<>2021/06/19(土) 20:41:20.40 ID:???.net<> あえて煽る意味あるの? <>
nobodyさん<>sage<>2021/06/20(日) 02:25:33.79 ID:???.net<> Eloquentの更新だったらupdateを使うのが普通でしょ
あえてsaveを使う理由はない <>
nobodyさん<>sage<>2021/06/20(日) 03:29:17.83 ID:???.net<> >>690
そうなんだよね、結局updateの中身だってfillしてsaveしてるだけだから
あえて->save()分のコード量増やす意味ないと思う
それよりも震えるのはプロパティに値セットしてsaveしてる人ら <>
nobodyさん<>sage<>2021/06/20(日) 05:56:49.44 ID:???.net<> >>691
何故?w
そっちが普通やろ
fill()とか常に使っている方が頭おかしい <>
nobodyさん<>sage<>2021/06/20(日) 08:14:01.06 ID:???.net<> マスアサインメント知らないアホがなんか言ってるな <>
nobodyさん<>sage<>2021/06/20(日) 08:28:52.53 ID:???.net<> このスレ見てるとphp使いとペチパーと揶揄される理由が分かるね <>
nobodyさん<>sage<>2021/06/20(日) 08:43:42.18 ID:???.net<> そうか?低レベルなエンジニアはどの言語にも一定いると思うぞ。 <>
nobodyさん<>sage<>2021/06/20(日) 09:08:09.75 ID:???.net<> >>692
前提としてfillableかguardedをModelに設定してるよね
その値って更新可能なカラム名って感じがするけど
そうじゃなくてcreateとかupdateとかfillの引数で入力される連想配列が保存可能なカラムを定義してるのよ
なのでfillとかを使わないでセットした値はその影響を受けないのね
例えば更新なんかしちゃダメなprimaryKeyの値とかも変更可能なの
$user->id = 10 ;
$user->save();
ここまで書いたら分かると思うけど
こういう実装方法って重大なセキュリティホールの要因になりえるので
気を付けようねって意味を含めて「震える」って書いたの
別に俺はプロパティでセットしてsave呼び出してるからと言って頭おかしいとは思わんよ
上に書いた理由を知らなかったってだけだと思うし
実際、俺も使い始めの時プロパティにセットする実装してたから
こういった理由を知った上でそれでもプロパティで実装する方法を選択してるなら頭おかしいって思っちゃうかな <>
nobodyさん<>sage<>2021/06/20(日) 09:22:08.01 ID:???.net<> え、
$user->id = 10 ;
なんて誰が書くの?君の同僚? <>
nobodyさん<>sage<>2021/06/20(日) 09:56:24.11 ID:???.net<> >>697
申し訳ない、俺の例がわかりにくかったみたいだね
こんな例が考えられるけどどうかな?
たとえば悪意のあるユーザーがリクエストでis_adminパラメータを送信して
そのパラメーターがモデルのcreateメソッドに渡されてユーザーが自分自身を管理者に格上げする
みたいなケースが考えられるでしょ?
あと、少し慣れてくるとプロパティにセットする事が手間になってきて
foreachで回して値をセットしたりしがち
そうなると完全にやばいよね <>
nobodyさん<>sage<>2021/06/20(日) 10:23:31.57 ID:???.net<> > foreachで回して値をセットしたりしがち
すまん、俺はそんな場面に出くわしたことないが、君の職場ではしがちなのかい? <>
nobodyさん<>sage<>2021/06/20(日) 10:25:45.61 ID:???.net<> Eloquent式は受け取ったリクエストのタイプによって保存する内容が大幅に違う場合とかには重宝するけどね <>
nobodyさん<>sage<>2021/06/20(日) 10:28:58.58 ID:???.net<> >>696
そもそもマスアサインメント知らないLaravel初心者にそんな具体的な説明しても無駄では? <>
nobodyさん<>sage<>2021/06/20(日) 10:30:07.55 ID:???.net<> idって基本的にauto_increment入れる為のものだから
$user = User::find($request['id']);
とはやっても
$user->idの値を書き換えるとかちょっとあり得ん <>
nobodyさん<>sage<>2021/06/20(日) 10:49:54.07 ID:???.net<> だからそれは例だっつーの
アホなの? <>
nobodyさん<>sage<>2021/06/20(日) 10:51:16.05 ID:???.net<> fill厨はどんな場合でも使ってそうw <>
nobodyさん<>sage<>2021/06/20(日) 11:14:16.81 ID:???.net<> 例にある意味予約語みたいなワードを書くとか根本的に常識がない <>
nobodyさん<>sage<>2021/06/20(日) 11:22:09.98 ID:???.net<> >>705
予約語ってis_adminの事言ってるよね
https://readouble.com/laravel/8.x/en/eloquent.html#mass-assignment
https://readouble.com/laravel/8.x/jp/eloquent.html#mass-assignment
ここ読んでみたらわかると思う、君が書き込みをするべきなのは
https://github.com/laravel/framework/issues
こっちだと思うよ <>
nobodyさん<>sage<>2021/06/20(日) 11:24:44.54 ID:???.net<> >>705
リンクおかしいな
https://readouble.com/laravel/8.x/ja/eloquent.html#mass-assignment <>
nobodyさん<>sage<>2021/06/20(日) 11:58:24.08 ID:???.net<> おまえらっていつもマウントの取り合いしてるな <>
nobodyさん<>sage<>2021/06/20(日) 12:09:40.58 ID:???.net<> 例だからとかいって言い訳しているけど
idって基本的にauto_increment入れる為のものだから
$user = User::find($request['id']);
とはやっても
$user->idの値を書き換えるとかちょっとあり得ん <>
nobodyさん<>sage<>2021/06/20(日) 12:12:46.30 ID:???.net<> しつこい
アホだ
アホは書き込み禁止 <>
nobodyさん<>sage<>2021/06/20(日) 12:26:55.34 ID:???.net<> >>704
どんな時でも使うべきだぞ。じゃないとリクエストからモデルに渡してよいフィールドが、コントローラー側で決定されるメソッドが生まれてしまうぞ。 <>
nobodyさん<>sage<>2021/06/20(日) 12:41:55.52 ID:???.net<> fillを必ず使え代入は危ないって言ってる人は、fillableじゃない値をどうやって入れるの? <>
nobodyさん<>sage<>2021/06/20(日) 12:44:44.49 ID:???.net<> このスレ見てるとレベル低い奴が何故か威張っていて、これが今の日本のIT技術が低い理由、そして国が衰えてる理由に繋がってる気がする。
要は反知性主義なんだよね。真面目に科学的に考える奴のことを軽視している。
これって地動説否定とかトランプ支持者など外国でも見られた傾向だけど、日本は特にひどいね。教育が悪いんだろうか。 <>
nobodyさん<>sage<>2021/06/20(日) 12:57:28.34 ID:???.net<> IDのないスレをいつまで本スレとして使うつもりなのか? <>
nobodyさん<>sage<>2021/06/20(日) 13:08:15.94 ID:???.net<> >>712
質問を質問で返すなよ お砂糖が知れるぞ <>
nobodyさん<>sage<>2021/06/20(日) 13:31:17.12 ID:???.net<> >>713
コイツが1番偉そうっていうね。 <>
nobodyさん<>sage<>2021/06/20(日) 13:31:50.81 ID:???.net<> お前ら>>696の例に対して文句があるんだったら自分が例を提示しろよ <>
nobodyさん<>sage<>2021/06/20(日) 13:50:15.46 ID:???.net<> >>691
fillを必ず使え代入は危ないって言ってる人は、fillableじゃない値をどうやって入れるの? <>
nobodyさん<>sage<>2021/06/20(日) 13:57:05.67 ID:???.net<> >>718
できない訳ないじゃない
自分が知らないから無いだろうって決めつけると恥晒すよ
https://laravel.com/api/8.x/Illuminate/Database/Eloquent/Model.html#method_forceFill <>
nobodyさん<>sage<>2021/06/20(日) 14:00:15.21 ID:???.net<> >>719
いやforceFillというメソッドは分かるよ。
それを使えば解決するよって回答でいいのかな? <>
nobodyさん<>sage<>2021/06/20(日) 14:12:25.97 ID:???.net<> >>720
まず何を解決したいのかな?
それを聞かないで全て解決するなんて事は言えない
できれば具体例上げて欲しい
状況によって使うメソッドや方法も変えてるから <>
nobodyさん<>sage<>2021/06/20(日) 14:20:38.12 ID:???.net<> 逆にコントローラーでfillableじゃない値をセットしている奴は、コントローラーの責務をどう規定しているのか詳しく聞いてみたい。 <>
nobodyさん<>sage<>2021/06/20(日) 14:24:09.06 ID:???.net<> >>720
質問しといて申し訳ないけど
俺もfill使ってない事思い出したわ、すまんな
プロパティに入れてfillableガン無視で最後saveしてる人だったって事にしといてください
ここで言い争いしてコスト使うのが1番頭おかしいってふと気付いたわ <>
nobodyさん<>sage<>2021/06/20(日) 14:35:38.78 ID:???.net<> laravelはなんでN+1問題が発生するんですか?
N+1って有名な問題だからFW設計時にそれを強制的にFW側で回避するようにできなかったのかな
いまだとwithとか明示的に使わないと回避できないよね? <>
nobodyさん<>sage<>2021/06/20(日) 14:39:23.50 ID:???.net<> N+1問題を回避できるFWなんてないし、理論上つくれない <>
718<><>2021/06/20(日) 14:43:21.94 ID:fbme7EFA.net<> >>723
いや別に喧嘩腰になったつもりは無くて、単なる興味から聞きたかっただけなんだけどな。
答えたくないなら残念。
>>721
例を挙げるならユーザーのパスワードのセットする時とかだね。 <>
nobodyさん<>sage<>2021/06/20(日) 14:44:31.24 ID:???.net<> >>725
CodeIgniter4はFW側で回避してるぞ <>
nobodyさん<>sage<>2021/06/20(日) 14:45:04.87 ID:???.net<> >>725
そうなんですか?となるとやっぱりFWを使う人側で回避しないといけないというわけですね <>
nobodyさん<>sage<>2021/06/20(日) 14:46:07.26 ID:???.net<> >>726
だからfillableじゃない値はforceFill使えよ
プロパティに直接セットするとか素人ですら珍しいぞ <>
nobodyさん<>sage<>2021/06/20(日) 14:47:57.78 ID:???.net<> N+1をFW側で回避することは非常に難しいですよ
その実装をできた人は世界中で表彰されるだろうと言われるぐらい難しいことなんです <>
718<><>2021/06/20(日) 14:58:11.63 ID:fbme7EFA.net<> >>729
なるほど、>>723さんと同じ人か分からないですがありがとうございます。
例えばですが
$user->password = $hashedPassword;
$user->last_password_changed = $now;
$user->fill(request()->all())->save();
こんなコードを書きたい時は
$user->fill(request()->all());
->forcefill([
'password' => $hashedPassword,
'last_password_changed' => $now
]);
->save();
こうしたほうが良いってことですよね?
必ず fill を通す必要がある理由が前述の
「例えば更新なんかしちゃダメなprimaryKeyの値とかも変更可能なの」
「こういう実装方法って重大なセキュリティホールの要因になりえるので」
という理由だと思ってたんですが、forceFill 使っちゃうと id とか変更しちゃダメな値を更新しかねないという点でやはり一緒ではないですか?
この理由だと forceFill も使うべきではないと思ったんですが、実は forceFill を使うとこの問題を克服できるのでしょうか? <>
nobodyさん<>sage<>2021/06/20(日) 15:56:55.52 ID:???.net<> シーダーにforceFill使うならわかるけど
他の用途では使わないほうがいい気がする
laravelは入門程度だから実際に業務で使っている人の意見聞きたいな <>
nobodyさん<>sage<>2021/06/20(日) 16:03:57.30 ID:???.net<> >>731
理解する気が無い人なのかと思ったので諦めてしまいました、ごめんなさい
パスワードとかfillableに含めない項目って基本的に含めない方がいい理由があると思うんですね
その「含めない方がいい理由」ってのは独立した機能として切り出して通常の流れから切り離す必要があると思うんです
特にパスワードに関しては更新後にメール送ったり仮パスワード発行するとか周辺機能も多くなりがちなので
機能として切り出してコントローラではない所で更新した方が良いと考えています
書いていただいた処理の流れでパスワードを更新するのであれば
fillableに含めない事で得られる効果(複数代入で更新されない)の意味がなくなってしまっているように感じます
forceFillで更新したら一緒だよねって問題に関してはご指摘の通り一緒です
ですが、機能として切り出されていればテスト時に更新すべきでない項目を更新していることを見つけることができますし
責任範囲が明確になってメンテナンスコストが抑えられると考えています
例えばlaravelのパスワード更新はこの様にforceFillで更新しています
https://github.com/laravel/framework/blob/8.x/src/Illuminate/Auth/SessionGuard.php#L662
こちらはメール認証でemail_verified_atカラムを更新しています
https://github.com/laravel/framework/blob/8.x/src/Illuminate/Auth/MustVerifyEmail.php#L24 <>
nobodyさん<>sage<>2021/06/20(日) 16:20:43.33 ID:???.net<> >>733
読み返してみたのですが
> コントローラではない所で更新
この表現は適切じゃなかったですね
> 独立した処理として更新
が適切かもしれません <>
nobodyさん<>sage<>2021/06/20(日) 17:43:02.03 ID:???.net<> N+1問題、Laravel8の最新バージョンだと回避できるようになってる。N+1になる処理を実行しようとすると例外を発生させられるようになった。 <>
nobodyさん<>sage<>2021/06/20(日) 19:14:58.36 ID:???.net<> お前ら、マジで何やってんの? <>
nobodyさん<>sage<>2021/06/20(日) 19:20:55.26 ID:???.net<> >>735
マジで?それはドキュメントのどこに書いてあるの? <>
nobodyさん<>sage<>2021/06/20(日) 19:34:42.48 ID:???.net<> >>737
マニュアルにはないかもしれないけど
この辺じゃないかな?
https://twitter.com/taylorotwell/status/1395087054254526474?s=21
https://github.com/laravel/framework/pull/37363
(deleted an unsolicited ad) <>
nobodyさん<>sage<>2021/06/20(日) 19:46:37.88 ID:???.net<> >>737
すでに上で出てるけど、こっちの方が分かりやすいかな。
https://laravel-news.com/disable-eloquent-lazy-loading-during-development <>
nobodyさん<>sage<>2021/06/20(日) 19:47:49.94 ID:???.net<> マニュアルだとこれ
https://laravel.com/docs/8.x/eloquent-relationships#preventing-lazy-loading <>
nobodyさん<>sage<>2021/06/20(日) 21:16:40.26 ID:???.net<> >>725
速攻論破されて草 >>738-740の内容知らなかったのかな? <>
nobodyさん<>sage<>2021/06/20(日) 21:42:57.75 ID:???.net<> 俺はまだ論破されていない >>738-740はN+1の回避策を提示しただけであって
FW側で回避できるという証明にはならない <>
nobodyさん<>sage<>2021/06/20(日) 21:52:49.79 ID:???.net<> ちょっと言っている意味がわからないです <>
nobodyさん<>sage<>2021/06/20(日) 21:53:07.92 ID:???.net<> >>598
いや、別に論破とかどうでも良いんだが。N+1の実装したら例外出て便利になったっていう情報知らないぽいから教えてあげたかっただけ。
あとFW側で回避したいなら、modelのwithプロパティ使っとけば確実だと思うけどね。ただこれ使うと余計なテーブルアクセス増えてしまいがちだから、不要な時はwithoutとかのメソッド入れなきゃダメで、それはそれでだるい。 <>
nobodyさん<>sage<>2021/06/21(月) 00:54:44.77 ID:???.net<> だからモハメドの話をちゃんと聞けって
Laravel使っててモハメドの話聞いてないとかありえないぞ
https://youtu.be/213aEudaumk <>