2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

【PHP】Laravel【フレームワーク】 Part.6

1 :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/

2 :nobodyさん:2021/05/25(火) 20:01:55.13 ID:???.net
2021年6月1日発売
PHPフレームワーク Laravel Webアプリケーション開発 バージョン8.x対応

3 :nobodyさん:2021/05/25(火) 20:25:13.82 ID:???.net
立て乙

4 :nobodyさん:2021/05/26(水) 09:44:20.64 ID:???.net
バージョン8から勉強したら、数年はなんとかなる?
それとも9や10でガラッと変わったりする?

5 :nobodyさん:2021/05/26(水) 11:53:58.15 ID:???.net
Apacheで十分おじさん続きをどうぞ

6 :nobodyさん:2021/05/26(水) 12:18:27.65 ID:???.net
>>5
相変わらず気持ち悪いやつだな
たまには部屋から出て太陽の光でも見てこい

7 :nobodyさん:2021/05/26(水) 13:00:16.80 ID:???.net
>>4
9でめちゃくちゃ変わる
今は時期が悪い

8 :nobodyさん:2021/05/26(水) 13:18:15.13 ID:???.net
>>7
そうなのか・・・
じゃ、>>2も買わないほうが良いのか

9 :nobodyさん:2021/05/26(水) 13:58:37.93 ID:???.net
>>7
それ、どこ情報?前も似たようなこと言ってた人居るけど、同一人物?

10 :nobodyさん:2021/05/26(水) 19:12:47.52 ID:???.net
>>9
今週Taylor兄貴が海外で放送されているIT関連の専門チャンネルに出演したんだけど
そこでLaravel9について質問された際に答えた内容がどう考えても多少の変更ではないレベルだったんだよ・・・

11 :nobodyさん:2021/05/26(水) 19:19:12.13 ID:???.net
あれはLaravel9ではなくLaravelの将来について質問された時の話だから
Laravel9ではまだそこまで影響でないと思うけど・・・

12 :nobodyさん:2021/05/26(水) 19:20:45.17 ID:???.net
ちなみにそこで発言した内容は現在のLaravelはMVCだけど
それをやめてMVVMパターンにしたいって話ね

13 :nobodyさん:2021/05/26(水) 19:23:53.13 ID:???.net
お前ら英語エアプか?
私としてはMVVMを採用したいけど変更が多すぎるからMVCのままでしょうね HAHAHAHA
って言ってただろ MVVMになることはない

14 :nobodyさん:2021/05/26(水) 19:25:48.83 ID:???.net
その話が本当か嘘かは置いておいてMVVMってMVCに比べるとどういうメリットとデメリットがあるんですか?

15 :nobodyさん:2021/05/26(水) 19:26:07.06 ID:???.net
コンセプトが変わるような物になるなら別のフレームワークにするような

16 :nobodyさん:2021/05/26(水) 19:38:57.64 ID:???.net
>>10
そういうことか。ありがとう。

>>12
それだと大きな変更にはならんよね。MVVMパターンてLivewire使ったら自然とそうなるし。JetstreamなんてまさにMVVMパターンの典型。controller要らなくなるなーてのを実感してる。

17 :nobodyさん:2021/05/26(水) 20:47:32.19 ID:???.net
MVCにすっかり慣れちゃったからLivewire使いにくいわ

18 :nobodyさん:2021/05/26(水) 22:41:02.80 ID:???.net
つまり、これから勉強するなら8でも良いってことですか?

19 :nobodyさん:2021/05/27(木) 01:15:23.91 ID:???.net
>>18
せやね

20 :nobodyさん:2021/05/27(木) 11:07:42.48 ID:???.net
じゃ、>>2買っても良いのかなぁ
誰かのレビュー待って検討するか

21 :nobodyさん:2021/05/27(木) 11:11:47.55 ID:???.net
>>20
>>2は大抵の人にとってはゴミだからやめろ。

22 :nobodyさん:2021/05/27(木) 11:23:05.25 ID:???.net
9向けのプルリクかなりの数承認されてるから8と9は別物と考えていいよ

23 :nobodyさん:2021/05/27(木) 11:36:24.61 ID:???.net
Laravelって、一生完成しなさそうですね。

24 :nobodyさん:2021/05/27(木) 11:36:36.26 ID:???.net
ブルリクの数だけでそんなこと言えるなら、8.0と8.43は別物!て言えちゃうんだけど大丈夫か?

25 :nobodyさん:2021/05/27(木) 14:02:31.10 ID:???.net
>>24
お前が大丈夫か?

26 :nobodyさん:2021/05/27(木) 14:40:08.59 ID:???.net
>>25
オウム返しじゃなくて、具体的な反論を頼む。

27 :nobodyさん:2021/05/27(木) 15:19:53.77 ID:???.net
まーたcomposerがエラー吐きまくって開発進まなくなった
composerの時代になってからこれが起きまくって困る、なんでこんなクソシステムが支持されてるの?
今vendor消してやり直したら復活したけど時間かかってしゃーないわ全く

28 :nobodyさん:2021/05/27(木) 15:48:53.05 ID:???.net
>>27
そんなのなったこと無いがどうやればそうなるの?

29 :nobodyさん:2021/05/27(木) 15:49:11.92 ID:???.net
まーたphpがエラー吐きまくって開発進まなくなった
phpの時代になってからこれが起きまくって困る、なんでこんなクソ言語が支持されてるの?
よく分からんから全部消して最初から書き直したら解決したけど時間かかってしゃーないわ全く

30 :nobodyさん:2021/05/27(木) 15:49:48.04 ID:???.net
>>29
おまえだけやろそんなのw

31 :nobodyさん:2021/05/27(木) 16:00:09.22 ID:???.net
>>28
マジかよ
Windows10上のDocker環境で普通に開発してるだけなんだがよくなるぞ
ならない環境教えて欲しい

32 :nobodyさん:2021/05/27(木) 16:03:52.76 ID:???.net
>>31
エラーの具体的なメッセージ書かないと分からんやろ。

33 :nobodyさん:2021/05/27(木) 16:12:26.10 ID:???.net
いつも先行販売している本屋さんがあるので明日売ってたら買ってくるね

34 :nobodyさん:2021/05/27(木) 16:12:39.78 ID:???.net
>>20

35 :nobodyさん:2021/05/27(木) 16:13:13.47 ID:???.net
ただのドキュメントに書いてあることをコピペしてるだけみたいな本だったら買うの辞めるけど

36 :nobodyさん: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

37 :nobodyさん:2021/05/27(木) 16:17:44.20 ID:???.net
var-dump-serverが既にあるぞって言ってるじゃん

38 :nobodyさん:2021/05/27(木) 16:17:44.59 ID:???.net
>>33
ありがとうございます!
初心者向けかそれ以外かだけでもレビューください

39 :nobodyさん:2021/05/27(木) 16:18:37.26 ID:???.net
>>36
既にファイルあるぞって警告出てるだろ
var-dump-server消せよ

40 :nobodyさん:2021/05/27(木) 16:19:05.69 ID:???.net
>>35
昔よくあった「PHPで掲示板を作る本」的な、
Webアプリ作りながら進めるような内容かも教えて下さい。
公式のドキュメントは機能紹介が中心で、とっつきにくかったので。

41 :nobodyさん:2021/05/27(木) 16:19:45.97 ID:???.net
>>31
何が起きてるか、どんなエラーなのか書かないとそもそも対策すら立てられない気がするが
こちらはhomesteadで開発してるけど問題起きたことは無いなぁ

42 :nobodyさん:2021/05/27(木) 16:32:46.57 ID:???.net
>>40
たぶんそういう本じゃないと思う
詳しくは目次
https://honto.jp/netstore/pd-contents_0630901278.html

43 :nobodyさん:2021/05/27(木) 16:35:26.53 ID:???.net
>>42
ほんとですね・・・
Laravelのドキュメントも見てるんですが、よくわからないんですよねぇ
最初からDockerがどうのって時点で詰みます。
Composerはわかるものの、専門用語が多くてパニックになってます。
だから、もう少し初心者向けなら良かったんですが
目次を見る限り、ドキュメントと変わらないっぽいですね

44 :nobodyさん:2021/05/27(木) 16:36:42.34 ID:???.net
>>36
まんま>>29と一緒だろ
エラーメッセージくらい読めば大抵のこと解決するのに

45 :nobodyさん:2021/05/27(木) 16:46:12.71 ID:???.net
>>44
じゃあエラーださなければいいのでは
なんでこんなスレまで来て粘着してるのか

46 :nobodyさん:2021/05/27(木) 17:34:17.32 ID:???.net
コテハンどころかIDすら出てない匿名なのに粘着とは

47 :nobodyさん:2021/05/27(木) 17:48:25.10 ID:???.net
そもそもcomposerがエラー吐きまくるとか言うけど
初回以外に構成が変わったりしない限りそう叩くものじゃなくね?
composer dump-autoload
は叩くことがあるかもしれないが

48 :nobodyさん:2021/05/27(木) 17:52:30.07 ID:???.net
何かを追加する時に叩くだろ
laravel/uiとか
1つの開発に数回ぐらい感覚的にある

49 :nobodyさん:2021/05/27(木) 17:54:04.50 ID:???.net
>>37
>>39
そりゃそうなんだけどなんでそんなことになるんだよ
エラー出たら都度手動で削除しながら使うツールがあるかいや

50 :nobodyさん:2021/05/27(木) 18:06:23.20 ID:???.net
Laravel勉強したとして会社の仕事でLaravel使うの?
それともただの趣味?

51 :nobodyさん:2021/05/27(木) 18:27:57.04 ID:???.net
大抵は会社で使うから覚える感じじゃないのかなぁ?
趣味とかwebの学習でと言う人はPHPにあんまり行ってない気がする
仕事はPHPが一番ありそうだけど素人はPythonとかに何故か行くよね

52 :nobodyさん:2021/05/27(木) 18:57:26.68 ID:???.net
会社の仕事で使うよ

53 :nobodyさん:2021/05/27(木) 19:38:43.27 ID:???.net
どうせたいしたものは作らないんだろ

54 :nobodyさん:2021/05/27(木) 20:10:33.08 ID:???.net
そのディスり必要?

55 :nobodyさん:2021/05/27(木) 22:46:35.14 ID:???.net
>>51
求人数と年収ともにjavaに負けるが

56 :nobodyさん:2021/05/27(木) 23:07:27.00 ID:???.net
>>55
求人数と年収がjavaに負けているということは
javaに負けているという可能性があるな

57 :nobodyさん:2021/05/27(木) 23:22:30.74 ID:???.net
セクシー大臣かな?

58 :nobodyさん:2021/05/28(金) 15:15:59.80 ID:???.net
>>49
でもそれがPHPの世界のスタンダードだよ
それが受け入れられないんだったら暗黒の世界へお帰り

59 :nobodyさん:2021/05/28(金) 15:37:41.59 ID:???.net
急に魔女が出てきて草

60 :nobodyさん:2021/05/28(金) 17:24:24.80 ID:???.net
来月発売の本、shin1x1が絡んでるやないか
立ち読みしてから買うの決めるか
カスタマイズ系の本が少なすぎるので出版してもらいたい

61 :nobodyさん:2021/05/28(金) 19:46:30.10 ID:???.net
目次見る限り5.5との差分が無さそうなんだよな。サンプルコードだけ変わってもなぁて。せめて8で公式にサポートされたvalue objectなんかにも触れてくれるなら良かったんだが。

62 :nobodyさん:2021/05/29(土) 03:53:48.39 ID:???.net
よくよく考えたら俺Laravel使ってなかった

63 :nobodyさん:2021/05/29(土) 13:03:11.38 ID:???.net
>>2
いつも先行発売してくれるジュンク堂になかったからamazonで購入
明日届く
明日なら店頭にも並んでそうだな

64 :nobodyさん:2021/05/29(土) 13:03:51.85 ID:???.net
明日本読んでレビュー書くわ

65 :nobodyさん:2021/05/29(土) 13:23:52.43 ID:???.net
>>63-64
お願いします!せめて初心者向けかだけでも教えて下さい

66 :nobodyさん:2021/05/29(土) 14:51:28.74 ID:???.net
>>65
初心者向けだよ

67 :nobodyさん:2021/05/29(土) 15:15:44.68 ID:???.net
むしろ初心者向けじゃない本なんてあるのか
初心者しか読まないのに

68 :nobodyさん:2021/05/29(土) 16:21:36.68 ID:???.net
せめて目次見てから言えよ。CQRSとかADRを必要とする初心者って意味わからんわ。

69 :nobodyさん:2021/05/29(土) 16:35:51.59 ID:???.net
500ページってボリュームを全部よむよりは
必要なページだけ読みたいね

70 :nobodyさん:2021/05/29(土) 16:56:13.73 ID:???.net
目次読む限り初心者向けとは思いませんでした

71 :nobodyさん:2021/05/29(土) 17:03:48.94 ID:???.net
今認証中のユーザーがどこのモデルに属しているか確認する方法ありませんか?

72 :nobodyさん:2021/05/29(土) 17:45:32.21 ID:???.net
>>71
どういう意味だ?

73 :nobodyさん:2021/05/29(土) 17:47:26.80 ID:???.net
自己解決
user()の中に情報入ってました

74 :nobodyさん:2021/05/29(土) 18:08:39.67 ID:???.net
>>71
user関数とかで情報取得できない?

75 :nobodyさん:2021/05/29(土) 18:08:55.77 ID:???.net
ごめん解決したの見ていませんでした

76 :nobodyさん:2021/05/30(日) 22:23:54.16 ID:???.net
明日発売の本買いました
Laravel初心者さんはぜひ買っても問題ないです。
ただ、PHP初心者さんには難しいかもしれないです

77 :nobodyさん:2021/05/31(月) 11:07:29.81 ID:???.net
>>76
本の手順で進めればひと通り理解できる内容ですか?
あと本が分厚くて読みにくい(学習しにくい)とかありますか?

78 :nobodyさん:2021/05/31(月) 11:12:44.84 ID:???.net
>>77
ページ数が多いので全部読んでいませんが
辞書として必要なところを調べる形で使っています
それでも問題ない認識です

79 :nobodyさん:2021/05/31(月) 13:19:38.80 ID:???.net
>>78
なるほど。順番に進めて覚えるような感じではないんですね

80 :nobodyさん:2021/05/31(月) 15:43:23.17 ID:???.net
>>76
Windows環境でも解説ある?

81 :nobodyさん:2021/05/31(月) 16:14:10.00 ID:???.net
>>80
Windows XPのことですか?

82 :nobodyさん:2021/05/31(月) 16:21:02.34 ID:???.net
Laravelの.envってたまに変更しても反映されないことない?
キャッシュかとおもってキャッシュクリアコマンド実行しても反映されず
OSの再起動を実施すると反映されることがごくたまにある

83 :nobodyさん:2021/05/31(月) 16:33:53.50 ID:???.net
https://readouble.com/laravel/8.x/ja/configuration.html
Note: 開発過程の一環としてconfig:cacheコマンド実行を採用する場合は、必ずenv関数を設定ファイルの中だけで使用してください。設定ファイルがキャッシュされると、.envファイルはロードされません。したがって、env関数は外部システムレベルの環境変数のみを返すだけです。

84 :nobodyさん:2021/05/31(月) 16:36:56.62 ID:???.net
>>81
いいえ、普通にwindows10ですが?
どうしてそんな古いOS使ってると思ったんですか?
laravelスレの人はこんな捻くれた回答しかできないんですか?

85 :nobodyさん:2021/05/31(月) 16:57:47.55 ID:???.net
このスレ、前から約1名面白いことを言おうとして滑りまくってるやつが居るんだけど、>>81はそいつだと思う。
一応皆スルーしてるみたいなので、お前もスルーしとけ。下手に触ると喜ばせるだけ。

86 :nobodyさん:2021/05/31(月) 17:25:10.91 ID:???.net
ためし読みしろよ

87 :nobodyさん:2021/05/31(月) 17:31:37.93 ID:???.net
>>86
滑ってるぞ

88 :nobodyさん:2021/05/31(月) 17:38:39.82 ID:???.net
Laravelが遅いという話をよく聞くのですが本当でしょうか?
他のフレームワークと比較したときに人間が感知できるレベルで
処理などが遅くなるのでしょうか?

89 :nobodyさん:2021/05/31(月) 18:06:47.42 ID:???.net
>>88
遅いと言えば遅い。Railsとどっこいどっこいって感じ。ただしそれはOPcaheを使ってない場合。OPcache使えば、おおよそ5-10倍のリクエストを捌けるようになり、十分な速さになる。

90 :nobodyさん:2021/05/31(月) 20:42:44.91 ID:???.net
>>82
.envの使い方間違ってるだろ

91 :nobodyさん:2021/05/31(月) 22:11:02.49 ID:???.net
>>89
CakePHPと比べるとどうですか?

92 :nobodyさん:2021/05/31(月) 23:00:42.73 ID:???.net
>>84
ちゃんと自分の環境を書かないからそうなる

93 :nobodyさん:2021/06/01(火) 19:59:24.93 ID:???.net
今から5系の参考書買って意味ありますか?
5系だとお安いので迷ってます。

94 :nobodyさん:2021/06/01(火) 20:04:21.98 ID:???.net
5系あたりだと認証系の情報が古いよ

95 :nobodyさん:2021/06/01(火) 20:32:07.38 ID:???.net
ありがとうございます。
サポートが長いバージョンとのことで大丈夫かと思ったのですが
もうサポート切れてたようです…
大人しく8系で安く出るの待ちます!

96 :nobodyさん:2021/06/01(火) 20:41:47.04 ID:???.net
>>91
分からん。けどcakeのほうが早い可能性が高い。ただしOPcacheを使っているならば、ビジネス上懸念されるような差は無いと予想。

97 :nobodyさん:2021/06/01(火) 21:19:09.39 ID:???.net
>>96
なるほど・・・。
cakeは2までの知識しかないのですが、2でも遅いって話があるのに
それよりも遅いってのもなかなか辛いですね。
今はページ表示速度もSEOの指針になるので

98 :nobodyさん:2021/06/01(火) 22:53:37.49 ID:???.net
>>95
金ないならアルバイト1日頑張ればええやん
タイムイズマネーだよ
そんなの待ってたらずっと取り残されたままで永遠にものにならないよ

99 :nobodyさん:2021/06/01(火) 23:01:44.38 ID:???.net
>>95
正直公式読んで分からないやつは趣味なら大丈夫だけど仕事ではキツいぞ
本なんて買う必要ないよ

100 :nobodyさん:2021/06/01(火) 23:54:12.95 ID:???.net
公式は専門用語多くて分かりづらいっす・・・

101 :nobodyさん:2021/06/02(水) 00:11:29.30 ID:???.net
公式読み解けない一にとっては本はありだと思うよ
職人のフレームワークだから公式は初心者には寄り添ってないしね
公式読み解けるレベルまで行けばそれ以降は本は不要

102 :nobodyさん:2021/06/02(水) 00:42:33.19 ID:???.net
公式のどこを読めって話?まさか全部じゃないよね

103 :nobodyさん:2021/06/02(水) 01:04:11.81 ID:???.net
インストールガイドを読んでそこから必要に応じて派生ページを読む

104 :nobodyさん:2021/06/02(水) 07:35:52.57 ID:???.net
>>97
ビジネス上懸念されるようなことは無いって書いたのにスルーしないでくれ。cakeにしても遅い遅い言ってる奴は、どうせOPcache使ってないだろ?

105 :nobodyさん:2021/06/02(水) 08:15:26.02 ID:???.net
付け加えておくと、フレームワークのレベルで遅いかどうかって話はSEOとほぼ関係ない。あくまで時間当たりの処理可能件数に差が出るだけ。サーバーのリソースを食うから。
SEOに関してはDBのI/Oやフロントエンドで使用するアセットのサイズ、ブロッキングの有無の方が1万倍重要。

106 :nobodyさん:2021/06/02(水) 11:14:24.51 ID:???.net
本を読まなくても学習することはできるけど
本を読まないやつは無能

107 :nobodyさん:2021/06/02(水) 12:30:11.36 ID:???.net
>>106
他人を無能扱いするなよ無能

108 :nobodyさん:2021/06/02(水) 13:58:02.08 ID:???.net
>>102
必要なところだけ読めばいいのでは?
それで分かりにくいとかならググれば大抵はヒントがあるやろ

109 :nobodyさん:2021/06/02(水) 15:43:00.67 ID:???.net
特定の言語やフレームワークの習得に限って言えば、本なんかに頼る必要性はほぼ無い。マニュアルとコード読んで理解するのがベスト。本に書いてあることなんてごく一部でしかない。
第一、じゃあその本書いた人たちはどうやって習得したんだろう?て話。無能な奴らが書いた本をありがたがってるってことになるわけだが。

110 :nobodyさん:2021/06/02(水) 16:03:16.06 ID:???.net
>>109
多分106はいつもの荒らしだから相手にしないほうが良い

111 :nobodyさん:2021/06/02(水) 18:17:47.79 ID:???.net
>>108
必要なところだけ、しかもググった結果を集めてくれてる
それが書籍じゃないのかな
だとしたら有料であるという以外は書籍有利では?

112 :nobodyさん:2021/06/02(水) 18:34:23.89 ID:???.net
本単体では情報がアップデートされない

113 :nobodyさん:2021/06/02(水) 18:40:58.97 ID:???.net
ちょうど本をされているので相談です。

・動かして学ぶ! Laravel開発入門
・PHPフレームワーク Laravel Webアプリケーション開発 バージョン8.x対応

を立ち読みしてきました。
どちらも初心者向けだと感じましたが、前者の方が読みやすかったです。

ただ、前者のはバージョン6対応とのことですが、
8とか9を勉強するなら問題ありますでしょうか?

114 :nobodyさん:2021/06/02(水) 18:42:55.69 ID:???.net
>>113
後者は初心者にとって半分以上ゴミになる可能性があるから、1冊目にしとけ。

115 :nobodyさん:2021/06/02(水) 18:52:30.96 ID:???.net
なんかやたら書籍を持ち上げたがる人いるね
どちらが優れてるかなんて状況次第だし、本でもネットでも好きなので覚えればいいのに

116 :nobodyさん:2021/06/02(水) 18:54:26.29 ID:???.net
>>115
すまん、前レス見てなかったが「どちらが優れてるいるか」のくだりは書籍かネットかの話ね
113のどちらの書籍が良いかという話は俺には分からん

117 :nobodyさん:2021/06/02(水) 19:39:24.28 ID:???.net
誰もお前にゃ聞いてないて…
ここの主かなんかなん?

118 :nobodyさん:2021/06/02(水) 19:41:57.02 ID:???.net
そもそもネットで検索した程度なんて部分的なものしか集められない

119 :nobodyさん:2021/06/02(水) 19:52:38.70 ID:???.net
出版のタイミングにおいて整合性の取れてる整理された情報が手に入る、っていうのが今の書籍のメリット。
きちんとググり方がわかっていて予備知識があるなら必要ないよ。

120 :nobodyさん:2021/06/02(水) 20:07:53.71 ID:???.net
整合性で言うなら普通に公式のマニュアル読めばよくね?

121 :nobodyさん:2021/06/02(水) 20:15:58.75 ID:???.net
普通の感覚だと書籍かマニュアル好きなほうで学べばいいと思うけど、書籍を絶対視するのはよくわからんな。

122 :nobodyさん:2021/06/02(水) 20:32:53.02 ID:???.net
電子書籍ならまだ分かるけど物理的な本はもう正直いらないな
過去の技術書殆捨てちゃたよ

123 :nobodyさん:2021/06/02(水) 20:44:34.01 ID:???.net
>>114
作者乙

124 :nobodyさん:2021/06/02(水) 21:13:48.84 ID:???.net
>>120
そうだぞ。本はマニュアル読み解けないレベルの初心者向けって感じの位置付けで良いと思う。

125 :nobodyさん:2021/06/02(水) 21:38:52.93 ID:???.net
8いじってるけどLivewire使いにくいな、何か根本的な所が今まで慣れたMVCと違う気がする
これ基礎から学ぶのに何かええ教材ないかな

126 :nobodyさん:2021/06/02(水) 21:45:27.23 ID:???.net
>>125
無理に使うことないんじゃね?

127 :nobodyさん:2021/06/02(水) 21:51:50.82 ID:???.net
>>126
使うと最初から色々できてて楽なんだよ
これをベースにしたい

128 :nobodyさん:2021/06/02(水) 22:43:11.94 ID:???.net
そもそもLivewireは、MVVMだぞ。その意識だけあればOK。それよか、親子関係のコンポーネント作る時に色々面倒すぎて憤死した。

129 :nobodyさん:2021/06/03(木) 17:11:45.07 ID:???.net
MVVMってなんだ?

130 :nobodyさん:2021/06/03(木) 17:19:38.63 ID:???.net
なんで自分で調べないの?

131 :nobodyさん:2021/06/03(木) 17:50:25.27 ID:???.net
>>130
なんでそんな言い方するの?

132 :nobodyさん:2021/06/03(木) 19:05:03.83 ID:???.net
Livewireは流石に使う気になれないな
これどっちにしても流行らないでしょ?

133 :nobodyさん:2021/06/03(木) 19:32:16.91 ID:???.net
>>131
ググればすぐに出てくるやん…

134 :nobodyさん:2021/06/03(木) 22:19:37.24 ID:???.net
でもlivewire入れたら初期状態で認証とチーム管理入っていて便利やん

135 :nobodyさん:2021/06/03(木) 23:15:19.24 ID:???.net
livewire入れると初期状態で認証とチーム管理がインストールされるということは
初期状態で認証とチーム管理が扱えるということですか?

136 :nobodyさん:2021/06/04(金) 00:41:54.56 ID:???.net
いやlivewireで初期状態で使えるのは認証とチーム管理だけだよ

137 :nobodyさん:2021/06/04(金) 07:45:22.82 ID:???.net
>>129
model-view-viewmodel というアーキテクチャのこと。フロントとバックエンドは、controllerを介さずview modelという層を挟んでmodelと状態やデータを同期させる仕組み。

138 :nobodyさん:2021/06/04(金) 09:20:47.93 ID:???.net
viewmodelってなんだ?

139 :nobodyさん:2021/06/04(金) 09:57:52.29 ID:???.net
livewireと言えばモトリークルーだよな

140 :nobodyさん:2021/06/04(金) 11:09:03.06 ID:???.net
livewireの読み方教えて下さい

141 :nobodyさん:2021/06/04(金) 11:37:17.81 ID:???.net
MVVMってJavaScriptオフにされてたら動かないよね

142 :nobodyさん:2021/06/04(金) 12:15:18.12 ID:???.net
今時javascript切ってるやつなんか無視してよい

143 :nobodyさん:2021/06/04(金) 13:05:19.33 ID:???.net
信頼してるサイトでしかONにしない俺は少数派?

144 :nobodyさん:2021/06/04(金) 13:09:28.40 ID:???.net
>>143
絶滅危惧種だろ
JavaScriptが怖いのは基本的にはXSSで、それは「信頼したいサイト」ほど仕込まれたときの影響が大きい
無駄に利便性を削ってると思うぞ

145 :nobodyさん:2021/06/04(金) 14:39:02.61 ID:???.net
そろそろLaravel始めようか悩み中

146 :nobodyさん:2021/06/04(金) 15:18:58.31 ID:???.net
6のLSTか8かで迷うよな

147 :nobodyさん:2021/06/04(金) 15:28:48.52 ID:???.net
今からなら8一択でしょ
9になればどうせすぐにアップデートするんだから

148 :nobodyさん:2021/06/04(金) 15:46:05.44 ID:???.net
これ以上何をどうアップデートする機能があるのか?

149 :nobodyさん:2021/06/04(金) 16:51:55.37 ID:???.net
>>148
機能だけなら今で十分だよなぁ
コレクションがもう少し処理速度が改善すればとは思うけど

150 :nobodyさん:2021/06/04(金) 16:58:56.68 ID:???.net
ソーシャルログインみたいなライブラリ使いたい時も8でいいの?

151 :nobodyさん:2021/06/04(金) 20:03:44.75 ID:???.net
次のLaravel9では大型アップデートとかあるの?

152 :nobodyさん:2021/06/04(金) 20:35:39.82 ID:???.net
9はLTSだし大きな変更は入れてこないだろ

153 :nobodyさん:2021/06/04(金) 23:03:43.27 ID:???.net
>>150
ソーシャルログインはsocialite使うって話なら、8にも対応してるから大丈夫。

154 :nobodyさん:2021/06/05(土) 00:10:16.08 ID:???.net
>>153
対応してる・してないってどう見極めたら良いの?
ググって使いたいライブラリやプラグイン探して、
あればそのバージョンを勉強していく感じ?

155 :nobodyさん:2021/06/05(土) 01:41:17.35 ID:???.net
見極めるも何もリポジトリ見れば依存関係書いてあるし

156 :nobodyさん:2021/06/05(土) 11:30:32.47 ID:???.net
見極めるは草

157 :nobodyさん:2021/06/05(土) 12:56:38.90 ID:???.net
>>154
いや、composer.json見りゃわかるよ。

158 :nobodyさん:2021/06/05(土) 13:56:51.70 ID:???.net
マニュアルやreadmeに親切に書いてあるだろ

159 :nobodyさん:2021/06/05(土) 14:11:10.57 ID:???.net
>>158
composer.json見りゃわかるんだけど

160 :nobodyさん:2021/06/05(土) 15:27:37.24 ID:???.net
>>159
サポートと依存が違うことが分からないのか
サポートしているから必ずしも依存しているとは限らない
自分で確認してこい
https://packagist.org/explore/?query=laravel

161 :nobodyさん:2021/06/05(土) 16:58:08.83 ID:???.net
>>159
書いてないな

162 :nobodyさん:2021/06/05(土) 17:31:04.46 ID:???.net
サポートも依存もcomposer.json見るのが普通
>>160のは誤っているので参考にしないようにしましょう

163 :nobodyさん:2021/06/05(土) 17:42:52.42 ID:???.net
みんなどんなプロジェクトもLaravel使ってるの?

DB保存のお問合せフォームみたいなの作るんだけど、
過去に作ったオレオレ使うか、Laravel使うかで悩んでる
テーブル1つ2つで済むような規模でFW使うのもなぁ

164 :nobodyさん:2021/06/05(土) 17:59:11.60 ID:???.net
昔は小規模ならオレオレ派だったけど、誰かに引き継ぐ時にオレオレだと説明面倒だし、恥ずかしいし等あって、もう全てにおいてLaravel使ってる

165 :nobodyさん:2021/06/05(土) 17:59:26.74 ID:???.net
過去に作ったオレオレw
字面だけでメチャクチャヤバそう

166 :nobodyさん:2021/06/05(土) 18:01:35.06 ID:???.net
>過去に作ったオレオレ
そんなゴミさっさと捨てて、前に進む勇気を持った方が幸せになれる

167 :nobodyさん:2021/06/05(土) 18:54:21.27 ID:???.net
>>164
>>163みたいなお問い合せフォーム程度でも使ってるの?
納品する時ファイル数多くなって余計に面倒な気もするが

168 :nobodyさん:2021/06/05(土) 19:07:58.86 ID:???.net
最近インクリメント君こないな
彼はbigintを枯渇させたらしいけど一体何のシステムを作っているのだろうか

169 :164:2021/06/05(土) 19:11:53.71 ID:???.net
>>167
そのサイトがこの先ずっとお問い合わせだけで終わる保障はないし、納品後誰が触るかわからないじゃん?
だから規模に関わらずLaravel使ってるよ

あくまで私はそうしてると言うだけで、万人に対するベストアンサーかは知らん

170 :nobodyさん:2021/06/05(土) 19:30:36.07 ID:???.net
ちょっとしたものならオレオレに使いたい一部のライブラリ(twigとかcarbon等)をcomposerで導入で良いかも

171 :nobodyさん:2021/06/05(土) 19:48:52.12 ID:???.net
>>160
サポートと依存が異なるっていうか、特に下位互換性については、main(master)のcomposer.json見ても分からんから、ReadMe読めってことかな?
バージョン落とせば古いLaravelにも対応できるパッケージがある一方、最新の8しかサポートしてないやつもあるよね。

172 :nobodyさん:2021/06/05(土) 20:20:26.95 ID:???.net
>>163
Googleフォームで十分すぎる

173 :nobodyさん:2021/06/05(土) 21:10:09.87 ID:???.net
問い合わせフォームは自動返信付きにすると一気に難易度上がるからなあ
Laravel使っといた方が制御が楽でしょ

174 :nobodyさん:2021/06/05(土) 21:19:42.25 ID:???.net
自動返信とかGAS書いて終わりだぞ。1時間もあれば大抵のユースケースに対応できる。唯一残念なのはデザインのカスタマイズがイマイチなことぐらい。一方のLaravelだとインフラ周りも用意しないとダメだし、割りに合わなさすぎる。

175 :nobodyさん:2021/06/05(土) 21:42:22.60 ID:???.net
GASってなんですか?

176 :nobodyさん:2021/06/05(土) 22:30:41.25 ID:???.net
なんで自分で調べないの?

177 :nobodyさん:2021/06/05(土) 22:41:33.72 ID:???.net
>>168
bigintを枯渇させた!?
それって全世界規模のシステム作ってないと枯渇しないのでは・・・
にわかに信じがたいな

178 :nobodyさん:2021/06/05(土) 23:01:47.41 ID:???.net
>>176
ここアホしかいないから…

179 :nobodyさん:2021/06/06(日) 06:18:17.11 ID:???.net
>>177

それは>>168の捏造。
実際はINT型で数年で破綻する設計があるので、
オーバーフローする型を主キーにする設計はおかしいという話だった。
>>168は以前から虚言癖あるからあんまりマトモに相手しない方が良い。馬鹿だから。

180 :nobodyさん:2021/06/06(日) 11:02:22.06 ID:???.net
laravelの場合id()をincrement()に変更しなければbigintになるかずだけど
increment()をおすすめする記事があるんだよな

181 :nobodyさん:2021/06/06(日) 12:01:48.87 ID:???.net
>>169
どんな案件でも得意のFW使うって、考え方として正しいのかもね
たとえCakeみたいに古くなっても、更新できるしな

182 :nobodyさん:2021/06/06(日) 12:52:39.56 ID:???.net
自前のWebサービス作る時に、Livewire使うか従来のMVCで行くかすげえ悩む
要はフォームをPOSTで更新するかAJAXで更新するかの違いなんだけどどっちが使い勝手いいんだろうか?
個人的には本当にどっちでもいいしだったらユーザーが使いやすい方が良いんだけどそれもわからん

183 :nobodyさん:2021/06/06(日) 14:11:48.19 ID:???.net
>>182
POSTかajaxかの違いは、MVCかどうかには関係ないだろ。

184 :nobodyさん:2021/06/06(日) 14:48:06.01 ID:hLhI30lV.net
コントローラーの記述は少ないほうがいいってどこかの誰かが言ってた気がするんですけど、数ページある場合はページごとにコントローラー作ったほうがいいんですか?
例えば、トップ、料金システム、サービス内容、ブログ、お知らせ、問い合わせのページがあるような場合です。

185 :nobodyさん:2021/06/06(日) 14:48:43.08 ID:???.net
>>183
俺が迷ってるのはLivewire(MVVM)使うかMVC使うかって所な
後者でもAJAXできるが前者はAJAXオンリーになる

186 :nobodyさん:2021/06/06(日) 15:19:44.52 ID:???.net
>>184
それならコンテンツ(モデル)毎にコントローラー作るべきだよ
なにせ用途が違うんだから

187 :nobodyさん:2021/06/06(日) 15:43:26.07 ID:???.net
livewire使うくらいならreactかvueで作るわ

188 :nobodyさん:2021/06/06(日) 16:23:08.78 ID:???.net
jQueryはだめですか

189 :nobodyさん:2021/06/06(日) 16:27:30.10 ID:???.net
>>179
オーバーフローってことは枯渇についての話でしょ?
いまいち>>168の内容が捏造ってのがよくわからないんだけど

190 :nobodyさん:2021/06/06(日) 21:26:02.84 ID:???.net
なんで過去に出たLaravel本は改定して最新バージョンに対応しないんだろうな

191 :nobodyさん:2021/06/06(日) 22:15:29.93 ID:???.net
売れないからだろうな

192 :nobodyさん:2021/06/06(日) 22:22:22.57 ID:???.net
ぐぐればいい時代に本なんて買わんしな

193 :nobodyさん:2021/06/06(日) 22:33:42.63 ID:???.net
ググっても書いてる人が文章能力ないと、わかりづらいんだよな

194 :nobodyさん:2021/06/07(月) 00:07:46.12 ID:???.net
公式マニュアルとその日本語翻訳サイトが優秀だから

195 :nobodyさん:2021/06/07(月) 01:53:23.81 ID:???.net
とりあえず秋のLTS待ちでしょ
毎年出すほどは売れないから

196 :nobodyさん:2021/06/07(月) 02:43:15.71 ID:???.net
結局本を書く側もあんまり売れなきゃ金銭的に儲けはあんまりないし
フレームワーク限定の本なんて今の時代より売れない気がする
もうちょっとPHPのシェアが上がらないとなぁ

197 :nobodyさん:2021/06/07(月) 08:04:04.89 ID:???.net
周りに本出すエンジニア何人か居るけど、口を揃えて、「割りに合わない」と言ってるぞ。箔付にはなるってぐらいだ。だから儲かる儲からないは、出版の判断材料にはならない。

198 :nobodyさん:2021/06/07(月) 08:34:22.03 ID:???.net
本買うにしても日本のこのIT後進国っぷりを見ると日本語の本は買わない方がいい

199 :nobodyさん:2021/06/07(月) 09:05:35.62 ID:???.net
>>198
釣り針デカすぎ。荒らしは消えてどうぞ。

200 :nobodyさん:2021/06/07(月) 10:51:34.42 ID:???.net
>>179
bigintであれば数年で枯渇するようなレベルではなくないか?
普通にbigintのインクリメント使ってもいいとおもうけど

201 :nobodyさん:2021/06/07(月) 11:41:21.88 ID:???.net
元々、オートインクリメントだとオーバーフローするじゃん!みたいなこと言ってて、周りから「bigint使えば良いじゃん。もしかして知らない??」て突っ込まれて、すげー長々と言い訳してたからなぁ。
920京だとunsignedだからPHPでは読めない!とか馬鹿みたいなこと言ってたし(920京はsigned)。
laravelだとパージョン6から、標準のusersテーブルだとidにbiggntを使うようになっている。

202 :nobodyさん:2021/06/07(月) 11:51:47.58 ID:???.net
マイグレーションファイルのidのデフォルトはid()
何故increments()ではないのかの議論がissueかフォーラムか忘れたけどどこかにあったね

203 :nobodyさん:2021/06/07(月) 12:40:24.94 ID:???.net
>>202
5.7まではincrements()、6.×でbigIncrements()、7.×でid()だな。その議論は7じゃなくて6の時じゃね?

204 :nobodyさん:2021/06/07(月) 12:51:31.46 ID:???.net
>>199
なんで正論言ったら荒らしになるんだよ
何が気に障ったんだ

205 :nobodyさん:2021/06/07(月) 12:57:17.61 ID:???.net
   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |        J
/     ∩ノ ⊃  ヽ
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /

206 :nobodyさん:2021/06/07(月) 13:15:44.97 ID:???.net
>>204
しつこい

207 :nobodyさん:2021/06/07(月) 13:18:17.45 ID:???.net
>>206
釣られちゃったね キミの負け^^

208 :nobodyさん:2021/06/07(月) 13:40:43.54 ID:???.net
>>207
黙れお前のせいで発狂しそうだ

209 :nobodyさん:2021/06/07(月) 14:39:30.58 ID:???.net
>>200-201
INT でオーバーフローが懸念されたので BIGINT型に変更したのは Twitter くらいしか話を聞いた事は無いけど、
俺が言ってるのは、オートインクリメントでプライマリキー作るような奴はそもそもデータ型に対する理解なんか一切無い場合が殆どだから、
INT型の範囲がどの位あって、何年で溢れそうか?
みたいな計算一切せずに、何となくINT型にする馬鹿だらけだろう、って話。
で、問題が発生してなにが起こったのかすら分からず、連日徹夜で闇雲に調査してやっと気付いた時には大問題、みたいな、恒例のパターンになるだろ?って事。

210 :nobodyさん:2021/06/07(月) 15:04:44.88 ID:???.net
>>197
この手の本なんて売れてもせいぜい数千部、頑張っても数万部とかだからね
印刷代、倉庫代、取次手数料、編集者の取り分なども考えたら著者に渡せる金はホント少ない
専業の人は何冊も書かないと食っていけないし、そうでない人は趣味みたいな気持ちでやるしかない

ただ、出版社も編集者も出版点数のノルマがあるので、
タイミングによっては数稼ぎでそこそこ手堅く損はしないだろうと判断できたら数稼ぎで本を出す
Laravel本は改定本出てるのが多いから、そういう対象にはギリギリなってるみたいね
おそらく次のLTSでも何冊かは出るよ

211 :nobodyさん:2021/06/07(月) 15:05:47.61 ID:???.net
>>209
>INT型の範囲がどの位あって、何年で溢れそうか?
>みたいな計算一切せずに、何となくINT型にする馬鹿だらけだろう、って話。

これなんかデータあるの?それともお前の妄想?

212 :nobodyさん:2021/06/07(月) 16:08:03.74 ID:???.net
> INT でオーバーフローが懸念されたので BIGINT型に変更したのは Twitter くらいしか話を聞いた事は無いけど、

これっていつ頃の出来事?そんなニュースあったっけ

213 :nobodyさん:2021/06/07(月) 16:11:52.16 ID:XShOSVRG.net
> INT でオーバーフローが懸念されたので BIGINT型に変更したのは Twitter くらいしか話を聞いた事は無いけど、

たった一例しか知らないのに「何となくINT型にする馬鹿だらけだろう」って決めつけてるの矛盾してない?

214 :nobodyさん:2021/06/07(月) 17:50:37.59 ID:???.net
>>209
仮に1日あたり1億レコード消費する計算だとsignedBigint(63bit)を消費するまで何年かかるか分かる?

215 :nobodyさん:2021/06/07(月) 21:25:33.92 ID:???.net
>>214
そのぐらい人に聞かないで自分で計算しろよ・・・

216 :nobodyさん:2021/06/07(月) 21:36:03.19 ID:???.net
>>215
214じゃないけど、聞きたいのって「何年か」ではなく「分かるか」であって、
integerではなくbooleanを求めているんでしょ

217 :nobodyさん:2021/06/07(月) 23:32:56.47 ID:???.net
>>216
2.5億年かかるけど、おそらく彼は分からない

218 :nobodyさん:2021/06/07(月) 23:45:18.91 ID:???.net
作りたいアプリあるけど9待ちにするか8で始めるか
もしくはLaravelじゃなくてExpressにするか
ただしRailsだけは使わん
phpかjsだけにしておきたい

219 :nobodyさん:2021/06/07(月) 23:50:05.67 ID:???.net
すぐ動けるなら8で始めなよ
9を待つ意味はない

220 :nobodyさん:2021/06/08(火) 00:21:12.96 ID:???.net
>>214
3、4年くらいかな?

221 :nobodyさん:2021/06/08(火) 00:37:18.67 ID:???.net
6LTSでも大丈夫?

222 :nobodyさん:2021/06/08(火) 12:49:13.38 ID:???.net
>>217
2.35億年じゃないか?

223 :nobodyさん:2021/06/08(火) 13:34:03.48 ID:???.net
6から9より
8から9のほうが移行楽

224 :nobodyさん:2021/06/08(火) 13:43:54.81 ID:???.net
そもそもそんなに移行するものなのかと

225 :nobodyさん:2021/06/08(火) 13:51:11.90 ID:???.net
LTSごとにでいいんじゃないか?
6で開発してる人が移行するにしても9からだろ

226 :nobodyさん:2021/06/08(火) 14:13:45.20 ID:???.net
既に6で始めてるなら9が出てから移行すれば良いと思うけど、新たに6で始める意味は無いな。
6より8のほうがbugfixのサポート長いし、移行も楽だし。

227 :nobodyさん:2021/06/08(火) 15:21:07.17 ID:???.net
Laravelでやってはいけないアンチパターンみたいなものってあるんですか?

228 :nobodyさん:2021/06/08(火) 15:24:49.84 ID:???.net
seederで本番データを登録はできるけどやっては駄目だね
seederはあくまでもテストデータを登録する用途だから
本番データを登録したいならartisan make:command等で専用コマンドを作ったほうがいい

229 :nobodyさん:2021/06/08(火) 18:11:14.76 ID:???.net
本番だけseederで登録しないようにする方法ありませんか
--seedの指定しなければ良いんでしょうけどうっかりもあるので

230 :nobodyさん:2021/06/08(火) 18:15:40.34 ID:???.net
app.envみて制御すればいいじゃん

231 :nobodyさん:2021/06/08(火) 22:40:41.09 ID:???.net
いやいや、制御も何も本番でseeder読み込もうとしたらプロンプトでてきて、本当にやるかどうか聞かれるはず。

232 :nobodyさん:2021/06/09(水) 00:05:48.09 ID:???.net
それはマイグレーションでも同じだったような
破壊的操作に関して本番環境でチェック入ってるのは当然かと

233 :nobodyさん:2021/06/09(水) 10:00:20.33 ID:???.net
選択肢だけじゃミスは防げないよね

234 :nobodyさん:2021/06/09(水) 10:19:19.85 ID:???.net
Laravel使うとLaravel縛りで苦しむみたいだな

235 :nobodyさん:2021/06/09(水) 10:24:12.53 ID:???.net
他のフレームワーク使っても結局一緒では?

236 :nobodyさん:2021/06/09(水) 10:53:19.62 ID:???.net
Zend Frameworkこそこの世で一番自由

237 :nobodyさん:2021/06/09(水) 10:54:27.82 ID:???.net
皆がオレオレフレームワーク作る時代はもう来ないのか

238 :nobodyさん:2021/06/09(水) 11:20:05.20 ID:???.net
来ないだろ
面倒なことが多すぎる

239 :nobodyさん:2021/06/09(水) 20:50:19.63 ID:???.net
どうだろ?
APIだけなら別に何でも良さそうだけどね

240 :nobodyさん:2021/06/09(水) 22:00:38.77 ID:???.net
>>239
でもAPIはオレオレ詐欺フレームワークで作るのきつくない?
それだったらLaravel使ったほうがいいでしょ

241 :nobodyさん:2021/06/09(水) 22:18:30.24 ID:???.net
APIって配信元がマニュアル公開してるから、作りやすくないか?
むしろフレームワーク通すとややこしくなりそうだが

242 :nobodyさん:2021/06/09(水) 22:31:32.02 ID:???.net
この板で勢いあるのがこのスレだけなんだな
過疎板でいつ消えるかわからんけど

243 :nobodyさん:2021/06/09(水) 22:41:18.94 ID:???.net
どうでもいい

244 :nobodyさん:2021/06/09(水) 22:43:42.01 ID:???.net
お前らってコントローラの名称を単数形と複数形どっちにしてる?

245 :nobodyさん:2021/06/09(水) 22:48:27.05 ID:???.net
Laravelのインストールに成功しました(10年ぶり2回目)
インストール手順変わったよね?今回めっちゃ苦労したぞ

246 :nobodyさん:2021/06/10(木) 09:25:36.87 ID:???.net
何に苦労した?

247 :nobodyさん:2021/06/10(木) 10:22:16.20 ID:???.net
Composerがエラーを出す

248 :nobodyさん:2021/06/10(木) 11:10:59.75 ID:???.net
ちなみに、エラー文をそのままググったけどよく分からなかった

249 :nobodyさん:2021/06/10(木) 11:13:22.95 ID:???.net
Composerは未完成なツールだから使っちゃダメ
Composerに依存したシステムは破綻する

250 :nobodyさん:2021/06/10(木) 12:37:07.74 ID:???.net
Composerのエラーって何々しろって出てるけど英語読まない人が対応できないみたいね

251 :nobodyさん:2021/06/10(木) 15:06:52.90 ID:???.net
>>250
多分日本語で書いてあっても読まないだろうな

252 :nobodyさん:2021/06/10(木) 15:18:37.90 ID:???.net
だってAllowed memory size of 2097152 bytes exhaustedとか出るけど増やしても増やしても解決しないんだぜ
読んで対応したぐらいで解決してりゃ誰も苦労しないよ

253 :nobodyさん:2021/06/10(木) 15:42:14.81 ID:???.net
>>244
githubにアップされてるLaravelベストプラクティスを読めば良いぞ。

254 :nobodyさん:2021/06/10(木) 15:43:05.95 ID:???.net
composerを2にアップデートしてないやつがメモリエラーで死んでる印象。

255 :nobodyさん: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. って出てるはずだけど

256 :nobodyさん: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:
だったけど、ぐぐって出た対策じゃ解決しなかった。タイムアウトとか言われてもどうしたらいいんだよ。

257 :nobodyさん:2021/06/10(木) 20:26:57.37 ID:???.net
お前らのためにベストプラクティス貼ってやるよ
https://github.com/alexeymezenin/laravel-best-practices/blob/master/japanese.md

258 :nobodyさん:2021/06/10(木) 20:35:58.99 ID:???.net
>>257
バリデーションはモデルでやれよ
Requestでやるとバッチ処理の時に困るぞ

259 :nobodyさん:2021/06/10(木) 20:41:48.68 ID:???.net
>>258
前もそれ書いてたよね。Laravelエアプかよ。

260 :nobodyさん:2021/06/11(金) 04:48:21.12 ID:5vkPxv+8.net
できるだけCSSフレームワーク使いたくない派なんですけど、jetstreamがtailwindとのことなので、どうせjetstream使ってtailwind読み込むならtailwind使っちゃったほうがいいですかね?

261 :nobodyさん:2021/06/11(金) 08:41:44.66 ID:???.net
>>260
そりゃそうよ。まぁtailwindCSS使った方が楽なことが多いから。アホみたいにCSS設計とか命名規約とかに無駄な時間使うことも無くなるし。

262 :nobodyさん:2021/06/11(金) 09:03:48.83 ID:???.net
前に書いてたから何なんだ?
エアプって何?
言いたいことがあるなら普通に言えよ

263 :nobodyさん:2021/06/11(金) 09:26:23.73 ID:???.net
>>262
Laravelのフォームリクエストは、外部からの入力を検証するための機構だからモデルでやれって主張はアホすぎるってこと。MVCでは、入力値の検査はコントローラーの責務。

RailsとかがModelで検査してるのは、MVCよりActiveRecordのルールを優先した結果に過ぎない。

そもそも画面やAPIからの入力とバッチの入力のバリデーション仕様が同じになるケースなんてまず無いと思うんだけど?

誰にも相手にされなかった主張を、また繰り返すのはやめたほうが良いぞ。

264 :nobodyさん:2021/06/11(金) 09:46:27.72 ID:???.net
MVVMだとValidationはどこでやるんですか?

265 :nobodyさん:2021/06/11(金) 09:59:29.37 ID:???.net
Cakeだとバリデーションはモデルに書いてたけど、Laravelではダメなん?

266 :nobodyさん:2021/06/11(金) 10:03:18.73 ID:???.net
>そもそも画面やAPIからの入力とバッチの入力のバリデーション仕様が同じになるケースなんてまず無いと思うんだけど?

え、そんなことはなくない?
1つのテーブルにデータを追加するシンプルな要件だと、WebからフォームをPOSTしてもバッチで追加してもルールは一緒になるだろう
エラーメッセージの出し方とかは異なると思うけども、バリデーターをそれぞれ別に書いたりはしないと思う

267 :nobodyさん:2021/06/11(金) 10:41:07.56 ID:???.net
>>260
どのフレームワークを使うか選択できなかったっけ?

268 :nobodyさん:2021/06/11(金) 10:47:54.80 ID:???.net
モデルに紐付かないバリデーションはどこに書けばいいですか?

269 :nobodyさん:2021/06/11(金) 10:51:50.88 ID:???.net
コントローラー

270 :nobodyさん:2021/06/11(金) 11:20:17.41 ID:???.net
議論する際「どこでやるか」と「どこに書くか」を混同しないようにしないといかんな。
モデルに書いてもリクエストに書いても、流れ上は「コントローラーでやる」と言っても間違いではない。

271 :nobodyさん:2021/06/11(金) 11:30:29.65 ID:???.net
議論するなら、「俺はAに書いてる。なぜなら○○だからだ。Bに書くと○○で駄目だ」
って理由まで答えないと成立しないけどな

272 :nobodyさん:2021/06/11(金) 11:44:57.48 ID:???.net
>>269
268です。ありがとうございます。
ちなみにそれだと、
Aというルートではコントローラーにバリデーションを書き、
Bというルートではモデルにバリデーション書く、
というようにバラバラになってしまうんですが、気にしないほうが良いのでしょうか?
それとも一律コントローラーに書くほうが良いのでしょうか?

273 :nobodyさん:2021/06/11(金) 11:52:58.61 ID:???.net
>>264
例えばLivewireだとViewModelでやる。

>>265
フレームワークの仕様による。LaravelはController。

>>266
どういうバッチを想定している?ファイルから一括でデータを投入するみたいなやつ?

274 :nobodyさん:2021/06/11(金) 12:04:14.61 ID:???.net
>>270
それが許されるなら何でもありですがな

275 :nobodyさん:2021/06/11(金) 12:17:46.77 ID:???.net
バリデーションのルールをコントローラーに直書きするのがよくないと思う
使い回したりメンテしやすいよう別の場所に出して、コントローラーはそれを呼び出すだけにしたい
じゃあどこに書くか?となると多分モデルなんだが、LaravelのRequestに書く仕様はちょっとビックリした
一見理に適っていて便利でもあるけど、既出の通りコマンドから同じバリデーションを実行する場合は一工夫必要になる

276 :nobodyさん:2021/06/11(金) 12:33:09.21 ID:???.net
>>275
コントローラーのメソッドから呼び出すのは良くて、コマンドのメソッドから呼び出すのが良くない理由もお願いします。

277 :nobodyさん:2021/06/11(金) 12:41:21.43 ID:???.net
リクエストのrules()メソッドにルールがまとまって、コントローラーとかにルールが散らばらなくてメンテしやすいと思うけどなあ

278 :nobodyさん:2021/06/11(金) 13:04:31.37 ID:???.net
お前ら細けえな
好きなように書けよ
どうせ誰もメンテしなくなるんだし
バリデーションなんて動けばいい

279 :nobodyさん:2021/06/11(金) 13:14:26.50 ID:???.net
>>276
コマンドからはFormRequestなんて使わないから
呼び出したくても呼び出せないぞ

とは言え、rulesはpublicだしどうしようもないわけではない
うまくやれば共通化もできるかもしれない

280 :nobodyさん:2021/06/11(金) 13:15:28.69 ID:???.net
>>272
そうだねそうなるよ

281 :nobodyさん:2021/06/11(金) 13:15:52.15 ID:???.net
>>263
逆にフォームからとバッチからでバリデーションルールが異なるケースってどんな時だよ
そんなの見た事ないわ

282 :nobodyさん:2021/06/11(金) 13:27:07.72 ID:???.net
コントローラにバリデーションルールダラダラ書いたコード納品されたら俺だったらキレるわ

283 :nobodyさん:2021/06/11(金) 13:46:10.64 ID:???.net
メンテしない案件でも納品直前に「やっぱりパスワードの文字数○○文字以上に変えてくれ」なんて依頼よくあるからなあ
「空の時に表示が崩れる」という理由で本来必須じゃなかった項目をrequiredに変えたり
クライアントは馬鹿だから色々予期せぬ事が起こる

284 :nobodyさん:2021/06/11(金) 14:44:13.29 ID:???.net
>>282
じゃあ今度からはモデルにルール書くね

285 :nobodyさん:2021/06/11(金) 16:02:51.40 ID:???.net
メンテ=他人に見せることばかり考えてるやついるな
メンテは自分が見てわかりやすくするためのものでもあるだろ
好きなように書いてて、半年後に見ても思い出せるのかよ

286 :nobodyさん:2021/06/11(金) 17:22:45.42 ID:???.net
Laravelってバリデーションどこに書くかでも大論争になるんですね
Symfony選んどいてよかった

287 :nobodyさん:2021/06/11(金) 18:26:53.59 ID:???.net
laravel使いは年収低いから仕方ない

288 :nobodyさん:2021/06/11(金) 18:35:08.68 ID:???.net
年収高い言語だと論争が起きないの?

289 :nobodyさん:2021/06/11(金) 18:53:53.69 ID:???.net
言うほど大論争になってるか?
ボケがツッコまれてるだけやろ

290 :nobodyさん:2021/06/11(金) 20:04:20.61 ID:???.net
Requestでバリデーションする方が分離されるから個人的には好きだけどね
モデルでやるとかは無いわw

291 :nobodyさん:2021/06/11(金) 21:33:26.10 ID:???.net
間違ってたら考えを改めたいから言って欲しいんだけど
何でFormRequestがやってるバリデーションって入力された値が想定してる値かってバリデーションなので
その先にあるであろうテーブルとかを考慮しちゃいけないものだと思ってる
例えば同じテーブルに入力されるデータでも管理者権限と一般ユーザー権限でバリデーションルール変えたいってケースなんてザラだし
モデルに入力される値のバリデーションは持てるの担当範囲外でその担当は
おそらくバックエンドにあるデータベースが受け持ってて入力値が正しくない場合
Exceptionって形で戻してるって解釈してる
違うかな

292 :nobodyさん:2021/06/11(金) 23:56:27.97 ID:???.net
フレームワークなのに決まってないのかよ

293 :nobodyさん:2021/06/12(土) 00:03:21.17 ID:???.net
バッチ処理のことを考慮したらFormRequestクラス使うのはありえないんだけどね
ここはレベルが低いからそこまで理解できないらしい

294 :nobodyさん:2021/06/12(土) 00:03:33.13 ID:???.net
今日もクソ暑い 毎年思うんだけどなんか1年のうちで暑くなる時期あるよな

295 :nobodyさん:2021/06/12(土) 00:05:27.36 ID:???.net
>>293
正直俺もFormRequest使ってるぜってどや顔でこのスレの住人に言われたときは愕然としたな
バッチ処理何も考慮してないよな こいつらマジでバッチ処理どうやってるんだろうか

296 :nobodyさん:2021/06/12(土) 01:33:16.00 ID:???.net
いうほどバッチ処理なんてあるか?
なんの処理を気にしてるわけ?

297 :nobodyさん:2021/06/12(土) 01:34:05.27 ID:???.net
バッチ処理なんてそもそも間違った入力を渡す事なんか無いやろw
頭悪すぎwwwwwwwwwwwwwwwwwww

298 :nobodyさん:2021/06/12(土) 02:01:48.82 ID:???.net
>>297
こういうやつの為に、バッチにもバリデーションが必要なんだよな。

299 :nobodyさん:2021/06/12(土) 02:04:17.91 ID:???.net
>> 297
バッチ処理で間違った入力がされない保証が100%じゃない限り、本来ならバリデーションするべきとは思うけど面倒だからやらないで運用でカバーしてもらう事が多いのも事実

バッチ処理がBatchableジョブの事を言ってるのかartisanコマンドで任意に叩いた処理の事言ってるのかどちらを指してるかわからんけど
どっちにしろ動かす状況やら権限でバリデーションルールが変化するわけだから
機能(バッチ処理)ごとにそれぞれルールは必要じゃないの?
Batchableジョブでミドルウェアが使える様になってるのってリクエストの時と同じように
そこでバリデーションかけたり前処理できる様にしてあるって思ってたけど

300 :nobodyさん:2021/06/12(土) 04:22:05.20 ID:???.net
もうCloseされちゃったけど最近のissuesでもFormRequestsはバッチ処理に向いてないから廃止しようって話あったよね
やっぱりコミュニティでもモデルにルール書く人が大半らしい

301 :nobodyさん:2021/06/12(土) 05:03:09.94 ID:???.net
>>300
laravelのOSSかなりみて回ったけど、FormRequest使ってる奴らばかりだったぞ。その話は疑わしいのでソースを提示してくれ。

302 :nobodyさん:2021/06/12(土) 05:05:03.89 ID:???.net
バッチがーて言ってるやつは、まず具体的にどんな処理を想定しているのか答えてくれ。

303 :nobodyさん:2021/06/12(土) 05:33:28.20 ID:???.net
モデルにバリデーションルール書く場合で
ユーザーのロールによってバリデーションルール変える必要があった時ってどんな書き方してるのか知りたい

304 :nobodyさん:2021/06/12(土) 07:00:44.62 ID:???.net
間違った住所のままDBに登録される

出荷バッチが働き間違った住所のまま伝票に印刷される ※1

間違った住所の伝票が貼られたまま郵便局に持ち込まれる

ご指定の住所に行き当たりませんでしたといって荷物が返ってくる

商品がこないからキャンセルだと客から連絡が来る

おまえらがバリデーションしないせいで月間300件の荷物が返ってくる
1つ送るのに1050円だから1050*300=315000円の損失

そして※1のところで伝票印刷アプリが「取り込みすら無理なデータだけど」ってエラー出すからバッチ処理が止まる
データ修正してバッチを再投入
だが、ほかにも間違ってる住所があるからまたやり直しっていうのを何度も繰り返す

とにかく間違ったデータが入力されてしまうっていうのは損失として大きいんだよ

305 :nobodyさん:2021/06/12(土) 07:06:50.30 ID:HaomJXxh.net
>>303
Laravelで普通にできるだろ

306 :nobodyさん:2021/06/12(土) 07:06:56.41 ID:???.net
>>304
うん?バッチってDBから一覧を抽出するバッチの話なの?バリデーションは何の関係があるの?そんなの登録画面でバリデーションすれば良いだけでしょ?

307 :nobodyさん:2021/06/12(土) 07:22:55.34 ID:???.net
>>302
バリデーションが必要なデータを追加するバッチだよ
それを聞いてとうするんだよ

308 :nobodyさん:2021/06/12(土) 07:48:40.82 ID:???.net
>>307
具体的にて書いたはずなんだが。モデルで書けっていってるやつの主張が意味不明だから。

まず、画面で入力と同じ操作をバッチでもやるって前提が理解できない。

俺の経験上、大体のデータは親子関係にあって、入力する画面は分かれている、バッチだとそれらをまとめて投入するから画面とバッチではバリデーションのルールは異なる。

更に、そんなバッチ自体稀だから、わざわざそのためだけにLaravelの標準を無視してモデルに書くって発想が理解不能。

309 :nobodyさん:2021/06/12(土) 07:56:05.02 ID:???.net
モデルに書くのに違和感あるって人はLaravelしかフレームワーク触ったことない人なの?
煽りじゃなくて純粋な疑問

310 :nobodyさん:2021/06/12(土) 07:56:31.89 ID:???.net
そもそもバッチにパラメータなんて基本ないからな
デイリーだとその日が分かればいいだけだし
特殊なバッチのようなものならそもそも管理画面でパラメータ入れて実行やろ

311 :nobodyさん:2021/06/12(土) 08:02:54.84 ID:???.net
>>309
処理の流れからして先にバリデーションするやろ
モデルでするとかそもそも考え方が異常やろ
複数のモデルを使う時、2個目のモデルに投入するまでそこで使うパラメータはエラーが分からんの?w
バカバカし過ぎる

312 :nobodyさん:2021/06/12(土) 08:03:47.75 ID:???.net
>>309
モデルにバリデーションがあるほうがMVCの原則としてはおかしいのだよ。上でも書いたけど、モデルにバリデーションてのは、Active Record由来。
だから、モデルでのバリデーションに違和感持たない人は、Rails以降のなんちゃってMVCフレームワークしか知らないって理解。

313 :nobodyさん:2021/06/12(土) 08:22:52.49 ID:???.net
>>308
どこまで具体的に要るんだ?実際のコード貼れってか?ちょっとそれは今すぐできないんだが
例えば最近やったのでは、1日1回他社がS3に置いたcsvデータを取り込んで、テーブルにレコード追加するバッチ
requiredやuniqueやdateなど普通にバリデーションが必要でバリデーションしたよ
この程度の例も思い付かないなんてどんだけ経験値低いんだよ

314 :nobodyさん:2021/06/12(土) 08:26:48.44 ID:???.net
>>313
経験値ではなくて規模の話だね。そこそこ正規化されたデータしか扱ったことないんで。

あとそれがどれぐらいあんの?画面10あって、そんなのが1、2程度なら、わざわさモデルでバリデーションするようアーキテクチャを変更するのはアホだってことぐらいは、理解してくれるよね?

315 :nobodyさん:2021/06/12(土) 08:33:20.84 ID:???.net
>>312
その辺は一応浅く理解してるけどコントローラーにもリクエストにも書きたくない場合モデルしかなくね?と思った
Cakeでもモデルに書いてたし
他にもっといい場所あったら知りたい

316 :nobodyさん:2021/06/12(土) 08:49:11.01 ID:???.net
>>314
確かにうちは小規模案件が多い、その意味では俺も経験値足りてないが

もちろん不必要な所まで変えなくてもいんじゃね?俺もRequestのバリデーション使うことはある
ただそれだとバッチの時に不便だから、うちではモデルに書いたバリデーションメソッドを、
Webの場合はコントローラー、バッチの場合はコマンドから呼び出すという実装が多い
だから>>257のページみたいにリクエストクラスでやるのがベストプラクティス!と言いきられるとモヤモヤする

317 :nobodyさん:2021/06/12(土) 09:04:00.24 ID:???.net
週末に気持ち悪い奴らだな
みんな可愛い彼女連れて楽しく過ごしてるのにバリデーションごときに熱くなって悲しくならんの?

318 :nobodyさん:2021/06/12(土) 09:09:31.93 ID:???.net
考え方違くね?
モデルに入るデータをバリデーションするんじゃなくてS3にあるCSVデータが正しいフォーマットかをバリデーションするんじゃないの?

後laravelしか触ってないからモデルに書く事に違和感があるんじゃなく
laravelがリクエストでバリデーションする機能を提供してるからその方針を尊重してるってだけ
使ってるフレームワークがビューテンプレートに書くって方針ならそうするよ
自分のやりやすいを優先して得られるものなんてないでしょ

319 :nobodyさん:2021/06/12(土) 09:12:38.72 ID:???.net
>>304
間違った住所のままDBに登録される

出荷バッチが働き間違った住所のまま伝票に印刷される ※1

バッチ動く前に「間違った住所のままDBに登録される」って書いてあるけど、そこでバリデーションが必要じゃん

320 :nobodyさん:2021/06/12(土) 09:17:14.51 ID:???.net
>>315
cakePHPはRailsを真似たフレームワークの代表みたいなもんだから、例としては不適切。

321 :nobodyさん:2021/06/12(土) 09:18:38.00 ID:???.net
>>316
バッチもあるやつだけ、モデルにバリデーションを移しているの?それはそれで大変そうな・・・

322 :nobodyさん:2021/06/12(土) 09:20:50.82 ID:???.net
>>318
そうそう、フレームワークの標準にのることが大事。それを無視して俺流をはじめちゃうと、オレオレフレームワークの亜種になってしまう。
その結果、新規に参画するエンジニアや引き継ぐ場合の学習コストが跳ね上がったり、メンテできなくて匙を投げられるみたいなことが起きる。

323 :nobodyさん:2021/06/12(土) 09:34:05.89 ID:???.net
>> 322
基本的に面倒くさがりだから独自ルールで書いたらどんなルールかをドキュメントに残さないと引き継げないけど
フレームワークの標準に合わせとけば引き続ぎはフレームワークの作法でやってるのでよろしくで終わる
理解できないって話ならそれは本人の技量であってドキュメントを残してないこっちのせいじゃないって突っぱねられる

324 :nobodyさん:2021/06/12(土) 09:58:26.28 ID:???.net
めんどくさいからちょっとまとめてやるわ
バリデーションて言っても厳密には2種類ある
・フォームから送信されたデータのバリデーション
・DBに保存するデータのバリデーション
例を挙げると長くなるので省略する
前者はリクエストで、後者はモデルで担当するのが正解だが
シンプルな要件ではこの2種類が同じになることも多く、その場合はどこに書くか議論の余地が出て来る

325 :nobodyさん:2021/06/12(土) 10:02:25.63 ID:???.net
まとめなくていい
スルー耐性つけろ

326 :nobodyさん:2021/06/12(土) 10:05:09.96 ID:???.net
すまん、スレの総意的には、Requestsクラスは非推奨で、モデルでバリデーションするのが正解ってことでOK?

327 :nobodyさん:2021/06/12(土) 10:07:15.93 ID:???.net
バッチ処理に向く、向かないって言ってる意味がよく分からん
要は正しいデータ登録できるかできないかって話だよね?
バリデーションの機能そのものの話だよな

328 :nobodyさん:2021/06/12(土) 10:07:22.63 ID:???.net
モデルでバリデーションするって言ってる奴は.envをコミットするって言ってるやつと同一人物だろw

329 :nobodyさん:2021/06/12(土) 10:10:54.19 ID:???.net
スレの総意としてはどっちでもいいだろ

330 :nobodyさん:2021/06/12(土) 10:16:45.06 ID:???.net
なんでスルーするんだ?
有益な話だと思うけど

331 :nobodyさん:2021/06/12(土) 10:34:11.31 ID:???.net
>>321
じゃあそういう時他にどうすればいいの?

332 :nobodyさん:2021/06/12(土) 11:23:04.15 ID:???.net
異常値は入力時に弾いてDBに入れないのがシステム屋さんの考え方。WEB屋さんはDBにも異常値があるものを作るようだ

333 :nobodyさん:2021/06/12(土) 11:31:37.43 ID:???.net
俺のところはlocalhostからしかアクセスできないバッチ用コントローラを配置して
そいつに対して他社システムが配置したCSVから読み込んだデータをPOSTしてるな
だからFormRequestは普通にバッチで使えてたな

334 :nobodyさん:2021/06/12(土) 11:33:22.83 ID:???.net
>>331
それぞれでバリデーション書け。理由は、ユースケースが異なるから。結果的に今は同じだからって共通化しようとするのは、経験の浅いエンジニアが犯しやすい過ち。

335 :nobodyさん:2021/06/12(土) 11:40:55.95 ID:???.net
>>334
それLaravelではアンチパターンだよ

336 :nobodyさん:2021/06/12(土) 11:41:08.06 ID:???.net
バッチからとフォームからでルールが異なるってレアケースだし、共通化できる部分はすべきだと思う
あちこちに分散して書くと非常にバグの基になりやすい
それぞれの担当者が別で開発終盤の忙しい時に仕様が変わって片方にしかちゃんと伝わらないとか、超ありがち

337 :nobodyさん:2021/06/12(土) 11:44:42.08 ID:???.net
>>333
それはそれで苦肉の策って感じで嫌だな
絶対駄目でもないけど

338 :nobodyさん:2021/06/12(土) 12:16:55.27 ID:???.net
あらゆるインプットにはバリデーションが必要で、特定のインプット方法にしか使えない形でバリデーションを実装するのはどうなの?っていうだけなんだが。

特定のケースならバリデーションはいらない、っていうのはむしろ例外だから考慮しなくていい。

339 :nobodyさん:2021/06/12(土) 12:25:37.45 ID:???.net
>>335
勝手にLaravelのアンチパターンとか言い出して何様www

340 :nobodyさん:2021/06/12(土) 12:29:45.84 ID:???.net
>>338
Laravelベースの人気OSSも一通り調べてみたけど、ユースケースごとにバリデーションは分けて定義している。例えば同じuserモデルに対する処理でも、登録と更新ではFormRequestを分けて用意している。

341 :nobodyさん: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文字まで
これをどういう形でバリデーション実装するの?

342 :nobodyさん:2021/06/12(土) 13:03:45.28 ID:???.net
>>341
設計が悪いと思わんのかw

343 :nobodyさん:2021/06/12(土) 13:07:54.18 ID:???.net
もうLaravelも9が出るというのに未だにFormRequests使ってるやつが居て草
バッチ処理のこと何にも考えてないんだろうね

344 :nobodyさん:2021/06/12(土) 13:08:43.28 ID:???.net
やっぱRails使いたちのほうが圧倒的にレベル高いわ
Laravel使ってる奴らやべえな

345 :nobodyさん:2021/06/12(土) 13:15:55.81 ID:???.net
>>344
そんな化石使ってるやつのほうがヤバいからw

346 :nobodyさん:2021/06/12(土) 13:19:21.91 ID:???.net
>>343
バッチ処理でバリデーションとかまじで笑えるwww
お前開発したことないやろ?w

347 :nobodyさん:2021/06/12(土) 13:27:47.73 ID:???.net
.envと.env.backupが.gitignoreで除外されてるけど
.env.helloとかは問題なく追加できる

これってLaravelの思想としては初期の.envや.env.backupを管理対象にしてないのは
初心者に対する配慮の上でのことですよね?
devenvの仕組み上.env.aとか作れるので自分で管理しろって意味ですよね?

348 :nobodyさん:2021/06/12(土) 13:34:09.52 ID:???.net
>>341
設計が悪い 以上この話はもう終わり

349 :nobodyさん:2021/06/12(土) 13:35:21.15 ID:???.net
そもそもバッチ処理ってのが何を言ってるかよく分からん
バッチ処理云々言ってるやつは、
まずはバッチ処理そのものについてまずは説明してほしいわ
バリデーション云々の話はまずは置いといて良い

350 :nobodyさん:2021/06/12(土) 13:37:17.78 ID:???.net
>>341
そんなシステムはおかしいのでこの場合のバリデーションを考えるのは時間の無駄です

351 :nobodyさん:2021/06/12(土) 13:39:10.54 ID:???.net
>>349
バッチ処理の意味知らない人初めて見たかもしれない
このURLに説明書いてますよ
https://www.otsuka-shokai.co.jp/words/batch-processing.html

352 :nobodyさん:2021/06/12(土) 13:44:19.29 ID:???.net
>>341
設計ひどすぎてワロタ
それは単純な例だからそういう設計ってことでいんだよな?
まさか実際にリリースしたことのある製品がそういう設計になっているんじゃないよな?

353 :nobodyさん:2021/06/12(土) 13:59:25.34 ID:???.net
>>351
そのリンク先とLaravelのバリデーションとの関係は説明できます?

354 :nobodyさん:2021/06/12(土) 14:00:41.19 ID:???.net
>>353
バリデーションの説明はまだいらないとのことだよ
>>349はバリデーションの話はまず置いておいてバッチ処理について教えてほしいって言ってるんだから

355 :nobodyさん:2021/06/12(土) 14:18:30.51 ID:???.net
上の方のレスも読んでなんとなく言ってる意味は分かったが
バッチ処理の内部で起きてる話のことで、
それをバッチ処理と相性悪いって言われても意味は伝わらんわな
言い方が悪い

356 :nobodyさん:2021/06/12(土) 14:19:18.33 ID:???.net
やっぱすげえ動物園みがあるなこのスレ
いつ来ても苦笑させられる

357 :nobodyさん:2021/06/12(土) 14:24:11.67 ID:???.net
>>352
こんな設計あるわけないでしょ
routeによってバリデーションの内容が変わるってのを極端に書いただけ
ここまで極端じゃなくとも大なり小なりrouteで変化するルールをどうやって対応するのかが聞きたかっただけ
それからクライアントからの絶対条件だったっ場合
設計がおかしいから変えないなら仕事したくありませんとかって言うわけでもないだろうし
FormRequestに書くって選択肢を許容すればそんなゴネる必要ないのに・・・
バリデーション分けると寿命が減ったりするわけでもないんでしょ?

358 :nobodyさん:2021/06/12(土) 15:17:08.81 ID:???.net
>>357
だからrouteでモデルの解釈が変わるというのが設計が悪いという証拠

359 :nobodyさん:2021/06/12(土) 16:00:14.29 ID:???.net
その考え方だと
モデルに対してwebで出来ること以上の機能を持ったapiは設計が悪いってならない?

360 :nobodyさん:2021/06/12(土) 16:04:49.88 ID:???.net
>>348
一言で済むならプログラマー入りませんよ
頭の悪い無能は引っ込んでおれ

361 :nobodyさん:2021/06/12(土) 16:07:15.24 ID:???.net
別にrouteによらなくてもバリデーションルールが様々な条件によって変わることは普通にあり得るし
Laravelも他のフレームワークもその辺は割と柔軟にできるように工夫してるでしょ
そしてそれはFormRequestに書くかどうかと全く関係ないぞ、スレを面白くしようとしてるのか知らんが変にややこしくするな

362 :nobodyさん:2021/06/12(土) 16:10:43.21 ID:???.net
FormRequestはバッチで使用できないから廃止しようというissuesが前に立ったけど
結局否決されてクローズだったな

363 :nobodyさん:2021/06/12(土) 16:12:25.14 ID:???.net
別に廃止はしなくていいじゃん 使わなきゃいいだけ

364 :nobodyさん:2021/06/12(土) 17:28:44.55 ID:???.net
>>351
機能文盲のようなので横から捕捉しておくと、ここで求められているのは、バリデーションを必要とするバッチ処理というものが何なのかって話だよ。
おそらく、それをはっきりさせた後にバリデーションについて語りたいんだろう。

365 :nobodyさん:2021/06/12(土) 17:32:15.47 ID:???.net
>>364
違う 俺が言ってるのはまずはバリデーション抜きでバッチ処理を語ってくれってこと

366 :nobodyさん:2021/06/12(土) 17:33:43.08 ID:???.net
バッチでユーザーリストのcsvファイルを読み取って、追加更新するとか。
これくらいも思いつかないのか。。。

367 :nobodyさん:2021/06/12(土) 17:35:40.77 ID:???.net
>>365
俺が機能文盲だったのか。100年ぐらいROMってるわ。

368 :nobodyさん:2021/06/12(土) 18:49:14.02 ID:???.net
FormRequestでバリデーション実装しているやつはバッチ処理を考えていないを指摘したら、急にスレの流れが変わってそのことに触れないようにしててワロタ

369 :nobodyさん:2021/06/12(土) 19:03:17.61 ID:???.net
やっぱLaravelスレって零細しか居ないんだろうなぁ
大企業向けワクチン接種の予約した人もここには居ないんだろうな

370 :nobodyさん:2021/06/12(土) 19:31:11.49 ID:???.net
昔は大企業にいたけどやめちゃったよ

371 :nobodyさん:2021/06/12(土) 19:34:25.88 ID:???.net
>>369
おれ一応大企業ね。1000人超えてるから。ただし事業部制だから全然実感は無い。

372 :nobodyさん:2021/06/12(土) 19:39:19.73 ID:???.net
おそらくWEBインターフェースを使用しない話をしてるのだろうが、
それをバッチ処理という括りで話すのがまずおかしい
おそらく永遠に話が噛み合わない
バッチ処理言ってるのは古いシステムを触ってるおっさん世代と思われる

373 :nobodyさん:2021/06/12(土) 20:06:17.54 ID:???.net
>>372
laravelでバッチってワードが出てくるのなんて
ジョブバッチしかないんだからそれなんじゃないの?
タスクスケジュールを指してるとはとても思えないし
artisanはコマンドだし

374 :nobodyさん:2021/06/12(土) 20:15:58.06 ID:???.net
バッチ処理が必要なシステムとか古すぎて草
何年前の設計思想だよw

375 :nobodyさん:2021/06/12(土) 20:26:58.08 ID:???.net
働いたことがないやつがたくさんいるなこのスレ

376 :nobodyさん:2021/06/12(土) 20:28:21.94 ID:???.net
>>374
後学のために教えて欲しいんだが、例えば50万件のデータを毎日DBに投入するときは、どんな設計にすれば良いの?

377 :nobodyさん:2021/06/12(土) 20:29:40.76 ID:???.net
>>376
>>374が毎日手で入れる

378 :nobodyさん:2021/06/12(土) 20:32:35.42 ID:???.net
>>377
すごい!モダンだ。

379 :nobodyさん:2021/06/12(土) 20:42:28.46 ID:???.net
俺の会社も考えたらバッチ処理ってないな
いろいろな設備や予約を行うためのシステムだけど利用者に関するデータはそもそも他社のアカウント管理サーバがあるからそこを参照しているだけだし
実際の予約情報もまた他社のExchange Web ServicesにアクセスしてデータのCRUDを行うだけ
備品や施設情報もExchange Web Servicesから参照しているだけだし

380 :nobodyさん:2021/06/12(土) 20:48:28.91 ID:???.net
>>361
俺としてはフレームワークでlaravelを選択した際には
リクエストされた値に対してのバリデーションなんだからform requestに書くって自然な流れだと思ったんだけど
modelに書くのが一般的って言うからどう対応してるのかが知りたかったんだよね
そっちのがlaravelの文脈として理にかなってるなら考えを改めて、ウソ教えちゃった人達に謝って訂正しようと思ったから粘着質になってしまった
申し訳ない

381 :nobodyさん:2021/06/12(土) 20:53:54.35 ID:???.net
FormRequest書いたルールをrule()メソッドで参照したらどこでもバリデーションできるけどそういう話じゃないだろな多分

382 :nobodyさん:2021/06/12(土) 21:11:30.26 ID:???.net
いやほとんどのケースでFormRequestに書くで別に問題ないだろうし
他で必要な場合は>>381みたいな方法でも別にいいと思うぞ
でも他のFWみたいにモデルに書く手もあると思うし、何故かそれを認めない輩も一定数いる模様(一人かも知れんが)

383 :nobodyさん:2021/06/12(土) 21:12:30.93 ID:???.net
バッチガー言ってる奴って頭悪そうw

384 :nobodyさん:2021/06/13(日) 01:31:01.07 ID:???.net
転職サイトとか見ててもLaravel案件は単価低いから仕方ないよね
Laravelというかphpが低いのかもしれないけど

385 :nobodyさん:2021/06/13(日) 01:42:59.42 ID:???.net
Windowsの古のシステムを保守してたおっさんが紛れ込んだと思われる

386 :nobodyさん:2021/06/13(日) 07:47:48.47 ID:???.net
実際、バッチって必要なもんなの?

387 :nobodyさん:2021/06/13(日) 08:28:49.94 ID:???.net
AWSだってわざわざバッチ用のサービスを用意しているというのに、このスレの奴らは大量のデータを一括で処理するようなユースケースに遭遇したことがないのか?それとも、その場合バッチ以外の手段で対処している?

キャリア1、2年目のエンジニアがバッチ処理必要になった時に、設計したことないって話は聞くけども。

388 :nobodyさん:2021/06/13(日) 08:36:35.05 ID:???.net
俺もそれは不思議
バッチという言葉も知らず実装したこともない初心者無職が、なぜか開き直って偉そうに罵倒してくるスレ

389 :nobodyさん:2021/06/13(日) 09:33:28.13 ID:???.net
当然知ってるからこそパラメータとか言ってるのが滑稽なのだよw
定期処理ならパラメータなんて無いし
(あってもその日時とかやろ)
必要に応じて動かすならフォームからパラメータ入れたりして実行するし
そもそもそういうパターンは管理画面だから非同期にする必要も本来は無いのだけどな

390 :nobodyさん:2021/06/13(日) 09:42:03.59 ID:???.net
パラメータおじさんが何もわかってないことはわかった
お前はずっとROMでいいよ

391 :nobodyさん:2021/06/13(日) 09:48:32.96 ID:???.net
バッチが必要なのは昔の貧弱なシステムでやりくりする知恵でしょ?

392 :nobodyさん:2021/06/13(日) 10:00:41.16 ID:???.net
>>391
へー、最近は数十万件のデータの処理であっても、オンラインでhttpタイムアウトする前に処理終わるんだ?

393 :nobodyさん:2021/06/13(日) 10:04:17.69 ID:???.net
>>391
エンジニアじゃない人はロムっててね

394 :nobodyさん:2021/06/13(日) 10:08:13.12 ID:???.net
1日に1回、基幹システムからデータを取り込む処理とか作ったことないの?零細の俺ですらあるというのに

395 :nobodyさん:2021/06/13(日) 10:44:43.19 ID:???.net
>>391
よくあるサブスクのサービスとかで月に一度クレジットカード会社に請求する仕組みとか世にいくらでもあるんだが、君はどうやって実装してるのか知りたい

396 :nobodyさん:2021/06/13(日) 10:47:39.20 ID:???.net
>>395
マッチョな>>391が毎日手動で実行

397 :nobodyさん:2021/06/13(日) 10:47:50.07 ID:???.net
>>391
FormRequest使ってるバカwwwww

398 :nobodyさん:2021/06/13(日) 10:59:01.81 ID:???.net
>>392
1件ずつリアルタイム処理するって話なのに
どうしてリクエスト来るたびに全件処理するバッチ処理を走らせてんの?

そもそも数十万件ならHTTPのタイムアウト60秒だとして間に合うでしょ

399 :nobodyさん:2021/06/13(日) 10:59:28.11 ID:???.net
>>394
1日1回じゃなくて1日中やりつづけたらいいよねって話

400 :nobodyさん:2021/06/13(日) 11:02:06.81 ID:???.net
>>395
そういうの求める人いるけど、怖くて手を出せないわ
大きな会社でもしょっちゅうやらかしてるし

401 :nobodyさん:2021/06/13(日) 11:02:28.37 ID:???.net
>>395
世の中の仕組みが古いよねって話だよ
メガバンクですら夜間バッチからリアルタイム処理に変わったのに

402 :nobodyさん:2021/06/13(日) 11:04:32.05 ID:???.net
おまえら昔は大手にいたかもしれんが
最近のシステムを触ってないでしょ?
どんどんリアルタイムに変わっていってるのに

そもそもサーバにクレジットカードの情報があるようなシステムは違法だぞ

403 :nobodyさん:2021/06/13(日) 11:10:23.19 ID:???.net
客の基幹システムが古いんだから仕方ないじゃん
こっちは頼まれた通りに作るだけだよ

404 :nobodyさん:2021/06/13(日) 11:21:24.27 ID:???.net
>>391
例えば、1日ごとの会員の数をCSVなどでダウンロードしたいという要件を実現するとき、

1. 毎日0時時点の会員テーブルのレコード数(や会員の付随属性など)を取得する
2. 1. の結果を集計結果テーブルに挿入する
3. 出力リクエストを受けたら集計結果テーブルをCSVに変換して出力する

俺だったらこんな設計して、 1. と 2. はバッチで作るけど>>391のモダンなやり方だとどんな設計になるの?

あ、ちなみに俺はバリデーションルールをモデルに書くなんて馬鹿なことはしないよ、普通にFormRequestに書くわ。
しかしバッチをLaravelで作るかは微妙だが。

405 :nobodyさん:2021/06/13(日) 11:35:51.15 ID:???.net
なにそのキチガイな設計、頭だいじょうぶか?
普通にリクエスト受けたらCSV生成してダウンロードさせたらええだけやん

406 :nobodyさん:2021/06/13(日) 11:40:41.67 ID:???.net
>>404
FormRequest使ってるやつってやっぱりガイジしかいねーんだな
そのままCSVで出せばいいだろ

407 :nobodyさん:2021/06/13(日) 11:47:50.11 ID:???.net
>>404
この人(達)わかってて言ってるから相手にしない方がいい
私生活が上手くいってなくてこういう方法でしかストレスの吐き出し方知らない
かわいそうな子だから何言っても意味ないよ

408 :nobodyさん:2021/06/13(日) 11:49:45.50 ID:???.net
わざとボケてスレをかき回して喜んでる奴ずっといるよな

409 :nobodyさん:2021/06/13(日) 12:33:44.44 ID:???.net
>>398
バッチ処理書いたことない人だったか

410 :nobodyさん:2021/06/13(日) 12:47:23.57 ID:???.net
>>408
そうそう。荒らしね。知識なくて話に加われないなら黙ってりゃ良いのにといつも思うわ。

411 :nobodyさん:2021/06/13(日) 12:49:50.72 ID:???.net
集計結果テーブルはさすがに草

412 :nobodyさん:2021/06/13(日) 13:10:46.41 ID:???.net
反論したくなるギリギリの外し方は上手いと思うから知っててやってるんじゃないかと予想した
でも、あんまり知識レベルは高くないと感じるから
いくつもやってたら無知が故に画期的なアイデアを書くかもしれない
がんばれ

413 :nobodyさん:2021/06/13(日) 13:41:14.33 ID:???.net
俺の会社は>>379で書いた通りの方式だからバッチ処理はないな
上位システムでは何かやってるのかもしれないけど

414 :nobodyさん:2021/06/13(日) 13:46:40.89 ID:???.net
バッチ処理をどうやるかって話をしているのに
わざわざ「俺の会社ではないな」とか書いてくる奴ってガイジなのか?職場でもそんな感じで会話してるの?

415 :nobodyさん:2021/06/13(日) 13:51:14.23 ID:???.net
死語な感じするけどキョロ充ってやつじゃないの
とにかくハブられないために情報量ゼロでも何か発言せずにはいられないんだろう
悲しいね

416 :nobodyさん:2021/06/13(日) 13:57:52.16 ID:???.net
>>414
最初にバッチ処理でFormRequest云々の話をしたのは俺なんだけど
みんながバッチ処理をそもそもしているのかどうかという正直>>379のような話がしたかったんだよ・・・・
正直今の流れは望んでいない・・・

417 :nobodyさん:2021/06/13(日) 14:06:34.29 ID:???.net
バッチ処理は必要だしみんなしてるよ
スレ読んでて何故それが未だにわからない?

418 :nobodyさん:2021/06/13(日) 14:19:07.15 ID:???.net
>>405
統計処理としては普通の方式だと思うけど
リクエストあるたびに集計処理が動作するんじゃ重すぎる

419 :nobodyさん:2021/06/13(日) 14:19:33.67 ID:???.net
>>416
バッチ処理ってどれを想定してるかで答え変わるんじゃないかな?
ちなみに俺は6番だと思ってる

1. 時間のかかる処理をする事
2. 非同期で処理をする事
3. 複数の処理をまとめた機能
4. 定期的に行う処理の事
5. コンソールから行う処理の事
6. Batchableジョブの事

420 :nobodyさん:2021/06/13(日) 14:20:47.40 ID:???.net
>>417
いやバッチ処理がいらないシステムも実際存在するし作ったこともあるから必ず必須というのは誤りだけど
実際のところ自分の構築した体感で7、8割りのシステムはバッチ処理が必要なシステムになるね

421 :nobodyさん:2021/06/13(日) 14:24:09.71 ID:???.net
>>419
HTTPリクエスト以外からのlaravel処理起動ってことだ。
バリデーションをHTTPリクエストしか想定してないところに書くのがどうなの?って話になって、例としてバッチはどうするの?って話になって、バッチを知らない馬鹿が騒いでるのが今の流れ。

422 :nobodyさん:2021/06/13(日) 14:26:43.23 ID:???.net
サーバ内部からアクセスできないようなコントローラを作って
そいつに対して別システムからもらったCSV等のデータをPOSTしたりとかするようにすれば
FormRequest使えるのでは?

423 :nobodyさん:2021/06/13(日) 14:27:21.35 ID:???.net
それも一つの方法ではあるけど苦肉の策って感じだな

424 :nobodyさん:2021/06/13(日) 14:29:04.06 ID:???.net
>>421が正解なんだが>>419はわかっててわざとボケてる奴だよな
「バッチ」の定義にこだわってわざと話をかき回し続けている もう病気だろこれ

425 :nobodyさん:2021/06/13(日) 14:30:11.09 ID:???.net
>>422-423
あれ?話がループしてね?

426 :nobodyさん:2021/06/13(日) 14:41:07.98 ID:???.net
ちょーっと、イイですかー?
あなたターチは、ヴァカですかー?

427 :nobodyさん:2021/06/13(日) 14:43:44.46 ID:???.net
>>424
俺はわざとやってる人じゃない
ややこしくしようとしてるって感じたなら謝る
書いてもらうまで「HTTPリクエスト以外からのlaravel処理」
が議論の対象だったってのは完全に頭になかった

428 :nobodyさん:2021/06/13(日) 15:07:05.62 ID:???.net
書くの忘れてた
バリデーションをHTTPリクエストしか想定してないところに書くのがどうなの?
って部分に関してはバリデーションの対象が「リクエスト」なのでFormRequestに書くべきだと思う
FormRequestを使わない処理に対してのバリデーションは必要があるなら処理単位で書くべきと思ってる

429 :nobodyさん:2021/06/13(日) 15:13:25.13 ID:???.net
FormRequestを継承したクラスをnewしてそれのrules()で取り出したルール使いましょうよ

430 :nobodyさん:2021/06/13(日) 15:28:00.34 ID:???.net
>>427
繰り返しそう書かれてるのに、スレを読んでてそこに気付かないとか考えられないんだが
案外見落とすもんなのか…?

431 :nobodyさん:2021/06/13(日) 15:32:11.26 ID:???.net
このスレでは行間読んでもうバッチでいいけど、
個人的にはバッチって表現とLaravelのバリデーションを紐づけるのは違和感あるよね
Laravelのドキュメントの中でバッチって使ってたりするか?

432 :nobodyさん:2021/06/13(日) 15:43:20.99 ID:???.net
>>431
バッチって定義はないけど、cursorやchunkメソッド、lazy collectionなんかは大量データを一括で処理するためのものだよね。

433 :nobodyさん:2021/06/13(日) 16:01:34.50 ID:???.net
こんなんで言い争いしてるのを見るとわかる通り
laravelはダメなフレームワークです。

434 :nobodyさん:2021/06/13(日) 16:04:02.20 ID:???.net
バッチの定義がおっさんと若者で違うんだろうか
でもこんなスレでそう結論付けてはいかん気がする、異常者が集まっている

435 :nobodyさん:2021/06/13(日) 16:13:37.22 ID:???.net
>>431
何回か書いてるんだけどジョブバッチってのがあるのよ
https://readouble.com/laravel/8.x/ja/queues.html#job-batching

436 :nobodyさん:2021/06/13(日) 16:35:12.14 ID:???.net
>>429
それやった段階でルールがどこで使われてるかが追えなくなっちゃうから
のっぴきならない事情でそのルールを変更せざるを得なくなった時に
影響範囲が全くわからなくて予想外の不具合起こしかねないからやりたくないのよね
チーム開発とそんな変更受けちゃダメってのは無しでお願いします

437 :nobodyさん:2021/06/13(日) 16:36:32.43 ID:???.net
Laravelは独自の用語が多いから単語本来の意味と違ってたりして話がややこしくなる
そういう所は嫌い、というか普通にバッドプラクティスだろそれ

438 :nobodyさん:2021/06/13(日) 16:48:25.97 ID:???.net
>>436
その観点だとモデルに書いても同じことが起こると思うし、バリデーションに限らず何かしらのクラスを複数箇所で使ってはならないんじゃないの?
というかバッチ用クラスのテストは書かないの?

439 :nobodyさん:2021/06/13(日) 18:15:15.30 ID:???.net
>>438
サービスって単位での使いまわしはするけど
基本的にクラス単体を複数個所で利用するって事はしてないな
当然共通処理って部分での使いまわしは当然あるけどabstractでやってる
実際に使う場合はサービスプロバイダで必要なインターフェースが実装されたクラスをbindして
コンテナから呼び出して使ってる感じ
このやり方が全くの見当はずれだったりアンチパターンとかだったりしたら早急に修正しなきゃいけないから変だったら言って欲しいのよね

440 :nobodyさん:2021/06/13(日) 18:31:49.01 ID:???.net
>>439
要員の必須スキルが上がって人を集め難くなりそうなんだけど
その仕組みで何人くらいのメンバーで開発してるの?

441 :nobodyさん:2021/06/13(日) 18:39:39.48 ID:???.net
そろそろ別の話題にしてくんねえかな
いつまでやってるんだよ

442 :nobodyさん:2021/06/13(日) 18:49:44.98 ID:???.net
>>440
プロジェクトの規模にもよるけど俺のほかに2人で外部に必要あればちょいちょいって感じ
設計とかインターフェースの部分の開発をやってもらう場合は確かに人が集め難いとは思うけど
どちらかっていうと能力が低くても依頼可能にしたかったからこうしてるんだよね
とはいえメソッドチェーンってなんすか?レベルまではカバーできないけど

443 :nobodyさん:2021/06/13(日) 18:59:18.05 ID:???.net
>>441
.envをコミットするかしないかで延々議論していたころに比べれば健全だろ

444 :nobodyさん:2021/06/13(日) 22:55:51.29 ID:???.net
で、.envはコミットするの?

445 :nobodyさん:2021/06/13(日) 23:10:23.25 ID:???.net
するだろ

446 :nobodyさん:2021/06/13(日) 23:19:07.85 ID:???.net
・.envはコミットする必要がある
・/vendorはコミットする必要がある
・バリデーションルールはモデルに書くべき
・テストを書く必要は無い
・いかなる場合もバッチは必要無い
・jsonは脆弱性があるので使うべきではない

447 :nobodyさん:2021/06/13(日) 23:43:13.81 ID:???.net
>>404
ネタにマジレスして悪いがその処理だと要件満たしてないw

448 :nobodyさん:2021/06/13(日) 23:46:43.57 ID:???.net
>>421
cronで60秒ごとにキックして一瞬で終わるような処理と
夜間に数時間にわたって一括で走らせるような処理
この二つを同列に語るのはちょっと違うと思うよ

449 :nobodyさん:2021/06/13(日) 23:55:51.81 ID:???.net
>>446
テスト書かないのだけは駄目だろ
他はわからんでもないが

450 :nobodyさん:2021/06/13(日) 23:57:49.62 ID:???.net
>>404
1は会員登録および退会の時刻を見ればいいだけだから別に0時に処理する必要はない
2はテーブルに持つべき値ではない
3も同様

磁気テープの時代ならともかく、値を取得を得られるまでの期待値が0.1秒未満の今の時代に
なぜバッチ処理をするのか?
レスポンス改善の為にあらかじめCSVを作成して静的に配置しておくっていうならともかく、そういうわけでもないようだし・・・

451 :nobodyさん:2021/06/14(月) 00:06:05.58 ID:???.net
>>444-446
小さいころ数人でワイワイ砂場で遊んでたら知らない男の子が後から入ってきたからその子も含めてみんなで遊んでると
他の子が作った山とかを壊したり100万円持ってるとか意味わからん嘘ついたりを「やめて」って何回言ってもやる子だったから
またその子が砂場に来た段階でみんなで別の遊具に移動するようになって
誰もいない砂場でごく短時間だけ「楽しいなー」みたいなこと言いながら遊んでた「あの子」を思い出すからやめて・・・

452 :nobodyさん:2021/06/14(月) 00:30:02.01 ID:???.net
>>451
長い上に意味不明で読んで損した

453 :nobodyさん:2021/06/14(月) 00:41:42.72 ID:???.net
未だにバッチ処理とか組んでる老害居るのかよ
.envをコミットしてるガイジまで居るしとんでもない動物園だこりゃ

454 :nobodyさん:2021/06/14(月) 00:55:03.51 ID:???.net
>>449
他も分からん方が多いわw

455 :nobodyさん:2021/06/14(月) 00:58:23.56 ID:???.net
>>450
頭の中がおじいちゃんなのよ…
あまり責めないで

456 :nobodyさん:2021/06/14(月) 01:16:21.42 ID:???.net
零細vs老害

457 :nobodyさん:2021/06/14(月) 02:11:20.10 ID:???.net
>>450
想定会員数と用途とか情報が足りてないから想定可能なボトルネックは「ある」ものとして設計しなきゃならないと思うから
100万会員/dayで運用開始から現在までって仕様だった場合、どこかで破綻するでしょ

458 :nobodyさん:2021/06/14(月) 06:20:56.93 ID:???.net
>>451
幼児特有の「アレ」な
幼児特有?w

459 :nobodyさん:2021/06/14(月) 06:48:03.41 ID:???.net
>>450
例えば自由に停止再開できる有料サービスを契約している会員数もCSVに載せることになった場合でもそうする?

460 :nobodyさん:2021/06/14(月) 06:57:35.05 ID:???.net
>>457
100万会員/dayの場合OSSのDBで扱えないだろうし言語にPHPを選ばないと思う

461 :nobodyさん:2021/06/14(月) 08:05:08.93 ID:???.net
100万会員、何? 登録? アクセス?

462 :nobodyさん:2021/06/14(月) 08:16:03.69 ID:???.net
毎日100万会員増えるサービスってどんなんや?
100万DAUのサービスならPHP/MySQLのもある、ソシャゲとか結構PHPだし俺も昔モバゲーのゲームをCakeで作った

463 :nobodyさん:2021/06/14(月) 08:16:05.43 ID:???.net
>>461
注射打つ回数に決まってんだろ!

464 :nobodyさん:2021/06/14(月) 08:23:14.20 ID:???.net
グラブルがPHPらしいしPHPで出来ないサービスなんて殆ど無いやろな

465 :nobodyさん:2021/06/14(月) 08:34:29.37 ID:???.net
slackはLaravelらしいで。

466 :nobodyさん:2021/06/14(月) 08:38:56.36 ID:???.net
>>448
何論点ずらしてるのこの人

467 :nobodyさん:2021/06/14(月) 08:45:22.50 ID:???.net
むしろPHPよりはボトルネックになるのはDBの方じゃないかな?

468 :nobodyさん:2021/06/14(月) 08:48:42.34 ID:???.net
それより>>459どうするのか気になる

469 :nobodyさん:2021/06/14(月) 09:02:27.24 ID:???.net
>>459
だからそれも同じ
出力時に計算してCSVに出せばいいだろ

470 :nobodyさん:2021/06/14(月) 09:22:28.65 ID:???.net
>>462
会員数としか明記されてないので
例えばアプリのインストールやログインとかのレポートなんかを提供するマーケティングツールをイメージした

471 :nobodyさん:2021/06/14(月) 09:23:29.71 ID:???.net
バリデーションをモデルでやるのってそんなにおかしいか?
データはDBのテーブルに保存されるんだからバリデーションはそれに合わせるべきでしょ
ユーザーIDなんかはカラムにユニーク制約付けて、Laravelのバリデーションでcreate時にユニークチェックする
必須項目はNULL不許可にしてバリデーションでrequired
数値はint型のカラムにしてバリデーションでnumericまたはinteger
みたいになるだろ
テーブルに紐付いたり一番近いのはモデルなんだからカラムの属性はモデルにまとめて書くべき
普通fillableまたはguardedを指定すると思うけど同じようにrulesも書いとけばいいんだよ
コントローラーやコマンドはそれを呼び出して使えばいい

472 :nobodyさん:2021/06/14(月) 09:42:51.12 ID:???.net
>>471
DBに投入するデータと入力データはかならずしも一致しない
例えば、パスワードなんてハッシュされてしまう

473 :nobodyさん:2021/06/14(月) 09:43:49.79 ID:???.net
>>471
おかしくないと思うしあってもいいと思うけど
ユーザー属性によってバリデーションルールが変化するサービスの場合はどうするって問題が出てくるでしょ

474 :nobodyさん:2021/06/14(月) 09:47:30.70 ID:???.net
>>472
完全一致する必要はない、むしろ普通は完全一致しない
けどバリデーションされる情報ってだいたいテーブルに紐付く情報だろ、多少の例外はあってもそこは無視できんだろ

475 :nobodyさん:2021/06/14(月) 09:50:14.64 ID:???.net
>>473
そんなのどうにでもなるじゃん
Laravelのバリデーションルールにはいくらでも複雑な条件書けるぞ、足りなければルール自作すればいい
動的に変化する条件も書けるぞ

476 :nobodyさん:2021/06/14(月) 09:51:47.66 ID:???.net
>>474
それ言い出したら、フロントに一番近いとこでやっても変わらんだろ
多少の例外があっても、基本的にフロントから来たデータをバリデーションすんだろ?
そこを議論してもしょうがないんだよ

477 :nobodyさん:2021/06/14(月) 10:01:29.38 ID:???.net
>>476
・フロントから来たデータをバリデーションする
・DBに入るデータをバリデーションする
この考え方の違いか、俺はずっと後者だったから前者の考え方はこのスレの議論で初めて知った
バリデーションは何のために必要か?と言うとDBに不正なデータを渡さないためだから、後者の方がしっくり来るけど

478 :nobodyさん:2021/06/14(月) 10:03:24.32 ID:???.net
>>471
Laravelが提供している標準を無視して、そんなオレオレ実装にこだわる理由がわからん。どうしてもモデルでやりたいなら、cakePHPやRails使えば良いのでは?

479 :nobodyさん:2021/06/14(月) 10:11:49.31 ID:???.net
>>477
それは「なんちゃってMVC」しか知らないからだね。元々MVCは、入力値のチェックをコントローラーの責務としている。
俺はどっちでも良いと思ってるから、その仕組みが提供しているほうに合わせるべきだと思う。それをせずにわざわざ仕組みを変えようとして無駄に工数を使うやつは、仕事ができないやつだと思う。
極論、作るシステムのステークホルダー(エンジニアの除く)にとって、バリデーションがどこで行われているかはそのシステムの価値を決める上で一切関係が無い。

480 :nobodyさん:2021/06/14(月) 10:18:25.16 ID:???.net
>>478
標準を無視してオレオレ実装にこだわっているわけではない。
モデルに書くのも一理あるでしょ?って言ってるだけ。俺だってFormRequestのバリデーションも使うし。

481 :nobodyさん: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());
のように使う。こうすれば他のコントローラーからも同じように使える。条件によってルールが変わる時は引数で指定する。

482 :nobodyさん:2021/06/14(月) 10:26:59.67 ID:???.net
あのさぁ、アプリの基本って、入口と出口を固める事なのな。
バリデーションは入口、エスケープは出口。

どうしてModelみたいな真ん中でバリデーションしようとする?
こんな基本的な事言わんとわからんの?

483 :nobodyさん:2021/06/14(月) 10:29:11.16 ID:???.net
>>479
>極論、作るシステムのステークホルダー(エンジニアの除く)にとって、バリデーションがどこで行われているかはそのシステムの価値を決める上で一切関係が無い。

わかりやすい所に書かれていたり、うまいこと共通化できる所はしてある方が
バグの可能性が減って価値が上がるよ。

484 :nobodyさん:2021/06/14(月) 10:31:56.43 ID:???.net
>>482
真ん中じゃないじゃん。
モデルはデータに紐付くもので、データの入口と考える。
もちろんこれが唯一の正解じゃないから、本来のMVCがとかお前のMVCがどうとかは知らん。

485 :nobodyさん:2021/06/14(月) 10:33:37.04 ID:???.net
DB投入値の担保は、モデルの引数に型宣言かませばいい
https://speakerdeck.com/twada/php-conference-2016-original?slide=35
これで「出来ていいこと」が明確になる

486 :nobodyさん:2021/06/14(月) 10:40:00.83 ID:???.net
>>475
実際に書いて試した事ないでしょ?
やったらわかるけどartisanコマンドの時にどうすんのこれってなるから
一つにまとめる事がダメって訳じゃないけど分岐していくやり方は
見通し悪くなるってのと分岐が増えると結合度が上がってどんどん変更に弱くなると思ってる

487 :nobodyさん:2021/06/14(月) 10:45:28.78 ID:65mpymBy.net
>>484

ごめん、頭の悪い子と話すの疲れるんだけどさ、

お前が作ってるの、一体何だ? バラの部品を複数作ってるのか?
何でアプリ全体で見ないで部品単位で見てるんだよ?

空港降りたら検疫して、駅に入る前に検疫して、電車に乗る前に検疫して、県境越えたら検疫して、電車に乗る前に検疫して、バスに乗る前に検疫して、宿に入る前に検疫して…

なんてやると思うか? 国に入ってきた時に一回だけだろ。
最初に1回きっちり検疫すればその後、どんなところを通ろうが関係ないだろ。効率って物を考えろよ。

というか、モデルはデータの入り口って、本物のバカなの?
RDBに対してデータを“出力”する場所だろ。だからエスケープが必要になる。
お前マジで、安全なアプリケーションの作り方とか、全く勉強してないだろ?

488 :nobodyさん:2021/06/14(月) 10:47:59.90 ID:???.net
DBがモデルに一番近いからそこでバリデーションするって言い張る人に聞きたいんだけど

例えば携帯電話番号の入力フォームでは以下の入力を受け付ける
「09012341234」
「090-1234-1234」
「09001231234」
「090−0123−1234」

DBに格納すれる値は正規化して以下の通り
「09012341234」

って要件を実現するのにどうやってるの?
先に正規化してからバリデーションしてるわけ?

489 :nobodyさん:2021/06/14(月) 10:59:57.74 ID:???.net
>>484

あと、もう一個言うとさ、
おまえのアプリではModelは常に1つなの?
Modelファイルが複数ある場合、どこでバリデーションするって言ってる?
流石に、各Modelでそれぞれバリデーションするとか言わないだろ?
じゃあ、どこ? 復数のModelの前?
そこはModelじゃなくて、つまりControllerじゃん。

490 :nobodyさん:2021/06/14(月) 11:00:13.33 ID:???.net
SOLID原則

491 :nobodyさん:2021/06/14(月) 11:13:15.18 ID:???.net
>>488
自分で答え書いてるじゃん
ユーザーの入力とDBに格納する形式が違うなら、
先にユーザーの入力値を整形した上でバリデーションしたらいいだけ

492 :nobodyさん:2021/06/14(月) 11:17:35.38 ID:65mpymBy.net
ちなみに、ネットの多数派の意見はどうなんだい?と思って検索してみて最初に出てきたのが、これで、
心の底から脱力した。

http://blog.64p.org/entry/2013/11/26/131914
『言いたいことは「結局、昔はサーバサイドで懇切丁寧なエラーメッセージを出すためにModelではなくControllerでバリデーションに関する知識が必要だったけど 今はJavaScriptでやるから不要だよね111」ってことです。』

そういう事してるから、フロントとサーバーサイドでバリデーションルールが違うみたいな事が発生してくるんだろ。

493 :nobodyさん:2021/06/14(月) 11:21:34.06 ID:65mpymBy.net
実際、俺がいじるわけじゃないからどこでバリデーションしようとそいつの勝手ではあるんだけどさ、
どこでも同じバリデーションが使えるような実装じゃないと、メンテ大変だろ?

で、この話って元々なんだったんだっけ?

494 :nobodyさん:2021/06/14(月) 11:23:12.90 ID:???.net
ageてるやつの能書きがキモいって話題
引きこもりは出てくんなよ

495 :nobodyさん:2021/06/14(月) 11:24:29.11 ID:???.net
バリデーションはデータの受け渡しが発生するたびに行う
1.入力時にJavascriptでチェック
2.フォームがPOSTされるときにバックエンド側でチェック
3.バッチ処理が走るときにチェック
4.ビジネスロジックが走るときにチェック
5.CSVとして出力するときにチェック

少なくとも入力されてからCSVとして出力されるまで5回はチェックされる
なんらかのロジックが走るたびにチェックされるから実際は何十回もする

496 :nobodyさん:2021/06/14(月) 11:29:30.70 ID:???.net
>>491
いやおかしいだろ
そしたらパスワードもハッシュしてからバリデーションすんのか?

497 :nobodyさん:2021/06/14(月) 11:30:04.85 ID:???.net
>>488
バリデーションルールを4つ書いて、saveをオーバーライドして文字列加工でよくない?

498 :nobodyさん:2021/06/14(月) 11:35:31.83 ID:65mpymBy.net
>>494

まーた頭おかしいの湧いてきたし。

内容に関係ないことで頭に血を上らせて、おまえ、脳に障害でもあんのか?

499 :nobodyさん:2021/06/14(月) 11:37:13.01 ID:???.net
>>489
>>481にコードも書いたからよく見てくれ
俺が提案してるのは、コントローラー(FormRequestでもいいけど)でバリデーションする際、ルールはモデルに書いてあるのを参照するって事だ
Laravel公式のやり方のほんの一箇所変えてるだけなんだよ
その方が使い回しとかメンテしやすくていいじゃない?って言ってる

500 :nobodyさん:2021/06/14(月) 11:38:52.46 ID:???.net
月曜の朝から熱いねおっさんなのに

501 :nobodyさん:2021/06/14(月) 11:40:04.64 ID:???.net
>>495
2と3しかやらないなあ
1はうまいことやればユーザビリティが上がる可能性はあるけど、大抵そこまでやらんな
4と5はよくわからん、出力時にバリデーションてどういうことだ?整形じゃなくて?

502 :nobodyさん:2021/06/14(月) 11:41:30.86 ID:???.net
今日月曜か

503 :nobodyさん:2021/06/14(月) 11:41:54.32 ID:???.net
dbもformも通さないバリデーションはどうやってチェックしたら良いですか?

504 :nobodyさん:2021/06/14(月) 11:42:20.31 ID:???.net
フロントのバリデーションはユーザーの為
バックのバリデーションはシステムの為

505 :nobodyさん:2021/06/14(月) 11:42:27.00 ID:65mpymBy.net
>>495

おまえ、強迫性障害かなんかなの?
https://fdoc.jp/byouki-scope/features/covd-19_obsessive-compulsive-disorder/

506 :nobodyさん:2021/06/14(月) 11:45:30.32 ID:???.net
>>501
> 出力時にバリデーションてどういうことだ?整形じゃなくて?

そいつ、バリデーションの意味わかってねぇんだろ。
CSV用のフォーマットに変えるって事なら、それ、バリデーションじゃねぇよ。

507 :nobodyさん:2021/06/14(月) 11:53:29.60 ID:???.net
>>503
目視

508 :nobodyさん:2021/06/14(月) 11:55:53.31 ID:???.net
平日の昼間から頭おかしい奴ワラワラで草

509 :nobodyさん:2021/06/14(月) 12:02:50.57 ID:???.net
>>496
モデルバリデーション厨はガイジだから触らないほうがいいぞ

510 :nobodyさん:2021/06/14(月) 12:04:46.36 ID:???.net
俺以外みんな頭おかしいわこのスレ

511 :nobodyさん:2021/06/14(月) 12:54:27.83 ID:???.net
システム屋さんは結合テスト、システムテストで普通にシステムからのみDBデータ作るけど
システム屋さん以外の人は手動でデータを入れたり更新削除したりしちゃう。怖い怖い

512 :nobodyさん:2021/06/14(月) 12:56:47.38 ID:???.net
それを防いでいないシステム屋が悪い

513 :nobodyさん:2021/06/14(月) 13:03:35.20 ID:???.net
>>499
所詮個人の感想じゃん。手間が増えることに変わり無いし、その実装のルールをチームで共有して維持しなくてはならなくなる点は全く考えてないのでは?

なぜそこまでmodelでのバリデーションに拘るのか謎。他のフレームワーク検討したら?

514 :nobodyさん:2021/06/14(月) 13:08:55.85 ID:???.net
凄いスレが進んでてワロタw

515 :nobodyさん:2021/06/14(月) 13:09:41.69 ID:???.net
>>513
FormRequest厨顔真っ赤で草

516 :nobodyさん:2021/06/14(月) 13:20:24.88 ID:???.net
普通のシステム環境ならインフラ担当が居て環境が分けられてて本番DBを直接手動では使えなくしてる。
システム屋さん以外の人が安く作るとそうはできない

517 :nobodyさん:2021/06/14(月) 13:30:50.40 ID:???.net
ここ本当にlaravelスレなの?
Dependency injection関連のワードが出てこないんだけど

518 :nobodyさん:2021/06/14(月) 13:38:47.42 ID:???.net
じゃあお前が出せよ

519 :nobodyさん:2021/06/14(月) 13:55:15.81 ID:???.net
DIなんか、必要ないしなぁ…、本来は。

520 :nobodyさん:2021/06/14(月) 13:59:11.07 ID:???.net
>>517
コンストラクタインジェクションを使ってサービスを渡しているけど、状況に応じて使い分けはしてないな

521 :nobodyさん:2021/06/14(月) 14:10:31.25 ID:???.net
さすがphpはエンジニアの中でも底辺が好んで使うと言われるだけのことはある

522 :nobodyさん:2021/06/14(月) 14:15:52.73 ID:???.net
お前らこんな議論白熱するならLaravelのgithubリポジトリで
バッチ処理時にバリデーションについてissue挙げてみたら?

523 :nobodyさん:2021/06/14(月) 14:18:46.32 ID:???.net
英語できないので無理です

524 :nobodyさん:2021/06/14(月) 14:21:14.27 ID:???.net
アホの上にこういう周回遅れの奴が出て来るから収拾付かんのだよな
過去に出て却下されてるって何度もスレで言及されてるやん

525 :nobodyさん:2021/06/14(月) 14:44:55.72 ID:???.net
>>521
零細と低収入しか居ないしね
大企業向けワクチン接種の枠の人も多分ここには居ない

526 :nobodyさん:2021/06/14(月) 17:37:41.09 ID:???.net
>>525
同じ穴のムジナですな

527 :nobodyさん:2021/06/14(月) 18:13:51.65 ID:???.net
>>525
お前と一緒にしないでくれ
俺は大企業向けワクチン接種の対象だわ

528 :nobodyさん:2021/06/14(月) 18:49:14.35 ID:???.net
>>525
>>371ね。俺と上のやつで少なくとも2人は居るが?

529 :nobodyさん:2021/06/14(月) 20:08:44.64 ID:???.net
俺は医療関係者枠で打っちゃったよ。丸2日パソコン打つ気になれなかったよ。

530 :nobodyさん:2021/06/14(月) 21:34:09.82 ID:???.net
SESSION_LIFETIMEってlast_activityからの時間ですよね?
例えば120分の設定だった場合、ログインから60分の時点でページ遷移するとそこから120分非アクティブでセッション破棄されてログアウトされる
これをログインからの時間にすることはできますか
120分の設定でログインから60分の時点でページ遷移してもそこから60分(ログインから120分)非アクティブでセッション破棄されてログアウトされる
というようにしたいです

531 :nobodyさん:2021/06/14(月) 22:06:32.60 ID:???.net
頑張ればできます

532 :大手勤務:2021/06/14(月) 22:22:17.65 ID:???.net
>>530
バージョン書いたら教えてあげるよ

533 :nobodyさん:2021/06/14(月) 22:50:08.82 ID:???.net
>>532
Version6系です

534 :大手勤務: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. で作ったミドルウェアのクラス名を入れる。

以上
多分動くと思う
動かしてないけど

535 :nobodyさん:2021/06/14(月) 23:30:10.33 ID:???.net
>>534
できましたありがとうございます。

536 :nobodyさん:2021/06/14(月) 23:30:36.59 ID:???.net
できたのかよw 大手勤務君有能すぎるだろ

537 :nobodyさん:2021/06/14(月) 23:48:52.06 ID:???.net
やっぱり零細で簡単なシステム作っているやつより
大手で複雑なシステム作ってるほうが技術力あるんだなぁ

538 :nobodyさん:2021/06/15(火) 01:46:38.86 ID:???.net
すべて自作自演だったらどうしよう

539 :nobodyさん:2021/06/15(火) 03:03:55.12 ID:???.net
大手勤務すげえなおい
なんでわかるんだよ

540 :nobodyさん:2021/06/15(火) 11:08:36.31 ID:???.net
そらやったことがあるからだろう

541 :nobodyさん:2021/06/15(火) 14:33:47.85 ID:???.net
>>539
大手勤務だからというよりは彼が一握りの天才だからだと思う

542 :nobodyさん:2021/06/15(火) 15:51:23.27 ID:???.net
ここの低レベルな争いの空気を一瞬で変えてしまったww

543 :nobodyさん:2021/06/15(火) 15:55:38.05 ID:???.net
このスレに本当に天才がいれば、あの延々続いたくだらない論争を一発論破してくれたんだろうか

544 :nobodyさん:2021/06/15(火) 16:44:09.65 ID:???.net
全部自演だけどな

545 :nobodyさん:2021/06/15(火) 18:33:55.17 ID:???.net
大手勤務様の技術力の高さに驚愕
簡単な仕様をいっただけで構築手順をレスしてくれるとか最高すぎませんか?

546 :nobodyさん:2021/06/15(火) 18:44:04.88 ID:???.net
やったー、かっこいー!

547 :nobodyさん:2021/06/15(火) 19:13:01.16 ID:???.net
自演やなw

548 :nobodyさん:2021/06/15(火) 19:35:01.49 ID:???.net
やっぱワッチョイ無いと自演し放題だな

549 :nobodyさん:2021/06/15(火) 19:39:42.93 ID:???.net
コテ付けてまで自演とか自己開示欲はんぱねえなw
さすが大手勤務だ、俺たち零細には真似できねーw

550 :nobodyさん:2021/06/15(火) 21:10:42.04 ID:???.net
>>530の質問に具体的な実装を提示できなかった時点でお前らの負けだよ

551 :nobodyさん:2021/06/15(火) 21:29:29.40 ID:???.net
別に勝とうとか思ってないし

552 :nobodyさん:2021/06/15(火) 22:10:43.11 ID:???.net
これだからワッチョイなしはやめられない
ほんと楽しいわ

553 :nobodyさん:2021/06/15(火) 22:13:32.85 ID:???.net
別の板に立てたバカがいたけどそういうスレは誰も来ないからなw

554 :nobodyさん:2021/06/15(火) 23:06:29.44 ID:???.net
view側でcontrollerのメソッドを利用したいんですが
どういう書き方をすればいいでしょうか?

初心者ですいませんがどなたか教えて下さい

555 :nobodyさん:2021/06/15(火) 23:45:56.55 ID:???.net
ちょっと考えても分からんのなら、
そもそもその手法が間違ってると思った方が良いかもね

556 :大手勤務:2021/06/15(火) 23:49:09.77 ID:???.net
>>554
自分自身であるthisをviewに渡せばview側でcontrollerのメソッドを実行可能です

557 :nobodyさん:2021/06/15(火) 23:53:55.62 ID:???.net
その発想は思いつきませんでした。
確かにcontroller毎viewに渡したらview側でcontrollerのメソッドを実行できました。
教えていただきありがとうございました。

558 :大手勤務:2021/06/15(火) 23:58:20.14 ID:???.net
>>554
それはMVCとかけ離れてるので設計がおかしいです
その呼びたいメソッドがviewの仕事をしているんじゃないですか?
ちゃんと見直してください

559 :nobodyさん:2021/06/16(水) 00:02:08.51 ID:???.net
言われてみればMVCじゃないですね
viewのメソッドにできないか考えてみます
教えていただきありがとうございました

560 :nobodyさん:2021/06/16(水) 00:02:45.29 ID:???.net
一人で何やってんだこいつ

561 :nobodyさん:2021/06/16(水) 00:04:50.98 ID:???.net
前回敬語使ってなかったろ
もっとうまく成り済ませよ

562 :nobodyさん:2021/06/16(水) 00:18:19.01 ID:???.net
>>561
突然Laravelスレでなんで敬語の話を?

563 :nobodyさん:2021/06/16(水) 00:21:32.45 ID:???.net
大手勤務の人はやっぱり違うな ちゃんと色々な質問に適切にこたえてくれるし
このスレの零細起業の連中とは格が違うね

564 :nobodyさん:2021/06/16(水) 01:46:25.47 ID:???.net
CSRF対策について質問があります。
特定のページだけCSRF対策をする方法はあるのでしょうか?

565 :nobodyさん:2021/06/16(水) 01:55:38.89 ID:???.net
恐ろしい質問があらぬ方向からやってきた!

566 :nobodyさん:2021/06/16(水) 11:47:10.51 ID:???.net
大手勤務さんは自分が書いた質問以外には答えられません

567 :nobodyさん:2021/06/16(水) 12:13:04.47 ID:???.net
>>530
これに対してのやり方が
>>533
って流れって釣りだよな?
この質問って120分で強制ログアウトさせたいって話だよね?
セッションでどうにかしようとしてる時点で解答ありきの質問じゃね?
まあ大芋勤務してるとベストプラクティスなのかもしれんが

568 :nobodyさん:2021/06/16(水) 12:16:28.43 ID:???.net
どう見ても自演なんだけどさ、
自分が大手で働いてるのを自演までして自慢するのはさすがに草

569 :nobodyさん:2021/06/16(水) 12:32:09.21 ID:???.net
まぁ大手君の中では強制ログアウトをセッションでやるのがベストプラクティスなんじゃね?
俺はそんな面倒なやり方しないけど

570 :nobodyさん:2021/06/16(水) 12:43:15.35 ID:???.net
>>569
ではどのように実装するかご高説願おうじゃないか

571 :nobodyさん:2021/06/16(水) 13:11:04.35 ID:???.net
>>570
セッションなんか使用せずDBにログイン時間を保存しておけばいいだろ

572 :nobodyさん:2021/06/16(水) 13:20:03.99 ID:???.net
>>570
大手勤務君、名無しでイライラしながらレスしてて草

573 :nobodyさん:2021/06/16(水) 14:05:07.31 ID:???.net
そもそも最終ログイン時刻を残さないユーザー認証なんてガバガバすぎじゃ…
basic認証でログインするならあるかもしれないが

574 :nobodyさん:2021/06/16(水) 14:15:25.64 ID:???.net
>>571
俺もこっちが単純で分かりやすい気がするわ
わざわざkernel書き換えるとか大袈裟なんだよね

575 :nobodyさん:2021/06/16(水) 14:15:32.08 ID:???.net
>>573
やめたれw

576 :nobodyさん:2021/06/16(水) 14:40:06.58 ID:???.net
大芋勤務君「ミドルウェアを作って〜、Kernelを書き換えて〜、以上。動かしてはない(ドヤw自演もしたろw」

謎の名無し「セッション使わないでDBにログイン時間保存すればいいだけ」

この差よ…

577 :nobodyさん:2021/06/16(水) 15:31:17.34 ID:???.net
ゴミカスが負けを認められずに騒ぎ出した

578 :nobodyさん:2021/06/16(水) 15:36:52.53 ID:???.net
社員数20人って大手とは言わないと思うんだけどこのスレでは大手扱いなの?

579 :nobodyさん:2021/06/16(水) 15:50:31.99 ID:???.net
>>574
この方法もミドルウェア作ってカーネルへの登録も必要じゃね?

580 :nobodyさん:2021/06/16(水) 16:07:13.04 ID:???.net
>>579
rootMiddlewareに追加しないで
controllerかrouteでやるって事でしょ

581 :nobodyさん:2021/06/16(水) 16:10:04.43 ID:???.net
>>580
だとしたら、大手くんの大勝利じゃん

582 :nobodyさん:2021/06/16(水) 16:42:06.08 ID:???.net
>>580
コントローラーで認証チェックはちょっと遅すぎるかな…
ルートだとセッション始まってないからユーザーIDの特定無理じゃない?

583 :nobodyさん:2021/06/16(水) 16:53:42.50 ID:???.net
>>582
認証用ミドルウェアってこんな感じの実装だと思うんだけど
作ったやつの部分に例のミドルウェアを入れとくイメージ
Route::group(['middleware' => ['auth:sanctum', 'verified','作ったやつ'] ],function (Router $router ){
$router->get('users' , 'コントローラー' )->name('users');
}) ;

584 :nobodyさん:2021/06/16(水) 16:57:56.05 ID:???.net
あ、前提条件としてroutes/web.phpに書いてあるから
webのミドルウェアグループは読み込んでる前提ね

585 :nobodyさん:2021/06/16(水) 16:59:18.00 ID:???.net
>>580
rootMiddlewareって何だ
routeMiddlewareのこと?

586 :nobodyさん:2021/06/16(水) 17:04:52.38 ID:???.net
>>585
あ。。。ごめん普通に
間違えてたrouteMiddleware
この間違いはあかんね

587 :nobodyさん:2021/06/16(水) 17:27:54.14 ID:???.net
>>583も結局routeMiddlewareへの登録必要(Kernelを書き換える)なのでは
そもそもなぜKernel書き換えたくないのか知らんけど

588 :nobodyさん:2021/06/16(水) 17:52:35.68 ID:???.net
>>587
別に>>574ここでKernelに〜って言いだしたの俺じゃないんだけどね
でもサービスとして分離する事考えるとサービスプロバイダでaliasの登録するか
['auth:sanctum', 'verified',\Package\Name\Middleware\作ったヤツ::class]
的なやり方しちゃう事が多いかも

589 :nobodyさん:2021/06/16(水) 19:20:03.78 ID:???.net
ホントの大手ならlaravelなんか使わないで独自FW作ってるでしょ

590 :nobodyさん:2021/06/16(水) 19:30:55.47 ID:???.net
そんなことはないと思うが
案件次第

591 :nobodyさん:2021/06/16(水) 19:52:10.08 ID:???.net
今時独自FWなんて作ると思うか?

592 :nobodyさん:2021/06/16(水) 20:07:52.79 ID:???.net
DBにログイン時間保存してどうすんだ?毎アクセスごとにチェックして2時間経ったらログインに飛ばすの?
一定時間毎にログアウトさせて途中の作業パアにしてくれるクソシステムあるけどあれお前らが作ってんのか

593 :nobodyさん:2021/06/16(水) 20:12:12.16 ID:???.net
>>589
根拠ゼロで草

594 :nobodyさん:2021/06/16(水) 20:17:13.52 ID:???.net
保険屋さんとかデータ系とかJavaで自前で作ってる現場多かったよ

595 :nobodyさん:2021/06/16(水) 20:17:23.57 ID:???.net
>>592
それはさすがに知らねーよ
大手勤務の俺が120分でログアウトする仕組みで無双した件的なラノベの矛盾点が論点なんだから

596 :nobodyさん:2021/06/16(水) 20:20:13.41 ID:???.net
結局DBの時間見るとのセッション期限を更新しないのはどっちが良いんだよ

597 :nobodyさん:2021/06/16(水) 21:03:26.40 ID:???.net
どっちでも良いだろ
どうせ大してアクセスのないサイトだろ

598 :nobodyさん:2021/06/16(水) 21:03:43.31 ID:???.net
このスレの総意としては>>534のやり方を推奨だよ

599 :nobodyさん:2021/06/16(水) 21:06:57.77 ID:???.net
スレの総意おじさんもずっとこのスレいるよな
的外れなことばっかり言う

600 :nobodyさん:2021/06/16(水) 21:29:26.18 ID:???.net
お前ら本当に暇なんだな
大手だの零細以前にまず働いてんのか?

601 :nobodyさん:2021/06/16(水) 21:40:00.79 ID:???.net
半分くらいは実際に仕事で使ってそうだけど
残り半分は趣味とかやろな

602 :nobodyさん:2021/06/17(木) 01:10:46.72 ID:???.net
ここにいる全員がその半分に属してるんだよ

603 :nobodyさん:2021/06/17(木) 06:46:12.22 ID:???.net
ほんとにバカしか居ねぇなぁ…。

604 :nobodyさん:2021/06/17(木) 07:28:04.84 ID:???.net
お前だってそうだろ

605 :nobodyさん:2021/06/17(木) 07:38:58.35 ID:???.net
アプリ側で時間管理して超過したら強制ログアウトでええやろ

606 :nobodyさん:2021/06/17(木) 07:42:06.92 ID:???.net
>>596
ロードバランサ使ったりAWSで複数インスタンス使ってるような構成だとDBでセッション管理してると思う
だから今回のような疑問が出てくる時点でおそらくシステム構成を理解できてない

もしくは既存システムをいじりたくないのであれば別途監視アプリを作って常駐させる
C言語使えるならこっちのほうが楽かもね

607 :nobodyさん:2021/06/17(木) 07:47:30.33 ID:???.net
>>589
独自FW作るのはLaravel以前からやってる案件
cakeの頃に独自FW作るのが流行った
codeigniterに皮かぶせて独自FWっていってるのもあったな
とにかく一世代前の話
昔からやってる人は慣れてる独自FWで揃えたいっていうのもあるだろう
会社として複数FWを利用すると教育コストがかかっちゃうから一度採用したFWは変えられないという都合もある

ただ、新陳代謝が一巡してるであろう今の時期になってもまだ独自FWのままっていうのは
特殊な事情があるのか、もしくは開発者が入れ替わってない(高齢化)のか、もしくは開発者のレベルが低すぎて
言われたままやる人しかおらずもはやFW入れ替えなんていうことをするパワーがないのだろう

独自FWっていうのは下請け企業が他社に仕事を取られない為の難読化テクニックの一つ

608 :nobodyさん:2021/06/17(木) 07:48:57.47 ID:???.net
>>606
DBってリレーショナルDBのことか?
そんなとこでセッション管理しないだろ
今までの現場はほぼRedisだわ

609 :nobodyさん:2021/06/17(木) 08:03:25.51 ID:???.net
>>608
どっちでもいいんちゃう?
DBでも大して遅くはならんやろ

610 :nobodyさん:2021/06/17(木) 08:05:12.58 ID:???.net
>>608
インフラ設計したことある?IaaSとかで売上の立たない業務システム作るときは、月額のインフラコスト少しでも減らしたいからKVSじゃなくてDB使うケースはありえるでしょ。

わざわざセッションドライバやキャッシュドライバにDBが用意されているのはなぜか考えような。

611 :nobodyさん:2021/06/17(木) 08:05:30.80 ID:???.net
過疎システムなら別にRDBで管理しようがRedisで管理しようがあんま変わらないけど、
ロードバランサで負荷分散が必要になる規模だとRDBでセッション管理するのは非効率極まりないね

612 :nobodyさん:2021/06/17(木) 08:07:11.27 ID:???.net
RedisってNoSQLだし、そりゃRDBよりも高速だよね

613 :nobodyさん:2021/06/17(木) 08:09:41.75 ID:???.net
> ロードバランサ使ったりAWSで複数インスタンス使ってるような構成だとDBでセッション管理してると思う



> IaaSとかで売上の立たない業務システム作るときは、月額のインフラコスト少しでも減らしたいからKVSじゃなくてDB使うケースはありえるでしょ。

614 :nobodyさん:2021/06/17(木) 08:10:53.06 ID:???.net
どうせDBアクセスしまくるんだからセッション管理分が1、2回ぐらい増えても大してレスポンス変わらんやろ

615 :nobodyさん:2021/06/17(木) 08:13:21.38 ID:???.net
>>613
いやさすがに別人だろ…
同一人物だったら笑うが、ワッチョイ無いのが悔やまれるな

616 :nobodyさん:2021/06/17(木) 08:28:34.83 ID:???.net
>>607
自前FWでドキュメントもある所もあった。自前FWを作ったコストを相殺できるくらいには各種案件に使おうとしてるようだった

617 :nobodyさん:2021/06/17(木) 08:35:34.07 ID:???.net
>>616
独自FWだと下請けに出すときに困るんだよ
というか出された下請けが困る
つまりワイが困る

618 :nobodyさん:2021/06/17(木) 08:36:02.14 ID:???.net
独自FWはバージョン管理で破綻しやすい
パブリックなFWだと案件のほうをあわせるしかない
しかし、独自FWだとFWを案件にあわせていく

案件の数だけ枝がわかれた独自FWなんてただの悪夢だ

619 :nobodyさん:2021/06/17(木) 08:37:39.20 ID:???.net
composerはそもそも使ってるのかな?

620 :nobodyさん:2021/06/17(木) 09:41:33.08 ID:???.net
>>614
誰もレスポンス速度のこと言ってないよ
安いRedisを使うか高いRDBを使うか、コストの話だよ

621 :nobodyさん:2021/06/17(木) 09:50:44.17 ID:???.net
>>613
何が言いたいのか詳しく。ちなみに>>606は俺じゃないけどな。

622 :nobodyさん:2021/06/17(木) 09:51:25.32 ID:???.net
業務に使ってるRDBMSを使いまわしたってかまわないし
セッション用にNOSQLを使う場合もあるだろう
細かい条件を決めてベストを尽くすのがおまえらの仕事
ここで何も聞かずにベストプラクティスが決まるようならおまえらの仕事は不要だよ

予算ないならRDBMS1台とロードバランサー1台、インスタンス1台の構成で
アクセス増えてきたら動的にインスタンス起動ってところじゃないのかな

本当に金かけたくないならインスタンス1台に全盛りでスケーラビリティなしだ

623 :nobodyさん:2021/06/17(木) 09:56:11.83 ID:???.net
ロードバランサーの用途を負荷分散のためだけとか思ってる奴が何人か居るんだな。冗長化必須の場合もロードバランサーで複数のインスタンス使うよ。

業務システムだと負荷は無くても落としたらしばかれるからそういう構成になる。まぁ零細だと多少落ちてもそんなもんだって許されるのかもしれないが。

624 :nobodyさん:2021/06/17(木) 10:07:56.12 ID:???.net
>>619
独自FWの場合、composerは使わない
独自FWのメリットはソースコードを非公開にできることが大きい
公開することによって脆弱性が見つかる場合もあるから

625 :nobodyさん:2021/06/17(木) 10:37:16.95 ID:???.net
いい加減独自FWなんて負債以外の何者にもならないって、皆痛い目して学んどるやろ
まあ非独自にしたって100%解決はせんけど

626 :nobodyさん:2021/06/17(木) 11:00:02.08 ID:???.net
>>624
OSSの思想と真逆のアプローチをとるんだな

公開して皆で脆弱性を見つけて修正できるという思想、
非公開にすれば脆弱性を見つけるのが難しくなるという思想。

日本らしいといえば日本らしいな。

627 :nobodyさん:2021/06/17(木) 11:15:57.65 ID:???.net
毎日のようにSQLインジェクションくさいアクセスログを見ている身としては、非公開FWのほうが安全てのは思考停止すぎるよとだけ言っておく。

628 :nobodyさん:2021/06/17(木) 11:28:39.27 ID:???.net
composerでどうにかなる程度の枝しか作ってないと思ってるのか?
案件ごとに独自進化する地獄を見せつけてやりたい
案件バージョンとFWバージョンのグリッドを見て涙するがいい

629 :nobodyさん:2021/06/17(木) 11:42:55.10 ID:???.net
なんでドヤ顔でバッドノウハウ自慢してるんだ

630 :nobodyさん:2021/06/17(木) 11:52:04.34 ID:???.net
囚人はつながれた鎖の大きさでマウントをとる

631 :nobodyさん:2021/06/17(木) 11:52:55.96 ID:???.net
なにそれいい言葉だなどこで覚えたの

632 :nobodyさん:2021/06/17(木) 12:07:09.91 ID:???.net
自前FW作ってる所はVPCで業務に使ってるとかそんなのだった気がする。確かに案件毎の別バージョンは地獄っぽかった

633 :nobodyさん:2021/06/17(木) 13:27:43.67 ID:???.net
>>627
それ言うほど問題か?SQLインジェクションなんて真っ先に対策するじゃん
XSSとかCSRFとかある程度の脆弱性対策してから開発するだろ

634 :nobodyさん:2021/06/17(木) 13:42:57.50 ID:???.net
アメリカ人「OSSにすれば脆弱性が見つかる」
日本人「OSSにすれば脆弱性が見つかる」

635 :nobodyさん:2021/06/17(木) 13:50:26.10 ID:???.net
>>633
その対策がガバガバだったらどうするの?

636 :nobodyさん:2021/06/17(木) 13:54:35.52 ID:???.net
>>635
そんなレベルのやつはOSSフレームワーク使っても脆弱なシステムしか作れんよ
根っこが理解できてないんだから

637 :nobodyさん:2021/06/17(木) 14:01:44.56 ID:???.net
>>633
そういうことではなくて、独自だろうが何だろうが、外に出す以上は一定の脅威に晒されることに変わりがなく、コードから脆弱性を見つけられないという点は何ら安全を保証するものでもないし、公開しているFWより安全であることの証明にもならないって指摘。

638 :nobodyさん:2021/06/17(木) 15:51:52.25 ID:???.net
Web公開したらまっさきに攻撃してくるのがトレンドマイクロ

639 :nobodyさん:2021/06/17(木) 17:33:38.73 ID:???.net
20年ぐらい前のペーペーの頃、SQLインジェクション(実際には実行できない)があるって
見知らぬ奴がわざわざお問合せフォームから連絡してきたっけ

当時は不正アクセス防止法とかないから、攻撃しようと思えばできたろうけど
単に教えてくるって良いやつだったんだな

640 :nobodyさん:2021/06/17(木) 18:03:54.76 ID:???.net
>>633
一般的な会社は画面に「データを返してほしかったらビットコインをよこせ(意訳)」って表示されてから対策をはじめるんだよ

641 :nobodyさん:2021/06/17(木) 18:04:54.95 ID:???.net
>>636
さすがにそれは違うだろ
少なくともオレオレFWで作るよりははるかに安全

642 :nobodyさん:2021/06/17(木) 18:04:55.83 ID:???.net
>>634
海外の有名FWと公開したところで誰も使わないであろう弊社FWを比較するのはちょっと違和感を感じる

643 :nobodyさん:2021/06/17(木) 18:07:22.40 ID:???.net
>>638
githubを巡回してるロボいるよな
あれAWS社は有名だけどあとはどこが巡回してるんだ

644 :nobodyさん:2021/06/17(木) 18:17:59.36 ID:???.net
>>640
え、お前の会社が日本の標準なの?

645 :nobodyさん:2021/06/17(木) 18:27:41.08 ID:???.net
>>644
社名に日本って入ってるし

646 :nobodyさん:2021/06/17(木) 20:33:27.24 ID:???.net
LaravelでFWの素の状態を知ってから他のFWを触ると面白いよね。
あーこの部分をこうしてるんだーってFW制作者の工夫が分かるようになる。
そんでもってやっぱSymfonyとCakeは勉強になるチューニングしてあって評価の高さも納得できる。

647 :nobodyさん:2021/06/17(木) 21:18:29.83 ID:???.net
Cakeももう少し頑張ってくれたら良いんだけどね

648 :nobodyさん:2021/06/17(木) 21:38:11.06 ID:???.net
cakeはなぜ廃れたんだ?
オフィシャルサイトは良さげなのに

649 :nobodyさん:2021/06/17(木) 21:50:39.37 ID:???.net
Laravelが使いやすいから

650 :nobodyさん:2021/06/17(木) 21:51:54.09 ID:???.net
Cakeと比べてどう使いやすいの?速度は遅いみたいだけど(キャッシュ無しで

651 :nobodyさん:2021/06/17(木) 22:30:37.91 ID:???.net
>>650
cakeとの比較だと
・認証周りの機能があらかじめ用意されている
・テンプレートエンジンがあらかじめ用意されている
・フロントエンド周りの環境構築が楽ちん
・ファーストパーティとサードパーティに豊富な拡張パッケージが用意されている
・クリーンアーキテクチャ的な拡張がしやすい
・redisなどの外部システムとの連携の設定が簡単

ぐらいかな。

652 :nobodyさん:2021/06/17(木) 22:47:17.63 ID:???.net
>>651
ご丁寧にありがとうございます。
Symfonyと比べるとどのような点が使いやすいですか?

653 :nobodyさん:2021/06/17(木) 22:59:54.02 ID:???.net
>>651
ほとんどCakeにも用意されてないか?

654 :nobodyさん:2021/06/17(木) 23:17:38.61 ID:???.net
自分で調べもせず楽に知ろうとする教えて君うざいよね

655 :nobodyさん:2021/06/17(木) 23:21:03.55 ID:???.net
>>654
どうした大手勤務君
自分が答えられない質問に他の人が答えているのを見て嫉妬しちゃったの?

656 :nobodyさん:2021/06/17(木) 23:25:54.71 ID:???.net
cakeは古臭く感じるんだよ
色々用意されていて自由度もそれなりにあるLaravelを使うと他のフレームワークを使う気になれなくなる
homesteadとか環境面も色々あるし便利だなと
個人的な感想だけどね

657 :nobodyさん:2021/06/17(木) 23:36:34.64 ID:???.net
>>653
そうなの?なら>>651のうちcakePHPでも十分同等と言える点はどれ?

658 :nobodyさん:2021/06/17(木) 23:45:10.19 ID:???.net
LaravelがなかったらCake使い続けてたと思う
Cakeは一般ユーザーとadminを認証し分けるのや別のテンプレートエンジン入れたりするのが面倒臭かった
誰かが作ったプラグインも色々あったがメンテされなくなったら終わりだし

659 :nobodyさん:2021/06/17(木) 23:47:02.69 ID:???.net
LaravelのスレでCakeの話するの違うと思う

660 :nobodyさん:2021/06/18(金) 09:16:58.68 ID:???.net
まぁ大昔は日本で流行っていた訳だし比較のために出すのは別に問題ない気がする

661 :nobodyさん:2021/06/18(金) 20:50:05.69 ID:???.net
大手勤務君ってLaravelにすごい詳しいけどどうすればここまで詳しく詳しく詳しく

662 :nobodyさん:2021/06/18(金) 21:39:38.92 ID:???.net
結局バリデーションはモデルでやったほうがベストプラクティスということで決着がついたの?

663 :nobodyさん:2021/06/18(金) 21:42:50.33 ID:???.net
そんなこと一人しか言ってなかったぞ

664 :nobodyさん:2021/06/18(金) 21:43:43.75 ID:???.net
>>662
きみ、相変わらずキモいね

665 :nobodyさん:2021/06/18(金) 21:45:04.79 ID:???.net
Laravelでviewをbladeではなくtwigに変更するライブラリってありますか?
bladeは使っていて違和感を覚えるので変えたいです

666 :nobodyさん:2021/06/18(金) 21:46:18.07 ID:???.net
>>662
違う
バッチ処理が必要なアプリ→モデルでバリデーションがベストプラクティス
バッチ処理が必要ないアプリ→FormRequestでバリデーションがベストプラクティス

アプリの構成によってベストプラクティスが変わるという結論だよ

667 :nobodyさん:2021/06/18(金) 21:51:41.54 ID:???.net
すみません教えてください laravelでプロジェクトを作成すると
プロジェクト直下にartisanというファイルがありこれを使ってコントローラ生成したりなど色々行うと思います。
本番環境にアプリを配置する場合このartisanというファイルは削除したほうがいいのでしょうか?
WEBブラウザからartisanファイルが実行されて変なことにならないか心配しています

668 :nobodyさん:2021/06/18(金) 21:55:34.25 ID:???.net
>>667
そんなレベルでLaravel使うことのほうが心配だよ

669 :nobodyさん:2021/06/18(金) 21:56:23.91 ID:???.net
荒らしはスルーで

670 :nobodyさん:2021/06/18(金) 21:59:25.19 ID:???.net
すみません。別FWだと本番環境にモードを設定するコマンドが用意されており
そのコマンドを実行すると開発にしか使わないようなライブラリや開発専用コマンドなどのファイルを
自動削除してくれていたので今まで気にしたことはありませんでした。
laravelだとそのようなコマンドがないようだったので本番リリース時にどこまで削除すればいいのか
わからなくなって質問させていただきました。

671 :nobodyさん:2021/06/18(金) 22:03:06.71 ID:???.net
普通はプロジェクトディレクトリ/publicがドキュメントルートなはずだから実行されないと思うけど
実際WEBサーバの脆弱性ついたらドキュメントルートより上にアクセスして実行できるのかな?

672 :nobodyさん:2021/06/18(金) 22:08:03.33 ID:???.net
今開発しているアプリがテストデータ程度だと普通なんだけど本番データに近い件数入れたら
なんか一覧を表示する速度が遅いなって思ってたら数年ぶりにN+1を発生させてしまっていたぜ

N+1なんて回避して当然だから自分やらかしていることに気付かず調べてから判明するまで6時間費やした

673 :nobodyさん:2021/06/18(金) 23:07:00.42 ID:???.net
eloquentのwithを知らない又は使ったことが無い人は案外いるのかな

674 :nobodyさん:2021/06/19(土) 00:33:52.61 ID:???.net
お前らモハメドの話聞いてないのかよ

675 :nobodyさん:2021/06/19(土) 01:04:26.68 ID:???.net
LaravelのEloquentにはupdateメソッドとsaveメソッドがありますが
どちらを使うのが一般的なんですか?

676 :nobodyさん:2021/06/19(土) 01:08:31.82 ID:???.net
>>675
動作が違うので必要な場面で必要な方を使うのが一般的です

677 :nobodyさん:2021/06/19(土) 02:52:09.97 ID:???.net
基本的にはモデルからfind()なりwhere()->first()なり1件取ってきてからsave()かと
複数行が対象とかで無い限りupdate()使ったりしない気がする

678 :nobodyさん:2021/06/19(土) 08:34:10.69 ID:???.net
相変わらず、ワケワカラン実装してんなぁ…。
作ってる奴がアホなんだろうなぁ…。

679 :nobodyさん:2021/06/19(土) 09:09:10.30 ID:???.net
>>678
ワケワカランてどういうところがそう思ったのか気になるなー。

680 :nobodyさん:2021/06/19(土) 12:41:17.93 ID:???.net
saveを使う場合は
$user->fill($request->validated())->save()
というような感じで使えばいいですか?

681 :nobodyさん:2021/06/19(土) 13:01:08.11 ID:???.net
初心者はまずドキュメントか本を読んで基礎を学べ

682 :nobodyさん:2021/06/19(土) 14:18:24.11 ID:???.net
ずっとjavascriptマンやっていて再びphpに戻ってきたらなんかいろいろ苦しい

683 :nobodyさん:2021/06/19(土) 15:33:42.74 ID:???.net
>>680
その使い方だとupdateでも同じでしょ?
自分はfillした後に何か処理挟むならsave、挟まないならupdateって使い分けしてる
あとコントローラー内限定だよね?その書き方

684 :nobodyさん:2021/06/19(土) 16:42:53.66 ID:???.net
釣り針デカすぎ

685 :nobodyさん:2021/06/19(土) 16:52:11.13 ID:???.net
>>684
>>683
「updateでも同じ」って部分を言ってるなら多分勘違いしてるぞ

686 :nobodyさん:2021/06/19(土) 19:37:14.74 ID:???.net
>あとコントローラー内限定だよね?その書き方

はぁ? 場所によって書き方変わんの?
相変わらず、ワケワカラン実装してんなぁ…。
作ってる奴がアホなんだろうなぁ…。

687 :nobodyさん:2021/06/19(土) 19:40:36.23 ID:???.net
>>686
お前はせめてPHP初心者卒業してからコメントしろよ
アホなんだからw

688 :nobodyさん:2021/06/19(土) 20:34:25.83 ID:???.net
>>686
横だけど、requestオブジェクトからバリデートした値だけを受け取っている部分があるから、controller限定かどうか尋ねてるってことでしょ。Laravelのこと知らないなら黙ってたほうがいいよ。どうせお前bigintおじさんでしょ?

689 :nobodyさん:2021/06/19(土) 20:41:20.40 ID:???.net
あえて煽る意味あるの?

690 :nobodyさん:2021/06/20(日) 02:25:33.79 ID:???.net
Eloquentの更新だったらupdateを使うのが普通でしょ
あえてsaveを使う理由はない

691 :nobodyさん:2021/06/20(日) 03:29:17.83 ID:???.net
>>690
そうなんだよね、結局updateの中身だってfillしてsaveしてるだけだから
あえて->save()分のコード量増やす意味ないと思う
それよりも震えるのはプロパティに値セットしてsaveしてる人ら

692 :nobodyさん:2021/06/20(日) 05:56:49.44 ID:???.net
>>691
何故?w
そっちが普通やろ
fill()とか常に使っている方が頭おかしい

693 :nobodyさん:2021/06/20(日) 08:14:01.06 ID:???.net
マスアサインメント知らないアホがなんか言ってるな

694 :nobodyさん:2021/06/20(日) 08:28:52.53 ID:???.net
このスレ見てるとphp使いとペチパーと揶揄される理由が分かるね

695 :nobodyさん:2021/06/20(日) 08:43:42.18 ID:???.net
そうか?低レベルなエンジニアはどの言語にも一定いると思うぞ。

696 :nobodyさん:2021/06/20(日) 09:08:09.75 ID:???.net
>>692
前提としてfillableかguardedをModelに設定してるよね
その値って更新可能なカラム名って感じがするけど
そうじゃなくてcreateとかupdateとかfillの引数で入力される連想配列が保存可能なカラムを定義してるのよ
なのでfillとかを使わないでセットした値はその影響を受けないのね
例えば更新なんかしちゃダメなprimaryKeyの値とかも変更可能なの
$user->id = 10 ;
$user->save();
ここまで書いたら分かると思うけど
こういう実装方法って重大なセキュリティホールの要因になりえるので
気を付けようねって意味を含めて「震える」って書いたの
別に俺はプロパティでセットしてsave呼び出してるからと言って頭おかしいとは思わんよ
上に書いた理由を知らなかったってだけだと思うし
実際、俺も使い始めの時プロパティにセットする実装してたから
こういった理由を知った上でそれでもプロパティで実装する方法を選択してるなら頭おかしいって思っちゃうかな

697 :nobodyさん:2021/06/20(日) 09:22:08.01 ID:???.net
え、
$user->id = 10 ;
なんて誰が書くの?君の同僚?

698 :nobodyさん:2021/06/20(日) 09:56:24.11 ID:???.net
>>697
申し訳ない、俺の例がわかりにくかったみたいだね
こんな例が考えられるけどどうかな?
たとえば悪意のあるユーザーがリクエストでis_adminパラメータを送信して
そのパラメーターがモデルのcreateメソッドに渡されてユーザーが自分自身を管理者に格上げする
みたいなケースが考えられるでしょ?
あと、少し慣れてくるとプロパティにセットする事が手間になってきて
foreachで回して値をセットしたりしがち
そうなると完全にやばいよね

699 :nobodyさん:2021/06/20(日) 10:23:31.57 ID:???.net
> foreachで回して値をセットしたりしがち

すまん、俺はそんな場面に出くわしたことないが、君の職場ではしがちなのかい?

700 :nobodyさん:2021/06/20(日) 10:25:45.61 ID:???.net
Eloquent式は受け取ったリクエストのタイプによって保存する内容が大幅に違う場合とかには重宝するけどね

701 :nobodyさん:2021/06/20(日) 10:28:58.58 ID:???.net
>>696
そもそもマスアサインメント知らないLaravel初心者にそんな具体的な説明しても無駄では?

702 :nobodyさん:2021/06/20(日) 10:30:07.55 ID:???.net
idって基本的にauto_increment入れる為のものだから
$user = User::find($request['id']);
とはやっても
$user->idの値を書き換えるとかちょっとあり得ん

703 :nobodyさん:2021/06/20(日) 10:49:54.07 ID:???.net
だからそれは例だっつーの
アホなの?

704 :nobodyさん:2021/06/20(日) 10:51:16.05 ID:???.net
fill厨はどんな場合でも使ってそうw

705 :nobodyさん:2021/06/20(日) 11:14:16.81 ID:???.net
例にある意味予約語みたいなワードを書くとか根本的に常識がない

706 :nobodyさん: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
こっちだと思うよ

707 :nobodyさん:2021/06/20(日) 11:24:44.54 ID:???.net
>>705
リンクおかしいな
https://readouble.com/laravel/8.x/ja/eloquent.html#mass-assignment

708 :nobodyさん:2021/06/20(日) 11:58:24.08 ID:???.net
おまえらっていつもマウントの取り合いしてるな

709 :nobodyさん:2021/06/20(日) 12:09:40.58 ID:???.net
例だからとかいって言い訳しているけど
idって基本的にauto_increment入れる為のものだから
$user = User::find($request['id']);
とはやっても
$user->idの値を書き換えるとかちょっとあり得ん

710 :nobodyさん:2021/06/20(日) 12:12:46.30 ID:???.net
しつこい
アホだ
アホは書き込み禁止

711 :nobodyさん:2021/06/20(日) 12:26:55.34 ID:???.net
>>704
どんな時でも使うべきだぞ。じゃないとリクエストからモデルに渡してよいフィールドが、コントローラー側で決定されるメソッドが生まれてしまうぞ。

712 :nobodyさん:2021/06/20(日) 12:41:55.52 ID:???.net
fillを必ず使え代入は危ないって言ってる人は、fillableじゃない値をどうやって入れるの?

713 :nobodyさん:2021/06/20(日) 12:44:44.49 ID:???.net
このスレ見てるとレベル低い奴が何故か威張っていて、これが今の日本のIT技術が低い理由、そして国が衰えてる理由に繋がってる気がする。
要は反知性主義なんだよね。真面目に科学的に考える奴のことを軽視している。
これって地動説否定とかトランプ支持者など外国でも見られた傾向だけど、日本は特にひどいね。教育が悪いんだろうか。

714 :nobodyさん:2021/06/20(日) 12:57:28.34 ID:???.net
IDのないスレをいつまで本スレとして使うつもりなのか?

715 :nobodyさん:2021/06/20(日) 13:08:15.94 ID:???.net
>>712
質問を質問で返すなよ お砂糖が知れるぞ

716 :nobodyさん:2021/06/20(日) 13:31:17.12 ID:???.net
>>713
コイツが1番偉そうっていうね。

717 :nobodyさん:2021/06/20(日) 13:31:50.81 ID:???.net
お前ら>>696の例に対して文句があるんだったら自分が例を提示しろよ

718 :nobodyさん:2021/06/20(日) 13:50:15.46 ID:???.net
>>691
fillを必ず使え代入は危ないって言ってる人は、fillableじゃない値をどうやって入れるの?

719 :nobodyさん:2021/06/20(日) 13:57:05.67 ID:???.net
>>718
できない訳ないじゃない
自分が知らないから無いだろうって決めつけると恥晒すよ
https://laravel.com/api/8.x/Illuminate/Database/Eloquent/Model.html#method_forceFill

720 :nobodyさん:2021/06/20(日) 14:00:15.21 ID:???.net
>>719
いやforceFillというメソッドは分かるよ。
それを使えば解決するよって回答でいいのかな?

721 :nobodyさん:2021/06/20(日) 14:12:25.97 ID:???.net
>>720
まず何を解決したいのかな?
それを聞かないで全て解決するなんて事は言えない
できれば具体例上げて欲しい
状況によって使うメソッドや方法も変えてるから

722 :nobodyさん:2021/06/20(日) 14:20:38.12 ID:???.net
逆にコントローラーでfillableじゃない値をセットしている奴は、コントローラーの責務をどう規定しているのか詳しく聞いてみたい。

723 :nobodyさん:2021/06/20(日) 14:24:09.06 ID:???.net
>>720
質問しといて申し訳ないけど
俺もfill使ってない事思い出したわ、すまんな
プロパティに入れてfillableガン無視で最後saveしてる人だったって事にしといてください
ここで言い争いしてコスト使うのが1番頭おかしいってふと気付いたわ

724 :nobodyさん:2021/06/20(日) 14:35:38.78 ID:???.net
laravelはなんでN+1問題が発生するんですか?
N+1って有名な問題だからFW設計時にそれを強制的にFW側で回避するようにできなかったのかな
いまだとwithとか明示的に使わないと回避できないよね?

725 :nobodyさん:2021/06/20(日) 14:39:23.50 ID:???.net
N+1問題を回避できるFWなんてないし、理論上つくれない

726 :718:2021/06/20(日) 14:43:21.94 ID:fbme7EFA.net
>>723
いや別に喧嘩腰になったつもりは無くて、単なる興味から聞きたかっただけなんだけどな。
答えたくないなら残念。

>>721
例を挙げるならユーザーのパスワードのセットする時とかだね。

727 :nobodyさん:2021/06/20(日) 14:44:31.24 ID:???.net
>>725
CodeIgniter4はFW側で回避してるぞ

728 :nobodyさん:2021/06/20(日) 14:45:04.87 ID:???.net
>>725
そうなんですか?となるとやっぱりFWを使う人側で回避しないといけないというわけですね

729 :nobodyさん:2021/06/20(日) 14:46:07.26 ID:???.net
>>726
だからfillableじゃない値はforceFill使えよ
プロパティに直接セットするとか素人ですら珍しいぞ

730 :nobodyさん:2021/06/20(日) 14:47:57.78 ID:???.net
N+1をFW側で回避することは非常に難しいですよ
その実装をできた人は世界中で表彰されるだろうと言われるぐらい難しいことなんです

731 :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 を使うとこの問題を克服できるのでしょうか?

732 :nobodyさん:2021/06/20(日) 15:56:55.52 ID:???.net
シーダーにforceFill使うならわかるけど
他の用途では使わないほうがいい気がする
laravelは入門程度だから実際に業務で使っている人の意見聞きたいな

733 :nobodyさん: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

734 :nobodyさん:2021/06/20(日) 16:20:43.33 ID:???.net
>>733
読み返してみたのですが

> コントローラではない所で更新

この表現は適切じゃなかったですね

> 独立した処理として更新

が適切かもしれません

735 :nobodyさん:2021/06/20(日) 17:43:02.03 ID:???.net
N+1問題、Laravel8の最新バージョンだと回避できるようになってる。N+1になる処理を実行しようとすると例外を発生させられるようになった。

736 :nobodyさん:2021/06/20(日) 19:14:58.36 ID:???.net
お前ら、マジで何やってんの?

737 :nobodyさん:2021/06/20(日) 19:20:55.26 ID:???.net
>>735
マジで?それはドキュメントのどこに書いてあるの?

738 :nobodyさん: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)

739 :nobodyさん:2021/06/20(日) 19:46:37.88 ID:???.net
>>737
すでに上で出てるけど、こっちの方が分かりやすいかな。
https://laravel-news.com/disable-eloquent-lazy-loading-during-development

740 :nobodyさん:2021/06/20(日) 19:47:49.94 ID:???.net
マニュアルだとこれ
https://laravel.com/docs/8.x/eloquent-relationships#preventing-lazy-loading

741 :nobodyさん:2021/06/20(日) 21:16:40.26 ID:???.net
>>725
速攻論破されて草 >>738-740の内容知らなかったのかな?

742 :nobodyさん:2021/06/20(日) 21:42:57.75 ID:???.net
俺はまだ論破されていない >>738-740はN+1の回避策を提示しただけであって
FW側で回避できるという証明にはならない

743 :nobodyさん:2021/06/20(日) 21:52:49.79 ID:???.net
ちょっと言っている意味がわからないです

744 :nobodyさん:2021/06/20(日) 21:53:07.92 ID:???.net
>>598
いや、別に論破とかどうでも良いんだが。N+1の実装したら例外出て便利になったっていう情報知らないぽいから教えてあげたかっただけ。

あとFW側で回避したいなら、modelのwithプロパティ使っとけば確実だと思うけどね。ただこれ使うと余計なテーブルアクセス増えてしまいがちだから、不要な時はwithoutとかのメソッド入れなきゃダメで、それはそれでだるい。

745 :nobodyさん:2021/06/21(月) 00:54:44.77 ID:???.net
だからモハメドの話をちゃんと聞けって
Laravel使っててモハメドの話聞いてないとかありえないぞ
https://youtu.be/213aEudaumk

746 :nobodyさん:2021/06/21(月) 09:50:26.59 ID:???.net
N+1問題とか、何やってんだろうなぁって思ったら
エロなんたらがActiveRecord型だからっつう事か?

アホな事やってんなぁ…。

ActiveRecord型はJOINが表現しずらいから使わんのよね。
無駄な努力をご苦労さん。

747 :nobodyさん:2021/06/21(月) 10:19:15.52 ID:???.net
近頃のFWはだいたいがActiveRecord型だし、特に無駄な努力なんてしてないけどな?DataMapper型しか使ったことないアンチオートインクリメントおじさんは、いつまでLaravelスレで粘着するのかね?

748 :nobodyさん:2021/06/21(月) 10:48:42.22 ID:???.net
ActiveRecord型は表現が冗長でミスを誘引しやすい
特に初心者にとっては記述する動機になりづらく成長の阻害要因

JOINで書くよりN+1で書いたほうが表現がスマートなのが問題なんだよ

749 :nobodyさん:2021/06/21(月) 10:50:58.39 ID:???.net
Laravel以前はCakeしか使ったことないからN+1なんて知らんかったわ
ここ数日初めてこのスレで勉強になった

750 :nobodyさん:2021/06/21(月) 11:28:23.03 ID:???.net
JOINで書くってDBファサードからjsonメソッド使って書くって事?
生のSQLでjson使って書くって事?

751 :nobodyさん:2021/06/21(月) 11:30:35.35 ID:???.net
ベテランRailsエンジニアたちがN+1でハマってるのみて何をもがいているのか不明だった
そしたらLaravelでもハマる奴らも続出していたんだな

752 :nobodyさん:2021/06/21(月) 11:35:51.07 ID:???.net
いや、ベテランはハマらないぞ。さすがに。DBアクセスのロジック書いたら、普通に生成されるSQL確認するから、そこで気づく。

753 :nobodyさん:2021/06/21(月) 11:37:18.75 ID:???.net
あとjoinガーて言ってる人、雑魚はinner joinとouter joinを使い分けられないという点に気づいていないと思う。

754 :nobodyさん:2021/06/21(月) 12:33:16.81 ID:???.net
生SQLとかDBの仕組み的なことを知らないとハマるんだろうね
たしかにFWがうまくやってくれるもんだと思ってたらそこまで考えない
SQLを作るための仕組みっていうのを知ってたら中間出力であるSQLはどうなってるのか気になるんだろうけど
意識しなくて済むような仕組みだからね

755 :nobodyさん:2021/06/21(月) 14:13:34.84 ID:???.net
>>750

DataMapper型でクエリビルディングして書くって事

正直、Railsで失敗してんのに敢えてActiveRecord型を選ぶとか、頭おかしいとしか思えん。
だからプライマリキーはidのオートインクリメントです、
復号プライマリキーは設定できません、みたいなトチ狂った設計になっちゃうんだよ。

10年以上、全く成長しないよな世間の奴らって。

756 :nobodyさん:2021/06/21(月) 14:14:32.66 ID:???.net
なんだこりゃ? 脳みそ腐ってんじゃね? こいつ

753nobodyさん2021/06/21(月) 11:37:18.75ID:???
あとjoinガーて言ってる人、雑魚はinner joinとouter joinを使い分けられないという点に気づいていないと思う。

757 :nobodyさん:2021/06/21(月) 14:19:54.78 ID:???.net
いや、お前らがActiveRecord型しか知らないんだろwww
DaoもActiveRecordも同じ『JOINがたマトモに表現出来ません』問題で失敗してんのに、
なんで敢えてActiveRecord型選んじゃうっすか?www

学習しましょうよ、せんぱーいw


747nobodyさん2021/06/21(月) 10:19:15.52ID:???
近頃のFWはだいたいがActiveRecord型だし、特に無駄な努力なんてしてないけどな?DataMapper型しか使ったことないアンチオートインクリメントおじさんは、いつまでLaravelスレで粘着するのかね?

758 :nobodyさん:2021/06/21(月) 14:21:17.36 ID:???.net
アンチオートインクリメントおじさんが荒ぶってらっしゃる

759 :nobodyさん:2021/06/21(月) 14:21:18.84 ID:???.net
やべぇ、流石に草生えまくり過ぎて、誤字・誤変換だらけになってるし。

760 :nobodyさん:2021/06/21(月) 14:27:07.58 ID:???.net
アホはトレードオフって言葉を知らないので、ある側面だけをみてActiveRecordは失敗とか言っちゃうんだよなー。
そういえば前に、ActiveRecord自体知らなくて、1テーブル1モデルなんてありえねーとか言ってた恥ずかしい奴がいたな。

761 :nobodyさん:2021/06/21(月) 14:32:26.85 ID:???.net
>>760

何言ってんだろうね、このバカは相変わらず。

じゃ、他のORMに比べて、他にどんなメリットがある?
お前、マジでActiveRecordしか知らないんじゃん。

762 :nobodyさん:2021/06/21(月) 14:33:53.71 ID:oQmF9W/n.net
>>760

ってか、『1テーブル1モデル』って、なんすか?www

もしかして『1テーブル1クラス』の間違いっすか?www

763 :nobodyさん:2021/06/21(月) 14:35:29.37 ID:???.net
わざわざDataMapper型に触れておいたのにこれだもんなぁ。アンチオートイクリメントおじさんの頭の悪さは相変わらずで。自覚ないからつい人を見下しちゃう癖もそのままかー。可哀想。

764 :nobodyさん:2021/06/21(月) 14:38:21.20 ID:???.net
前スレ。ブーメラン乙。

>>937

人の話聞いてんのかな? ModelはDBにアクセスする物じゃねぇんだから、
Modelとテーブルが1対1なわけねーーーーーーーだらーーーーーーーーーー!
937nobodyさん2021/05/23(日) 18:01:50.48ID:???
他のテーブルとのjoin操作までModelに入れるのはなんか違う気がするんだけどその辺どうしてるの?

765 :nobodyさん:2021/06/21(月) 14:42:06.29 ID:???.net
オートインクリメントおじさん、書きっぷりが独特だからすぐわかる

766 :nobodyさん:2021/06/21(月) 14:51:04.66 ID:oQmF9W/n.net
>>764

何いってんだこのノータリンは…。日本語読めないのか…orz
それを『1テーブル1モデルなんてありえねー』って読むのか、バカって。

「1つのモデルで取り扱うのが1テーブルだけだなんてあり得ない」って書いてあるんだぞ?
なんでテーブルが主語になってんだよ?
脳みそ腐りすぎだろ、かんべんしてくれよ。

というか、937が
「他のテーブルとのjoin操作までModelに入れるのは」
って言ってんだぞ、そっちをつっこめよ。
そのバカ、『Model=DBにアクセスする場所』って思ってるって事だぞ?
なわけねぇだろ。

お前らって、本当にプロのエンジニアなの? 素人だろ?

767 :nobodyさん:2021/06/21(月) 14:53:50.03 ID:???.net
>>765

はいはい、凄い凄い。

テンプレエンジンが独自Bladeです、の時点で『マジか!?』と思って避けてたけど、
Railsと同じ失敗するとか、2度めの『マジか!?』だな。

ほんと、学習しねぇよなぁ…。

768 :nobodyさん:2021/06/21(月) 14:55:27.17 ID:???.net
>>763
> わざわざDataMapper型に触れておいたのにこれだもんなぁ。

聞かれた事に答えずに遁走っと。

尋問内容:
じゃ、他のORMに比べて、他にどんなメリットがある?
お前、マジでActiveRecordしか知らないんじゃん。

769 :nobodyさん:2021/06/21(月) 14:58:40.65 ID:???.net
というか、これが全てだろ。
お前ら、マジで、いつまでおんなじ所ぐるぐる回ってんだよって話。

751nobodyさん2021/06/21(月) 11:30:35.35ID:???
ベテランRailsエンジニアたちがN+1でハマってるのみて何をもがいているのか不明だった
そしたらLaravelでもハマる奴らも続出していたんだな

770 :nobodyさん:2021/06/21(月) 15:05:20.06 ID:???.net
アンチオートインクリメントおじさん、きっと仕事で誰とも組んでもらえなくて、チーム開発したことも無いんだろうな・・・。

771 :nobodyさん:2021/06/21(月) 16:01:02.96 ID:???.net
結局、Laravel使うプロジェクトって、
取って出しの簡単な物しか作ってないって事なんだよな。
業務システムみたいに復数テーブルと都合させて〜みたいな処理はやらない。
そういうのしかやった事ない奴がLaravelまんせーしてる。

まぁ、そういう簡単な用途ならいいんじゃねぇの?

772 :nobodyさん:2021/06/21(月) 16:02:28.23 ID:???.net
もう、呆れ果てて誤変換しまくり。

“複数テーブル突合させて〜”。

773 :nobodyさん:2021/06/21(月) 16:10:23.74 ID:???.net
別に何のORMが使いやすいとか
DataMapperがとかActiveRecordがどうのとかそういうのは個人の趣味趣向だから好きにしてって思うんだけど
laravelで使う上で色々なライブラリやFW自体がeloquentを使う前提で作られてるのに
それを外してまで他の仕組み導入するメリットってあるのかな?

774 :nobodyさん:2021/06/21(月) 16:11:57.88 ID:???.net
クエリビルダ知らずにドヤってて、見てるこっちが恥ずかしいわ。

775 :nobodyさん:2021/06/21(月) 16:23:48.14 ID:???.net
laravelに別のORMを導入した時点でメリットがあるのはプロジェクトじゃなくて、自分になるんじゃない?
その証拠に規模や用途の話が全く出てきてないよね?
全てのプロジェクトに対してのベストプラクティスが一つならどっちがいいなんて議論にならないはずよね

776 :nobodyさん:2021/06/21(月) 17:43:07.60 ID:???.net
そういうわけでN+1くらい我慢しろ
これが不具合というわけでもないんだし

777 :nobodyさん:2021/06/21(月) 18:56:49.34 ID:k1suUzpe.net
773と774で言ってる事背反してんのに>>774って頭悪いよなぁ。毎度こんな感じだけど。

クエリビルダ知らんってのもどっから出てきたんだよって話しだし、
あったらなんだよ、それで解決すんのか?、って話しだし、
アホ過ぎて頭痛くなってくる。

こういう馬鹿って、来月あたりにN+1にどっ嵌って頭かかえてそうな馬鹿さがある。

778 :nobodyさん:2021/06/21(月) 18:59:00.80 ID:???.net
>>775
> その証拠に規模や用途の話が全く出てきてないよね?

どこに? 主語ちゃんと話そうぜ?

779 :nobodyさん:2021/06/21(月) 19:18:52.39 ID:???.net
>>777
中規模以上のプロジェクトだとeloquent禁止して、クエリビルダで開発してたりする。まぁ、Laravel使わないのにこのスレに居座る構ってちゃんには関係無い話か。

780 :nobodyさん:2021/06/21(月) 19:39:32.60 ID:???.net
>>779

禁止w

マジで、何やってんのあなた達w

781 :nobodyさん:2021/06/21(月) 19:46:28.53 ID:???.net
うん?アーキテクチャを決める際にEloquentを使うか、クエリビルダを使うかの意思決定の話だぞ。
チーム開発において、好き勝手な実装を認めるわけには行かないってのは理解できるかい?
お前、アーキテクチャ設計とかチーム内の規約とか作った経験無いでしょ?

782 :nobodyさん:2021/06/21(月) 20:29:49.29 ID:???.net
えっとさ、併用、出来ないの? 禁止って。
どうしてそうなっちゃう?

783 :nobodyさん:2021/06/21(月) 20:30:49.94 ID:???.net
> お前、アーキテクチャ設計とかチーム内の規約とか作った経験無いでしょ?

論点ずれまくりだって事くらいは分かろうな?

784 :nobodyさん:2021/06/21(月) 20:44:58.66 ID:???.net
Laravelを採用するやつらは周りから嫌われていることを知ったほうがいい
わざわざ失敗したActiveRecordが実装されているFWを採用している時点で何も考えていないアホなのが丸わかり

785 :nobodyさん:2021/06/21(月) 20:49:47.04 ID:???.net
Laravel使ってるやつらって自分が楽するための簡単なツールとかそういう程度のアプリしか実装したことないだろ
実際の業務では複合主キーや複数テーブルなどの操作は当たり前だからな
それらをサポートしていないLaravelのようなFWを業務で使うことはない

786 :nobodyさん:2021/06/21(月) 20:50:42.90 ID:???.net
Laravelって複合主キーってできないの?
マイグレーションでは複合主キーできるよね

787 :nobodyさん:2021/06/21(月) 21:00:42.76 ID:???.net
>>783
ズレてるのはお前。そもそもLaravel使ったことないくせに、なぜこのスレに居るんだい?

788 :nobodyさん:2021/06/21(月) 21:03:35.83 ID:???.net
>>787

おー、恒例の論点ずらしっすか。

じゃ、敢えて乗ってやると、
ちまたの皆さまがまんせーするLaravelとやらが、どれほど成長したのか見て差し上げようと思って覗いてみたら、
『まだそんな事やってたんすか!!!!』という驚きと共に、
まんせーし続ける皆様を観察して正気なのか確かめる為です。

こんな感じで宜しいでしょうか?

789 :nobodyさん:2021/06/21(月) 21:05:01.93 ID:???.net
>>788
つまり構ってちゃんてことかwww

790 :nobodyさん:2021/06/21(月) 21:09:46.99 ID:???.net
アプリケーション中心の設計ならEloquent、データベース中心の設計ならクエリビルダ使えるのがLaravelの良いところなんだが、まぁアホには理解できんだろう。

791 :nobodyさん:2021/06/21(月) 22:48:07.73 ID:???.net
>>790
逆じゃない?アプリ中心ならクエリビルダ、DB中心ならEloquentだと思う

792 :nobodyさん:2021/06/21(月) 22:54:02.08 ID:???.net
業務ロジックを込めるならSQL一発勝負のほうがシンプル

793 :nobodyさん:2021/06/21(月) 23:03:02.03 ID:???.net
オートインクリメント君って本当にbigintを枯渇させたのかな?
それともbigint知らないでintでオートインクリメントしてたのかな?

794 :nobodyさん:2021/06/21(月) 23:07:02.06 ID:???.net
>>791
ActiveRecord採用すると、DBの設計がアプリケーションに引きづられるって昔から指摘されてるよ。構ってちゃんが指摘する通り、複合キーも使えずサロゲートキー前提の実装になるしね。

795 :nobodyさん:2021/06/21(月) 23:07:51.96 ID:???.net
intでも普通は枯渇しないやろw
多分そいつは何も知らないだけやと思う

796 :nobodyさん:2021/06/21(月) 23:59:27.35 ID:???.net
intで枯渇したのってTwitterのIDぐらいしか知らないな

797 :nobodyさん:2021/06/22(火) 00:05:16.92 ID:???.net
そもそもintって何ビットの話なんだよ

798 :nobodyさん:2021/06/22(火) 00:06:42.85 ID:???.net
intって8ビットだっけ?

799 :nobodyさん:2021/06/22(火) 00:08:00.84 ID:???.net
intは2バイトだろ・・

800 :nobodyさん:2021/06/22(火) 00:08:19.28 ID:???.net
ごめん間違えた4バイトです

801 :nobodyさん:2021/06/22(火) 00:22:13.11 ID:???.net
PHPのintは64bit
約900京まで扱える

世界の人口は78億人
どうやって枯渇したんだ?

802 :nobodyさん:2021/06/22(火) 01:39:11.62 ID:???.net
>>801
オートインクリメント君はbigint枯渇させてからオートインクリメントは危険と思うようになったらしいですよ

803 :nobodyさん:2021/06/22(火) 02:50:07.13 ID:???.net
>>790

速攻で否定されるアホw
あなたたち、一体何してるんすか?www

804 :nobodyさん:2021/06/22(火) 02:52:09.86 ID:???.net
>>797-800

これがLaravelerの実態

805 :nobodyさん:2021/06/22(火) 02:58:45.33 ID:???.net
1. intで数年で破綻する設計を実際に見た
2. 有限な値をプライマリキーにするのはおかしい

こう言ったのを、

Laravelerは頭がおかしすぎるので足して2で割ってしまい、
『bigintを枯渇させた』という、謎ワードを勝手に作り出して興奮している。

本当に頭悪過ぎ。だから2021年にもなってN+1問題みたいな下等な事でワイワイやっている。
成長というものがかけらも見られない下等な人種の集まり。

806 :nobodyさん:2021/06/22(火) 03:01:57.73 ID:???.net
あ! 今気づいた!
N+1問題って、『N isennizyuu 1 問題』だったんだ、
ちょーうけるwww

807 :nobodyさん:2021/06/22(火) 03:10:07.27 ID:???.net
>>790

で? 聞かれた事に答えないからもう一回聞くけど、

それ、併用できないんすか?www

808 :nobodyさん:2021/06/22(火) 07:00:10.38 ID:???.net
書き方があちこちで違うと新規参画者の習熟時間が増える

809 :nobodyさん:2021/06/22(火) 07:11:23.47 ID:???.net
>>807
マジでその質問いる?趣味でしか開発したことないの?チーム開発で規約作ったことないの?てか、「なぜ」についてもすでに回答しているよ。日本語読めないのかい?アンチオートインおじさんは。

810 :nobodyさん:2021/06/22(火) 07:11:47.61 ID:???.net
>>809
オートイン→オートインクリメント

811 :nobodyさん:2021/06/22(火) 07:40:58.98 ID:???.net
>>797-800

これがLaravelerの実態

812 :nobodyさん:2021/06/22(火) 07:44:10.94 ID:???.net
PHPのintは64bit(64bit環境かつPHP7以降)
っていう話と、DBのintが何ビットかっていう話がごっちゃになってないか?

あと、有限なキーがダメって話が出てるけど
有限ではないキーなんて存在するんだろうか?

あとDBにはintは実装されてるけど使う人なんていなくて
実際はDECIMAL(NUMERIC)を使うでしょ

813 :nobodyさん:2021/06/22(火) 08:05:12.78 ID:???.net
>>812
DBでもint使うが?

814 :nobodyさん:2021/06/22(火) 08:06:41.65 ID:???.net
>>812
補足すると、アンチオートイクリメントおじさんは、オートインクリメントだと有限な値を使うことになるからダメだってアホな主張をしてて、それで、は?bigintなら問題ないでしょて突っ込まれて、そのあと920京はunsignedだからプログラムで読めない!とか言って失笑を買ってた。

815 :nobodyさん:2021/06/22(火) 08:57:59.61 ID:???.net
>>809

なんか、壊れたレコードみたいになってきたなw

で? 聞かれた事に答えないからもう一回聞くけど、

それ、併用できないんすか?www

答えると、なんか都合悪いんスカ?w

816 :nobodyさん:2021/06/22(火) 08:59:43.51 ID:Sb0vhLl6.net
>>812
>PHPのintは64bit(64bit環境かつPHP7以降)
>っていう話と、DBのintが何ビットかっていう話がごっちゃになってないか?

うん、お前らがね。

>あとDBにはintは実装されてるけど使う人なんていなくて
>実際はDECIMAL(NUMERIC)を使うでしょ

また、謎の言葉を吐き出したしw
Laravelerって、ここまで頭おかしいんだw

817 :nobodyさん:2021/06/22(火) 09:04:48.98 ID:???.net
>>815
すでに回答済みって書いてるから、一定の知性がある生物ならログ確認すると思うよ?それともお前にはそういった知性は期待できないので、もう一度回答したレス番を示してあげた方が良いってことかな?

818 :nobodyさん:2021/06/22(火) 09:06:53.83 ID:???.net
壊れたレコードてのは、禁止する理由説明してもなお「併用したらダメっすか?」て質問し続けるやつのことじゃないか?

819 :nobodyさん:2021/06/22(火) 09:08:54.63 ID:???.net
>>817
>すでに回答済みって書いてるから

そういう問題じゃないって事すらわからないんだ。
よっぽど自分の頭の中だけで生きてる引きこもりなんだろうな。

で? 聞かれた事に答えないからもう一回聞くけど、

それ、併用できないんすか?www

答えると、なんか都合悪いんスカ?w

820 :nobodyさん:2021/06/22(火) 09:12:23.03 ID:Sb0vhLl6.net
>>812
>あと、有限なキーがダメって話が出てるけど
>有限ではないキーなんて存在するんだろうか?

これについての返答、SQL書いてるからかなんなのか、ブロックされるな。
あのさ、VARCHAR(8)ですら、ユニーク数、幾つか計算できるか?ほぼ、出来ねぇんじゃねぇか?

821 :nobodyさん:2021/06/22(火) 09:15:42.88 ID:Sb0vhLl6.net
>>809=817 って、自分の頭の中に組み上げた式から外れた事は一切考えられないロボ君なんだろうな。

『併用できないんすか?』って聞かれてるんだから出来るか出来ないか、答えりゃいいじゃん。

バカだよなぁ…。

822 :nobodyさん:2021/06/22(火) 09:15:57.31 ID:???.net
>>819
会話にならねぇ。アンチオートイクリメントおじさんとの会話は俺には無理だわ。じゃーな。

823 :nobodyさん:2021/06/22(火) 09:24:54.83 ID:???.net
・有限か有限ではないか
・必要十分か不足する可能性はあるか

これは別の問題だと思うんだよね

サービスの要件として日本人を対象とした日本語のサービスであれば目安となるのは1億2000万
これをベースに再作成や複数ID、出生率などを勘案していけばいい
日本人を対象とした商用サービスで最大レベルのものといえば電話だと思うけど
電話番号は11桁

つまり、0〜9の値をとる11桁があれば日本人相手のサービスとしては十分なんだ

人類は有限であるからIDは無限である必要はない
おまえらがいきなり子づくりに目覚めて出生率が跳ね上がる見込みもない
システムの寿命、Laravelの寿命を考えると宇宙の歴史規模の余裕を持つ必要もない

つまり、11桁の数を持ち得る手法であれば必要十分なんだ

824 :nobodyさん:2021/06/22(火) 09:25:58.92 ID:???.net
DBでintを使うってことはおまえら大企業じゃないのか

825 :nobodyさん:2021/06/22(火) 09:34:27.10 ID:???.net
おぢさん、PDOとmysqli混ぜて使ってそう

826 :nobodyさん:2021/06/22(火) 09:55:34.70 ID:???.net
シークエンスでオートなnumberingをするようなDBのデファインを使うのは優れた方法の1つ
重複しないことをDBMSが保証してくれる上にパフォーマンスもよい

よく自動採番の欠点として例示されるのがマスタ画面で新規登録する際
登録時に採番した番号を表示できない、表示したらキャンセルした場合に欠番が出るなんて言うけど
エントリー順にnumberingする以上、たとえ手作業でやっても避けられない問題だ

ただ、データベースの常識として余計なデータは不要だという事
主キー足りえる列がすでにあるのにさらにID列を設ける
これはバッドだ
氏名+電話番号で主キーとして足るのであれば新たにID列を増やすのはパフォーマンスを落とすだけの行為でしかない
(ただ実運用上で主キーを見抜くのは並大抵ではない。例示した氏名+電話番号が通用する場面があったとしても特殊な例外だろう)

ID列を追加するという行為は無駄な領域を確保するという事
検索速度に寄与するわけでもない主キーを追加することによってHDDの余計な領域を確保してしまう
またサーチする際のシークエンス速度もその分劣化してしまう

IDなんてせいぜい8バイトかもしれない
8バイトが1億件あったとしても8億バイトだ
RAID6構成だとしてもたった16億バイト分の領域が無駄になるだけだ

しかし、それを詰めてほんの少しのパフォーマンスアップでももくろむのが我々技術者の使命ではないだろうか

最後になったが主キーの例示でまともな例を出せなかったことをお詫びしておく

827 :nobodyさん:2021/06/22(火) 10:16:29.56 ID:???.net
うちで作ったサービスは普通に連番でIDにしてるが表に出すユーザーIDは別のユニーク文字列を生成してる
連番だとIDで登録順がバレる、予測が簡単だから攻撃されやすいなどのデメリットがある

828 :nobodyさん:2021/06/22(火) 10:41:14.57 ID:???.net
オートインクリメント君あまりの知識のなさに素人だということがバレちゃったね

829 :nobodyさん:2021/06/22(火) 10:48:16.11 ID:???.net
>>826
> 最後になったが主キーの例示でまともな例を出せなかったことをお詫びしておく

わろたw
おまえ、これ書きたかっただけだろ

830 :nobodyさん:2021/06/22(火) 11:11:11.15 ID:???.net
主キーなんかdefault gen_random_uuid()で十分

831 :nobodyさん:2021/06/22(火) 11:34:16.27 ID:???.net
ナチュラルキー派って逆に時代遅れ

832 :nobodyさん:2021/06/22(火) 11:58:55.37 ID:???.net
サロゲート使って運用楽したい
そんな理由でも良いじゃない

833 :nobodyさん:2021/06/22(火) 12:13:12.46 ID:???.net
この前、某イベントで環境を10個作っているやべえ会社がいることに驚いた

834 :nobodyさん:2021/06/22(火) 12:17:42.10 ID:???.net
この前、某イベントで環境を10個作っているやべえ会社がいることに驚いた

835 :nobodyさん:2021/06/22(火) 12:46:52.33 ID:???.net
Laravel使ってみたけどDBの検索が遅い気がするのは気のせい?

836 :nobodyさん:2021/06/22(火) 12:51:40.12 ID:???.net
>>835
またかよ。いつものキモいやつ

837 :nobodyさん:2021/06/22(火) 12:57:19.01 ID:???.net
>>836
いや初めてなんだけど CodeIgniterと比べると遅い気がする

838 :nobodyさん:2021/06/22(火) 13:06:56.71 ID:???.net
>>837
まともなエンジニアなら計測して検証した上で人に聞くんだよ
お前からは話題ループさせて喜ぶキモいやつの匂いしかしない

839 :nobodyさん:2021/06/22(火) 13:08:08.58 ID:???.net
それぞれのSQL文がどうなってるか調べてみれば?としか言いようがない

840 :nobodyさん:2021/06/22(火) 14:13:49.08 ID:???.net
>>835
LaravelとCodeIgniterを比べて遅いだったらそれはDBが遅いんじゃなくてアプリが遅いんじゃないのか?
とりあえず出力されてるSQLをExplainして比べてみろよ
そもそもベンチマークとってんのか?
気がするじゃなくて具体的な数字で出せよ

例えば「巨乳入店しました」でEカップだったらがっかりするだろ?
でも「Eカップ入店しました」でEカップだったらOKなんだよ
そういうところがIT業界では大事なんだから覚えておけよ

841 :nobodyさん:2021/06/22(火) 14:18:51.65 ID:???.net
普通に使ってたらコレクション型になるからデータが多いと重いのは否めない

842 :nobodyさん:2021/06/22(火) 14:42:20.72 ID:???.net
ベンチマークとってどんどんチューニングしていく
それがおもしろいんだろ
プログラマの楽しみをちゃんと味わえよ?

843 :nobodyさん:2021/06/22(火) 14:53:52.44 ID:???.net
>>840
DBから情報を取得する部分の速度を計ってみました。
CodeIgniterは約0.1秒、Laravelは約0.7秒でした
どちらの1秒以内なので誤差と考えていいですかね?

844 :nobodyさん:2021/06/22(火) 15:05:03.09 ID:???.net
そのぐらいなら誤差と考えていいと思います

845 :nobodyさん:2021/06/22(火) 15:07:24.13 ID:???.net
そもそもCodeIgniterは薄いFWだから確実にCodeIgniterのほうが速くなる
Laravelは単純にDBから情報取得するだけでも色々な処理が動作するので遅くなる

846 :nobodyさん:2021/06/22(火) 15:54:38.18 ID:???.net
オートインクリメント君がbigintを知らなかったのは笑えたな

847 :nobodyさん:2021/06/22(火) 16:52:02.28 ID:???.net
DB側の実装でサイズが変わるint系を避けてnumericで桁数指定が常識だろう
なぜ素人みたいな実装を推奨してるんだ?

848 :nobodyさん:2021/06/22(火) 17:03:20.73 ID:???.net
>>947
やめたれw ここの連中素人で業務システムの構築経験とかないだろうから
あなたの言っていることは理解できない内容だと思うぞw

849 :nobodyさん:2021/06/22(火) 17:17:18.12 ID:???.net
固定小数点数をAIに設定できるDBって何?

850 :nobodyさん:2021/06/22(火) 17:21:09.57 ID:???.net
>>843
同じ内容を取得してその差が出てるんだったらさすがに計測ミスじゃないの?
DBへの接続と切断で50m秒ぐらいだろうからCIは残り50m秒で他の処理したってことだよね
同じくLaravelは650m秒
CIはそんなもんだと思うからLaravelはどこでそんなに時間かかってるか切り分けたほうがいいんじゃないか?

経験的に時間がかかるのはDBレスポンス、結果の受け取り、結果の出力の3か所
それぞれ計測すればネックになってる箇所がわかると思う
プロファイラなら関数レベルで処理時間が出てるのではないか?

CIのほうでトータル0.1秒で処理しきってるからおそらく大したデータ量ではないと思う
せいぜい数十から数百レコードの範囲かな

いくらなんでも単純なクエリで0.7秒もかかるほどLaravelもひどくないでしょ

851 :nobodyさん:2021/06/22(火) 17:36:29.01 ID:???.net
今日フレームワークがどういうつくりをしているのか気になって
Symfonyのソース読んでからLaravelのソース読んだんだけど断然Symfonyのが読みやすかったなぁ
Laravelって回りくどいというかなんというか
ちょっした処理を行うにもやたらとラッピングしたがるね(ラッピングすることによるメリットもあるとはいえ)

852 :nobodyさん:2021/06/22(火) 17:48:17.87 ID:Sb0vhLl6.net
>>822

このバカ、15秒で返信してるしw
貼り付いてんのか。

で、聞かれたことに答えず遁走。
併用できるか出来ないか、答えたらよっぽど都合が悪い事があったんだろうなぁ。

バカって、分かりやすい。

853 :nobodyさん:2021/06/22(火) 17:54:44.99 ID:Sb0vhLl6.net
こういうまっとうな意見が出てきて、Laraveler涙目。
もう、Laravelerって本当にバカだと思う。
auto_incrementなidが必須って、頭おかしいんだよ。

847nobodyさん2021/06/22(火) 16:52:02.28ID:???
DB側の実装でサイズが変わるint系を避けてnumericで桁数指定が常識だろう
なぜ素人みたいな実装を推奨してるんだ?

848nobodyさん2021/06/22(火) 17:03:20.73ID:???
>>847
やめたれw ここの連中素人で業務システムの構築経験とかないだろうから
あなたの言っていることは理解できない内容だと思うぞw

854 :nobodyさん:2021/06/22(火) 17:55:18.07 ID:Sb0vhLl6.net
致命的知能マイナスなバカ君


846nobodyさん2021/06/22(火) 15:54:38.18ID:???
オートインクリメント君がbigintを知らなかったのは笑えたな

855 :nobodyさん:2021/06/22(火) 17:56:54.31 ID:Sb0vhLl6.net
そうだよ? Laravelのコードは、結構酷いよ?
ちょっと読んだだけでも『これ、なんでこんなめんどくさい事してんの?』ってなるよ?

851nobodyさん2021/06/22(火) 17:36:29.01ID:???
今日フレームワークがどういうつくりをしているのか気になって
Symfonyのソース読んでからLaravelのソース読んだんだけど断然Symfonyのが読みやすかったなぁ
Laravelって回りくどいというかなんというか
ちょっした処理を行うにもやたらとラッピングしたがるね(ラッピングすることによるメリットもあるとはいえ)

856 :nobodyさん:2021/06/22(火) 17:57:28.03 ID:Sb0vhLl6.net
だからLaravelは遅いんだなぁ…、って、よく分かるよ。
Laravelのコード読んでみると。

857 :nobodyさん:2021/06/22(火) 18:00:06.49 ID:Sb0vhLl6.net
0.1秒に対して+0.6秒が誤算なわけないじゃんw 7倍掛かってんだよ???
Laravelerって、本当に脳みそどうなってんの?


843nobodyさん2021/06/22(火) 14:53:52.44ID:???>>850
>>840
DBから情報を取得する部分の速度を計ってみました。
CodeIgniterは約0.1秒、Laravelは約0.7秒でした
どちらの1秒以内なので誤差と考えていいですかね?

844nobodyさん2021/06/22(火) 15:05:03.09ID:???
そのぐらいなら誤差と考えていいと思います

858 :nobodyさん:2021/06/22(火) 18:00:06.92 ID:???.net
>>847
固定小数点数をAIに設定できるDBって何?

859 :nobodyさん:2021/06/22(火) 18:01:33.41 ID:Sb0vhLl6.net
>>858

このバカ、何を言い出したの? なんでauto_incrementの話を引っ張ってきたの?
頭大丈夫?

860 :nobodyさん:2021/06/22(火) 18:03:08.24 ID:Sb0vhLl6.net
>CIのほうでトータル0.1秒で処理しきってるからおそらく大したデータ量ではないと思う
>せいぜい数十から数百レコードの範囲かな

数百レコードで0.1秒掛かるってだけで遅すぎるのに、
Laravelは同じ条件で0.7秒っすか!
あくびが出るっすね!

861 :nobodyさん:2021/06/22(火) 18:04:24.74 ID:???.net
>>847
君はnumericの型をAI設定してるの?

862 :nobodyさん:2021/06/22(火) 18:07:44.09 ID:Sb0vhLl6.net
>>826
>826nobodyさん2021/06/22(火) 09:55:34.70ID:???>>829
>シークエンスでオートなnumberingをするようなDBのデファインを使うのは優れた方法の1つ
>重複しないことをDBMSが保証してくれる上にパフォーマンスもよい
>よく自動採番の欠点として例示されるのがマスタ画面で新規登録する際
>登録時に採番した番号を表示できない、表示したらキャンセルした場合に欠番が出るなんて言うけど
>エントリー順にnumberingする以上、たとえ手作業でやっても避けられない問題だ

おまえさぁ、『エントリー順にnumberingする以上、たとえ手作業でやっても避けられない問題だ』って、マジで言ってる?

だーめだこりゃ。
お前さ、トランザクションと排他ロック知らないの?
避けられないわけねーだろ、素人かよ?

ってか、Laravelerが基本的に素人なんだけどさ。

863 :nobodyさん:2021/06/22(火) 18:07:44.34 ID:Sb0vhLl6.net
>>826
>826nobodyさん2021/06/22(火) 09:55:34.70ID:???>>829
>シークエンスでオートなnumberingをするようなDBのデファインを使うのは優れた方法の1つ
>重複しないことをDBMSが保証してくれる上にパフォーマンスもよい
>よく自動採番の欠点として例示されるのがマスタ画面で新規登録する際
>登録時に採番した番号を表示できない、表示したらキャンセルした場合に欠番が出るなんて言うけど
>エントリー順にnumberingする以上、たとえ手作業でやっても避けられない問題だ

おまえさぁ、『エントリー順にnumberingする以上、たとえ手作業でやっても避けられない問題だ』って、マジで言ってる?

だーめだこりゃ。
お前さ、トランザクションと排他ロック知らないの?
避けられないわけねーだろ、素人かよ?

ってか、Laravelerが基本的に素人なんだけどさ。

864 :nobodyさん:2021/06/22(火) 18:11:40.74 ID:Sb0vhLl6.net
あー、なんとなく思ったけど、
idがauto_incrementなら、
登録失敗するリクエストを延々と発行し続けられる状況が発生すれば、
BIGINTも結構現実的な時間であっという間に枯渇するなw

だって、
『キャンセルした場合に欠番が出る』んだからwww

AUTO INCREMENT BOMB 脆弱性と名付けよう。

865 :nobodyさん:2021/06/22(火) 18:13:40.05 ID:???.net
確かに今までのDB関連のレスの応酬見る限りLaravel使っている人って
トランザクションとか排他ロックとか知らなそうな気がする
知ってたらとてもじゃないけど提案できそうもない案を出してくるからねこのLaravel使い達は

866 :nobodyさん:2021/06/22(火) 18:20:56.72 ID:Sb0vhLl6.net
知性の欠片もないのが、おまえらLaraveler

828nobodyさん2021/06/22(火) 10:41:14.57ID:???
オートインクリメント君あまりの知識のなさに素人だということがバレちゃったね

867 :nobodyさん:2021/06/22(火) 18:21:26.46 ID:???.net
最近のフレームワークは確かにマイグレーションとかで自動的にオートインクリメントのカラムが作成されて
それを主キーとして扱いましょうねって感じの設計になってるようだけど
本来基幹系システムの開発だとIDの設計が一つのタスクになるレベルで重要なことだったりするんだよ
だからお前らのように安易に大きい型でオートインクリメントを主キーにすればいいやって考えではダメ
そんなこと基幹システムでやったら運用時とか実際の要件とかを満たせなかったりデータベースの構造が破綻したりとかしてくるね

868 :nobodyさん:2021/06/22(火) 18:24:07.59 ID:Sb0vhLl6.net
>>865

なんで会話が噛み合わないのかなぁとずっと疑問だったんだけど、それなんだよね。
やっと分かった。

多分、Laravelerって、本当に排他ロックを知らない。
楽観排他ロックも、悲観排他ロックも知らない。
トランザクションとは何なのか知らない。
複合プライマリキーは、FWで出来ない事になっているから要らないと思っている。

物を知らなすぎるんだよ、Laravelerは。

869 :nobodyさん:2021/06/22(火) 18:27:48.75 ID:???.net
複合プライマリーキー対応はgithubのissueで提案されたことはあったけど
あり得ないことに否決されてクローズしたね Laravel使いどころかコミッター達もアホかもしれない

870 :nobodyさん:2021/06/22(火) 18:27:51.55 ID:???.net
>>847
小数点でも扱う以外にそんなの使わんよw
馬鹿なの?w

871 :nobodyさん:2021/06/22(火) 18:28:15.15 ID:Sb0vhLl6.net
昨日くらいから『やっとマトモな事言う人が来たな』と思ってたけど、あなた >>867 か。

やっぱ、基幹系作った事ある人とは話が合う。
Laravelerって、それが悪いとは言わないけど、取って出しのWEBアプリ作ってるだけの人たちでしょ。
そりゃ、まともなDB設計とか考えた事あるわけないわ。

それ自体は分野の違いだから悪いとは言わないけど、
その程度の奴が『オートインクリメント君あまりの知識のなさに素人だということがバレちゃったね』
とか、寝言、言う? 普通。
頭が悪いにも程があるわ。

872 :nobodyさん:2021/06/22(火) 18:28:49.59 ID:Sb0vhLl6.net
>>870
>馬鹿なの?w

いや、お前がw

873 :nobodyさん:2021/06/22(火) 18:29:58.41 ID:Sb0vhLl6.net
>>869

そりゃ、エロなんたらの設計上、無理だったんだよ。別物になっちゃうから互換性が保てない。

874 :nobodyさん:2021/06/22(火) 18:30:31.92 ID:???.net
ID:Sb0vhLl6が一番頭が硬そうw

875 :nobodyさん:2021/06/22(火) 18:33:14.15 ID:Sb0vhLl6.net
>>870 ってさ、

もしかしてなんだけど、
もしかしてなんだけど、

numeric と decimal の違い、分かってない?

876 :nobodyさん:2021/06/22(火) 18:33:40.04 ID:Sb0vhLl6.net
バカが必死w

874nobodyさん2021/06/22(火) 18:30:31.92ID:???
ID:Sb0vhLl6が一番頭が硬そうw

877 :nobodyさん:2021/06/22(火) 18:35:51.51 ID:Sb0vhLl6.net
numericに、どうして少数がどうした関係あるんスカ?w

870nobodyさん2021/06/22(火) 18:27:51.55ID:???
小数点でも扱う以外にそんなの使わんよw
馬鹿なの?w

878 :nobodyさん:2021/06/22(火) 18:44:58.45 ID:???.net
>>869
複合主キーを採用することによりFWのメンテコストが増える側面は否定できないから、それによる恩恵を受ける人の割合が少なければ当然否決されるよ。
最近PHP8.1で導入が決まったFiberに関して、多くの人に恩恵のないものをメンテもしない人たちの投票によって採用するのはいかがなものか?ていう海外のブログ記事が話題になってたけど、それと根は同じ。
物を作るだけしか頭にないエンジニアは、「ぼくのかんがえたさいきょうのシステム」が果たしてどれだけ価値があり、それを維持するのにどれだけコストがかかるかをよく見落とすよね。それこそ頭が悪いと思うよ。

879 :nobodyさん:2021/06/22(火) 18:50:09.12 ID:???.net
>>877
黙れ黙れ黙れ黙れえええええええええええええええええええええ

880 :nobodyさん:2021/06/22(火) 18:50:35.02 ID:???.net
>>867
そういうエンタープライズ用途でLaravel使うなら、そのときはそれに見合ったアプローチにすればいいんじゃないか。
上でも書いたけど、アプリケーション中心の設計でクイックに作るならEloquent使ったほうが効率的だから自然とサロゲートキー使う。
長期的な運用を見据えた規模のあるシステムなら、データベース中心の設計になるだろうから、仮にLaravel使うにしてもクエリビルダのみにして、データベース側の設計に追従できるようにするてのが答えだと思うよ。

881 :nobodyさん:2021/06/22(火) 18:51:24.89 ID:Sb0vhLl6.net
>>878

なんか、長々と御託を並べてるけど、複合主プライマリキーは、まともなシステムを作る上では、必須なの。

メンテコスト云々とか、関係ないよ。
本当に頭悪いなぁ…。

882 :nobodyさん:2021/06/22(火) 18:53:38.34 ID:Sb0vhLl6.net
>>880
>クイックに作るならEloquent使ったほうが効率的だから自然とサロゲートキー使う。

本当に頭悪い?
だから、そのクイックに作るためのEloquentで、複合プライマリキーを普通に扱えるようにすればいいだけじゃん。
脳みその構造、どうなってんのかな?この人達って。

883 :nobodyさん:2021/06/22(火) 18:55:32.97 ID:Sb0vhLl6.net
んで? Laravelerは ほ ん と う に、

トランザクションと排他処理、

知らなかったんすか?

884 :nobodyさん:2021/06/22(火) 18:58:54.30 ID:???.net
ナチュラルキーガイジって仕事した事無さそう

885 :nobodyさん:2021/06/22(火) 18:59:01.07 ID:???.net
張り付いてるお前ら、今日平日だけど仕事してないの?

886 :nobodyさん:2021/06/22(火) 19:03:40.92 ID:Sb0vhLl6.net
いや、お前がマトモなシステム作ったこと無いだけだろw


884nobodyさん2021/06/22(火) 18:58:54.30ID:???
ナチュラルキーガイジって仕事した事無さそう

887 :nobodyさん:2021/06/22(火) 19:04:28.65 ID:Sb0vhLl6.net
お前、何時まで働いてんだよwww

885nobodyさん2021/06/22(火) 18:59:01.07ID:???
張り付いてるお前ら、今日平日だけど仕事してないの?

888 :nobodyさん:2021/06/22(火) 19:17:15.16 ID:Sb0vhLl6.net
んで? Laravelerは ほ ん と う に、

トランザクションと排他処理、

知らなかったんすか?

889 :nobodyさん:2021/06/22(火) 19:18:18.85 ID:???.net
>>885
俺はフルリモートだから家で合間合間にスレ覗きながら仕事してるって感じ。

890 :nobodyさん:2021/06/22(火) 19:21:32.11 ID:???.net
アンチオートインクリメントおじさんは、毎度お昼休みと18時過ぎたら即レスしてくるから、割と固い職場で窓際族やってると思ってる。てか、18時以降に何レスしてんのよ・・・

891 :nobodyさん:2021/06/22(火) 19:30:08.99 ID:Sb0vhLl6.net
>>890

排他ロック知らなかったバカが必死

892 :nobodyさん:2021/06/22(火) 19:34:54.97 ID:Sb0vhLl6.net
>>884
>ナチュラルキーガイジって仕事した事無さそう

排他ロック知らなかったら、マトモに仕事出来ないだろ?
頭大丈夫か?

893 :nobodyさん:2021/06/22(火) 19:36:31.57 ID:Sb0vhLl6.net
ごめーん、あのさぁ、まさかとは思うけど、

Laravelって、排他ロックできましぇーん、

なんて事、無いよね?

なんか、方法、あるよね?

それだけはせめて聞かせて?

894 :nobodyさん:2021/06/22(火) 20:16:17.56 ID:???.net
クエリビルダは、SELECT文で「悲観的ロック」を行うための機能をいくつか持っています。
SELECT文を実行する間「共有ロック」をかけたい場合は、sharedLockメソッドをクエリに指定してください。
共有ロックはトランザクションがコミットされるまで、SELECTしている行が更新されることを防ぎます。

もしくはlockForUpdateメソッドが使えます。
占有ロックをかけることで、レコードを更新したりSELECTするために他の共有ロックが行われるのを防ぎます。

895 :nobodyさん:2021/06/22(火) 20:20:43.74 ID:Sb0vhLl6.net
うん、そうだよね?

で、エロなんたらは?

896 :nobodyさん:2021/06/22(火) 20:33:42.79 ID:???.net
Eloquentも同じメソッドで出来ますね

897 :nobodyさん:2021/06/22(火) 20:34:13.30 ID:???.net
粘着質な精神病の人と関わるメリットが無い

898 :nobodyさん:2021/06/22(火) 20:41:06.22 ID:Sb0vhLl6.net
>>896

へー、なら、こんなんあるわけないじゃんw

>>826
>826nobodyさん2021/06/22(火) 09:55:34.70ID:???>>829
>シークエンスでオートなnumberingをするようなDBのデファインを使うのは優れた方法の1つ
>重複しないことをDBMSが保証してくれる上にパフォーマンスもよい
>よく自動採番の欠点として例示されるのがマスタ画面で新規登録する際
>登録時に採番した番号を表示できない、表示したらキャンセルした場合に欠番が出るなんて言うけど
>エントリー順にnumberingする以上、たとえ手作業でやっても避けられない問題だ

899 :nobodyさん:2021/06/22(火) 20:41:54.37 ID:???.net
SIerからwebの会社に転職したてのころ、トランザクションかけてなかったり排他制御全く考えてないコード見て絶望した思い出。

900 :nobodyさん:2021/06/22(火) 20:42:26.23 ID:???.net
ID:Sb0vhLl6さんにみんな頑張って反論を試みるも技術力がなさ過ぎて
技術的な反論を出来ていないのが笑えるw

901 :nobodyさん:2021/06/22(火) 20:43:57.90 ID:Sb0vhLl6.net
というか、トランザクションと排他処理の話が出た途端、
あなたたち全員が挙動不審になったの、
ちょーうけるんんですけどw

本当に知らなかったんすねw
そんなんでよく今まで知ったかぶってましたねwww

902 :nobodyさん:2021/06/22(火) 20:46:38.79 ID:???.net
そりゃ今までLaravel様に全部お任せしていた連中だからなw
トランザクションも排他処理も意識したことがないというのが実情だろうなw

903 :nobodyさん:2021/06/22(火) 20:49:15.94 ID:???.net
Laravel開発者「排他したいときはメソッド用意してるから使ってくれよ」
お前ら「えっ?Laravelの内部で勝手にやってくれるんじゃないんですか?」

多分こうだろwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

904 :nobodyさん:2021/06/22(火) 20:59:39.76 ID:???.net
お前らトランザクションや排他処理も知らないのにbigintでオートインクリメント(笑)とか言って勝ち誇ってたのかよ・・・・

905 :nobodyさん:2021/06/22(火) 21:02:47.04 ID:???.net
>>901
DBの話はDBのスレでやってくれないかな?

906 :nobodyさん:2021/06/22(火) 21:07:44.07 ID:???.net
>>905
業務アプリ作るうえでトランザクションや排他は重要な話だろ
自分しか使わない簡単なTodoアプリとかだったらトランザクションや排他なくても
動作するけど業務システムとかでは必須の話だよ
まあ敗北が確定してしまって反論もできないから必死に追い出そうとしてるんだろうけどw

907 :nobodyさん:2021/06/22(火) 21:11:30.31 ID:???.net
せっかくNGID登録してるんだから、アンチオートインクリメントおじさんは忘れずにIDつけてくれ。それがこのスレ住民のささやかな願いだ。

908 :nobodyさん:2021/06/22(火) 21:18:50.83 ID:???.net
自分より技術力高い人がきたらNGID登録はひどすぎでは?

909 :nobodyさん:2021/06/22(火) 21:22:24.11 ID:???.net
技術力の高低の問題ではなく、会話ができないことが問題。何度か会話を試みたけど、傾聴力ゼロなので見放したのが現在。

910 :nobodyさん:2021/06/22(火) 21:25:22.43 ID:???.net
.envファイルをコミットするかどうかでもめていた時に比べると健全な気がする

911 :nobodyさん:2021/06/22(火) 21:53:22.32 ID:???.net
まず覚えなきゃいけない言語は日本語じゃないだろうか

912 :nobodyさん:2021/06/22(火) 22:40:54.65 ID:???.net
「俺スゲー」目的の言動しかできない人は大体自己愛性人格障害者。
そんなの相手するだけ無駄。他人は「俺スゲー」のための道具ではない

913 :nobodyさん:2021/06/22(火) 23:00:14.63 ID:???.net
config/app.phpの内容が.envで上書きされてしまうのですが
一部の値のみconfig/app.phpから取る方法を教えてください

914 :nobodyさん:2021/06/23(水) 00:07:18.79 ID:???.net
1つ疑問なんだがロックしておけばなぜインクリメントした数が元に戻ると思ってるんだ?

915 :nobodyさん:2021/06/23(水) 00:11:46.43 ID:???.net
もしかしてだけど「マスタ画面で新規登録」を平行で稼働させないって言ってるの?
「別のユーザーがマスタ画面を利用中なので終わるまでお待ちください」って表示させるつもりなの?

916 :nobodyさん:2021/06/23(水) 04:57:45.38 ID:???.net
>>908
どこがレベル高いんだ?w
かなりレベルが低いとしか言えないのだが

917 :nobodyさん:2021/06/23(水) 09:59:51.02 ID:+cgzqi1Q.net
>>914 : 1つ疑問なんだがロックしておけばなぜインクリメントした数が元に戻ると思ってるんだ?
>>915 : もしかしてだけど「マスタ画面で新規登録」を平行で稼働させないって言ってるの?「別のユーザーがマスタ画面を利用中なので終わるまでお待ちください」って表示させるつもりなの?


こいつら、マジで言ってるのかな? 凄いな
Laravelerって本当に、マトモな連番発行の仕方を知らなかったんだ。

あのさ、『トランザクションと排他ロック』と言われて意味が分からないってのは、ITエンジニアとしての知識・知能欠如相当ヤバいんだよ?

「別のユーザーがマスタ画面を利用中なので終わるまでお待ちください」????

頭おかしいんじゃないの? Laravelerってこの程度のバカしか居ないって事が判明してしまった。

918 :nobodyさん:2021/06/23(水) 10:04:11.36 ID:+cgzqi1Q.net
>>916
>かなりレベルが低いとしか言えないのだが

虚勢を張るのは大概にしといた方がいい。
ここ数十レスのやり取りで、あなたたちLaravelerのレベルの低さが十分過ぎる程露呈してしまったんだから。
Laravelerはauto_incrementでしか重複しないIDの生成の仕方を知らないって事がね。

だから、あなたたちがこれまで作ってきたシステムには、決して少なくない数のシステムに
AUTO INCREMENT BOMB脆弱性が存在する可能性が存在するという事が確定してしまった。

919 :nobodyさん:2021/06/23(水) 10:07:54.54 ID:+cgzqi1Q.net
>>912
>「俺スゲー」目的の言動しかできない人

何いってんのかな? この低脳。
俺はIT技術者としてアタリマエのことしか言ってないよ。

で、最初、あなたたちLaravelerは自分たちの無知に全く気づかずに俺の方が無知だとバカみたいな事を言っていて、
いざ、実態はあなた達のほうが無知極まりないという事が分かった途端、
今度は「俺スゲー目的だ」と言い出す。

あなたたちってさ、『恥』って概念、無いの?
小人って、凄いよね。

920 :nobodyさん:2021/06/23(水) 10:10:15.07 ID:+cgzqi1Q.net
>>909
>傾聴力ゼロなので見放したのが現在。

傾聴力?w

人の話を全く聞かなかったのは、あなた達でしょw

というか、途切れない連番IDの作り方くらい、学習しなさいよ。

921 :nobodyさん:2021/06/23(水) 10:18:05.33 ID:???.net
>>917
おまえはオートインクリメントしたシーケンスを巻き戻せるって言ってるんだぞ?自分が何を言ってるのかわかってる?ちゃんと元コメのバカなコメみてる?

922 :nobodyさん:2021/06/23(水) 10:20:33.10 ID:???.net
>>918
論点ズレてるぞ
平行実行可能なシステムで連番を付与するとき、先行して採番したユーザーがキャンセルしても歯抜けにならないかどうかの話だぞ

923 :nobodyさん:2021/06/23(水) 10:22:06.24 ID:+cgzqi1Q.net
>>915
>「別のユーザーがマスタ画面を利用中なので終わるまでお待ちください」って表示させるつもりなの?

俺、『楽観排他』と『悲観排他』って、書いたよね?
マジで意味分からなかったんだ。凄いな。それでよく今までシステム作って来たね。
あなたの作ってきたシステムって、欠陥品だらけだったって事じゃん。


さて、問題です。
それを表示させないためには、どっちの排他処理が必要でしょうか?w

本当に頭が悪かったんだね、Laravelerって。

924 :nobodyさん:2021/06/23(水) 10:23:17.27 ID:+cgzqi1Q.net
>>921
>「別のユーザーがマスタ画面を利用中なので終わるまでお待ちください」って表示させるつもりなの?

どこで言ってる? 幻影でも見えるのかな? 幻聴でも聞こえるのかな?

ほんとうに、あたまが、悪いんだねw

そんな事、一言も言ってないよ。よく見返してみな?

925 :nobodyさん:2021/06/23(水) 10:24:10.59 ID:+cgzqi1Q.net
なんか、クリップボードのコピーが違ってたから書き直し

>>921
>おまえはオートインクリメントしたシーケンスを巻き戻せるって言ってるんだぞ?

どこで言ってる? 幻影でも見えるのかな? 幻聴でも聞こえるのかな?

ほんとうに、あたまが、悪いんだねw

そんな事、一言も言ってないよ。よく見返してみな?

926 :nobodyさん:2021/06/23(水) 10:28:03.77 ID:+cgzqi1Q.net
なんで会話が噛み合わないのか凄い不思議だったけど、ここ数重レスで突然分かってきた。

Laravelerって、日本語が読めないんだ。

だから、俺が>>862
>おまえさぁ、『エントリー順にnumberingする以上、たとえ手作業でやっても避けられない問題だ』って、マジで言ってる?
>だーめだこりゃ。
>お前さ、トランザクションと排他ロック知らないの?
>避けられないわけねーだろ、素人かよ?

と言ったのを、バカで低脳なLaravelerは

『オートインクリメントしたシーケンスを巻き戻せるって言ってる』

と認識してしまうんだ。

なわけねぇだろ、脳みそ腐ってんのか?

927 :nobodyさん:2021/06/23(水) 10:30:01.85 ID:+cgzqi1Q.net
>>922
>平行実行可能なシステムで連番を付与するとき、先行して採番したユーザーがキャンセルしても歯抜けにならないかどうかの話だぞ

そうだよ? あたりまえじゃん。

で、Laravelerは、歯抜けにしない方法が“まーったく”分からないんだw

すげぇな。
今までそんな腐れシステムを量産してきていたのか。

ある意味、感動する。

928 :nobodyさん:2021/06/23(水) 10:31:09.37 ID:+cgzqi1Q.net
もう、Laravelerって、

AIB: AUTO INCREMENT BOMB脆弱性、埋め込みまくりじゃないっすかw

929 :nobodyさん:2021/06/23(水) 10:32:12.95 ID:+cgzqi1Q.net
>>922
>論点ズレてるぞ

論点は全くズレてない。認識がズレてるのが、お ま え。

930 :nobodyさん:2021/06/23(水) 10:37:20.56 ID:???.net
ユーザーAに採番1を付与
ユーザーBに採番2を付与
ユーザーAがキャンセル

ユーザーAは存在しない
ユーザーBは採番2を取得

これどうやって解決すんの?問題を理解できてなかったのか?

931 :nobodyさん:2021/06/23(水) 10:54:26.02 ID:+cgzqi1Q.net
>>930

あのさぁ…。

あなた、IQ32くらいしか無いでしょ。

> 問題を理解できてなかったのか?

本物のバカなのかな?



相手するのも馬鹿らしいんだけどさ、ちょっと、ここに、所要時間書いてみ?


>ユーザーAに採番1を付与
>ユーザーBに採番2を付与
>ユーザーAがキャンセル


あなたさ、自分がどれほど頭が悪いことを自己主張しているのか、
本当に考えた方が良い。

もう一回行っとくけど、欠番しないシリアルを作るのは、何の問題もなく、可能です。
auto_incrementみたいな下等な実装に頼らなければね。
当たり前の事でしょ。

932 :nobodyさん:2021/06/23(水) 10:56:02.79 ID:+cgzqi1Q.net
Laravelerの知的レベルの低さに、本当に脱力しています。

933 :nobodyさん:2021/06/23(水) 10:56:39.77 ID:???.net
どうせこの低レベルのゴミはJAVAぽいなw
それもオラクルwとかしか使ったことが無いカスで設計したこと無さそうw
こういう奴は一人でモノが作れない

934 :nobodyさん:2021/06/23(水) 11:03:12.19 ID:+cgzqi1Q.net
多分さ、このままLaravelが普及すると、
ジャニーズの嵐みたいな感じののコンサートで、
チケット重複発行とかやらかすんだよな。

チケット番号auto_incrementって訳にはいかないから、
自前で実装するじゃん。
でも、排他処理の事、全く知らないじゃん。
当然、重複するじゃん。

もう、地獄絵図しか見えない。

935 :nobodyさん:2021/06/23(水) 11:14:46.23 ID:+cgzqi1Q.net
で? >>930 は、

本当に、重複しない連番、生成出来ないの?

あなた、そんなんでよく『システム作ってる』って言えますね。

936 :nobodyさん:2021/06/23(水) 11:15:53.47 ID:+cgzqi1Q.net
で? >>930 は、

本当に、欠番しない連番、生成出来ないの?

こっちが正確な表現かな?

あなた、そんなんでよく『システム作ってる』って言えますね。

937 :nobodyさん:2021/06/23(水) 11:16:01.20 ID:???.net
>>931
問題を正しく理解できてなかったんだね
ユーザーCに採番1を付与なんていう間抜けな提案でもしてみるか?
それとも採番確定後に再採番でもしてみるか?
シーケンシャルなnumberingにするには確定後に採番するしか問題は解決しないんだよ
他の方法があったら提案してみろよ

ちなみにこの件は自動採番に依存してる部分はないぞ

938 :nobodyさん:2021/06/23(水) 11:16:02.87 ID:???.net
文字ベースで書いてるからややこしいんだよ
実際のコードで見たい

939 :nobodyさん:2021/06/23(水) 11:17:18.37 ID:???.net
この問題の本質は
1,2,3,4,5と番号が並んでいます
3番のユーザーが削除されました
1,2,4,5という並びになりました

番号が順番にならんでないじゃないか!けしからん!!

という話です

940 :nobodyさん:2021/06/23(水) 11:25:19.69 ID:???.net
自己愛性人格障害者の言動の特徴↓
自分を持ち上げる(俺スゲー)
他人をけなす(俺スゲー)

941 :nobodyさん:2021/06/23(水) 11:30:34.48 ID:+cgzqi1Q.net
何言ってるのかわからんな、このバカ >>937

何度も言うけど、
欠番しない連番を付与するのは、
当たり前の事として、

可能です。

方法は、トランザクションと排他処理を正しく行うだけの事です。

あなた、本物の、バカでしょ?

942 :nobodyさん:2021/06/23(水) 11:34:11.77 ID:???.net
トランザクションと排他処理するってことは後続ユーザーが番号確定できないよ
あほじゃないかな?

943 :nobodyさん:2021/06/23(水) 11:34:32.44 ID:+cgzqi1Q.net
>>937
>シーケンシャルなnumberingにするには確定後に採番するしか問題は解決しないんだよ
>他の方法があったら提案してみろよ

ごめーん、本当に何言ってるのかわからないんだけど、

要約すると、

あなたには、『欠番しない連番を生成する能力が有りません』って、力説してるのね?

それでいいのね?

ちょっと、なんでもいいからあなたのID教えてくれる?
その程度の能力しか無いバカのIDが知りたい。

本当に下等過ぎるんだって事、自覚したほうが良いよ? あなた。

944 :nobodyさん:2021/06/23(水) 11:35:51.91 ID:+cgzqi1Q.net
>>942
>トランザクションと排他処理するってことは後続ユーザーが番号確定できないよ
>あほじゃないかな?

ここまでバカなのか…。

さっきも書いたんだけどさ、

『楽観排他』と『悲観排他』の違いくらい、ぐぐりなよ。

チンパンジーなの? あなた

945 :nobodyさん:2021/06/23(水) 11:36:56.49 ID:???.net
ユーザーAとユーザーBは採番を受けたあとに確定とキャンセルを選択する
ユーザーAは1番、ユーザーBは2番

この状態からユーザーBをどうやって1番に変更するんだ?
すでに画面には2番と表示されているから動的に1番してはいけない

ロックやトランザクションの問題じゃないんだけどどこでそういう理解になったの?

946 :nobodyさん:2021/06/23(水) 11:37:29.32 ID:+cgzqi1Q.net
>>942
>あほじゃないかな?

うん、あなたが、『あほ』

ぐぐる事も出来ない。

というか、流石に2021年にもなって、『楽観排他』と『悲観排他』を知らないバカが居るとは思ってもみなかった。

947 :nobodyさん:2021/06/23(水) 11:38:26.23 ID:+cgzqi1Q.net
>>945
>ロックやトランザクションの問題じゃないんだけどどこでそういう理解になったの?


だから、『楽観排他』と『悲観排他』について、調べてからしゃべりなよ、チンパンジー君。

948 :nobodyさん:2021/06/23(水) 11:38:56.42 ID:???.net
>>944
まず話を進めようか
ユーザーAとユーザーBの画面にはそれぞれユーザーA=1、ユーザーB=2という数字が表示されてる
ここまでは理解できてるか?

949 :nobodyさん:2021/06/23(水) 11:39:59.67 ID:???.net
結局、問題の前提を見落としてるだけだったな
もう言い訳は済んだか?

950 :nobodyさん:2021/06/23(水) 11:40:43.02 ID:+cgzqi1Q.net
>>937, 942,945

マジで、お前が、程度が低すぎるんだって事くらい、いい加減に理解しろ、サル。

951 :nobodyさん:2021/06/23(水) 11:41:24.58 ID:???.net
リソースが競合してるわけでもないのにロックの話をするほうがおかしい

952 :nobodyさん:2021/06/23(水) 11:41:53.82 ID:+cgzqi1Q.net
どこの正解に、新規登録に於いて、最初に裁判するバカシステムがあるんだよ。
こいつ、マジでチンパンジーだろ。


948nobodyさん2021/06/23(水) 11:38:56.42ID:???
>>944
まず話を進めようか
ユーザーAとユーザーBの画面にはそれぞれユーザーA=1、ユーザーB=2という数字が表示されてる
ここまでは理解できてるか?

953 :nobodyさん:2021/06/23(水) 11:42:41.43 ID:+cgzqi1Q.net
訂正。

どこの世界に、新規登録に於いて、最初に裁判するバカシステムがあるんだよ。
こいつ、マジでチンパンジーだろ。
Larabelerって、本当にこんなバカしか居ないんだな。


948nobodyさん2021/06/23(水) 11:38:56.42ID:???
>>944
まず話を進めようか
ユーザーAとユーザーBの画面にはそれぞれユーザーA=1、ユーザーB=2という数字が表示されてる

954 :nobodyさん:2021/06/23(水) 11:43:48.22 ID:+cgzqi1Q.net
更に訂正。もう、頭悪すぎて、マトモに相手するのすらめんどくさい。

どこの世界に、新規登録に於いて、最初に採番するバカシステムがあるんだよ。
こいつ、マジでチンパンジーだろ。
Larabelerって、本当にこんなバカしか居ないんだな。


948nobodyさん2021/06/23(水) 11:38:56.42ID:???
>>944
まず話を進めようか
ユーザーAとユーザーBの画面にはそれぞれユーザーA=1、ユーザーB=2という数字が表示されてる

955 :nobodyさん:2021/06/23(水) 11:44:28.36 ID:???.net
>>953
思い込みで仕様を勘違いするのは初心者にありがちなミスだ
精進しろよ

956 :nobodyさん:2021/06/23(水) 11:44:30.77 ID:+cgzqi1Q.net
>ユーザーAとユーザーBの画面にはそれぞれユーザーA=1、ユーザーB=2という数字が表示されてる

新規登録で、そんなシステムあるわけねーだろ、ヴァカ!

957 :nobodyさん:2021/06/23(水) 11:44:58.08 ID:???.net
>>956
バカっていうほうがバカなんです〜、ばーかばーか

958 :nobodyさん:2021/06/23(水) 11:45:06.08 ID:+cgzqi1Q.net
なんすか? このヴァカ。
Laravelerって、こんなレベルなんすね。


955nobodyさん2021/06/23(水) 11:44:28.36ID:???
>>953
思い込みで仕様を勘違いするのは初心者にありがちなミスだ
精進しろよ

959 :nobodyさん:2021/06/23(水) 11:46:24.92 ID:+cgzqi1Q.net
ぷっ



957nobodyさん2021/06/23(水) 11:44:58.08ID:???
>>956
バカっていうほうがバカなんです〜、ばーかばーか

960 :nobodyさん:2021/06/23(水) 11:49:08.25 ID:+cgzqi1Q.net
>>937, 942,945 って、本当にIQが32くらいしか無いんだな。

これがLaravelerの実力か。

Laravelerは、バカしか居ない、という結論が出てしまった。

961 :nobodyさん:2021/06/23(水) 11:53:15.90 ID:+cgzqi1Q.net
>>938
>文字ベースで書いてるからややこしいんだよ
>実際のコードで見たい

んー、あのさ、
マジで、『楽観排他』と『悲観排他』について勉強しなよ。
コードが見たい?
こんなん、システム開発者としては、常識っていうか基本のキなの。
この程度の事しらないでシステム作るからダブルブッキングしてしまいましたーみたいな
下等な事故が起きるんだよ。
マジで、勉強しなさい。

962 :nobodyさん:2021/06/23(水) 11:54:18.82 ID:???.net
新規登録画面(確定画面ではなく入力前)でID表示を強制してくる事業者は少なくない
そして連番を求めてくる
たった1つの優れたやり方は「現在、他のユーザーが登録中です」と表示することなんだ
そしてアプリ的な排他ロックのキーを外し忘れる不具合(しばしばメンテで発生する)が発生して
保守運用チームが気を聞かせて「1人しか同時に登録できなかったので何人でも同時に登録できるようにしておきました」
とドヤ顔で客に報告する
便利だわー、さすがだわーと褒められますますドヤ顔で真っ赤になる
その数時間後に客から「IDが飛ぶんです。不具合です。すぐ直してください」と緊急メンテになり青くなる

それがおまえらが選んだ職業なんだよ

963 :nobodyさん:2021/06/23(水) 11:57:30.14 ID:???.net
おまえらにはまだDBの気持ちがわかっていない
オレの人生はロックなんだよ

964 :nobodyさん:2021/06/23(水) 11:59:08.82 ID:+cgzqi1Q.net
>>962
>新規登録画面(確定画面ではなく入力前)でID表示を強制してくる事業者は少なくない

ねーよ、ヴァカ
何長文書いて事実捏造してんだ、引きこもり!

965 :nobodyさん:2021/06/23(水) 12:00:23.53 ID:+cgzqi1Q.net
>>962
>そしてアプリ的な排他ロックのキーを外し忘れる

排他ロックに“キー”なんてねーよ!
妄想で語るな、キチガイ!

966 :nobodyさん:2021/06/23(水) 12:03:11.76 ID:+cgzqi1Q.net
すげぇな、よくここまで妄想で語れるな…。
マジで脳みそ腐ってるんだろうな…。



962nobodyさん2021/06/23(水) 11:54:18.82ID:???>>964>>965
新規登録画面(確定画面ではなく入力前)でID表示を強制してくる事業者は少なくない
そして連番を求めてくる
たった1つの優れたやり方は「現在、他のユーザーが登録中です」と表示することなんだ
そしてアプリ的な排他ロックのキーを外し忘れる不具合(しばしばメンテで発生する)が発生して
保守運用チームが気を聞かせて「1人しか同時に登録できなかったので何人でも同時に登録できるようにしておきました」
とドヤ顔で客に報告する
便利だわー、さすがだわーと褒められますますドヤ顔で真っ赤になる
その数時間後に客から「IDが飛ぶんです。不具合です。すぐ直してください」と緊急メンテになり青くなる

967 :nobodyさん:2021/06/23(水) 12:08:23.12 ID:???.net
>>965
また説明を見落としてるじゃん
成長ないな

サーバのディレクトリに「lock」っていうディレクトリを作っておくんだよ
ディレクトリ作成に成功したらロック取得、失敗したら他のユーザーがロック中なので退場

また賢くなったな。精進しろよ

968 :nobodyさん:2021/06/23(水) 12:12:16.67 ID:+cgzqi1Q.net
>>967

lockディレクトリ!

あまりにも下等な表現が出てきてビックリっす。
これがLaravelerなんすねw ちょーウケるんですけどw

969 :nobodyさん:2021/06/23(水) 12:13:22.05 ID:+cgzqi1Q.net
本当に、頭大丈夫なんすか? Laravel使いの人達ってw

970 :nobodyさん:2021/06/23(水) 12:23:48.83 ID:???.net
>>967
だめ実装を久しぶりに見たw

971 :nobodyさん:2021/06/23(水) 12:24:31.97 ID:???.net
>>934
コロナワクチンの予約システムも予約番号の重複とかやらかしてましたね

972 :nobodyさん:2021/06/23(水) 12:26:36.04 ID:???.net
自動採番した番号をロックしたとする
ユーザーAは新規登録中にお昼ご飯にいきました
ユーザーBは「ユーザーAがロックなので登録できません」という表示を見ることになる
「ふーん、あいつロックなんだ・・・」
ユーザーBは複雑な気分で会議に行ってしまいました

ユーザーAは昼食から戻ってきましたがどうしてもわからない項目があります
「Bさんに聞かないとわからないな」
登録画面を最小化して別の仕事をすることにしました

会議室の合間にユーザーBは新規登録が出来ないか何度も画面を出しますがいずれにしても
「ユーザーAがロックなので登録できません」
の表示が変わりません
ユーザーBは新規登録が出来るまで席に戻る必要はないなとさらに別の仕事に行ってしまいました

これがデッドロックという現象です

うかつにロックを使うとデッドロックになってしまうというお話でした

973 :nobodyさん:2021/06/23(水) 12:29:00.57 ID:???.net
今日もアンチオートインクリメントおじさんが荒ぶってるのか。どっか他のスレで引き取って欲しい。こちとらLaravelの情報交換がしたいだけなんだがなぁ。

974 :nobodyさん:2021/06/23(水) 12:29:51.24 ID:???.net
>>967
ディレクトリ作成成功後にサーバ再起動とか発生したらアウトでは?
再起動したらクリアされるRAM領域で行っているなら大丈夫だけど
HDD上だとディレクトリ残りっぱなしになってデッドロックになるぞ

まあそもそも組み込みの世界じゃあるまいし排他をディレクトリあるなしでやるなよ
DB等の操作は楽観排他や悲観排他使えよ

975 :nobodyさん:2021/06/23(水) 12:34:12.03 ID:???.net
>>967
ID:+cgzqi1Qに対して反論するならもっとまともな実装で反論しろよwwwww
さすがにその実装はやばいw

976 :nobodyさん:2021/06/23(水) 12:39:23.06 ID:???.net
Rubyガイジより酷いガイジ湧いてて草

977 :nobodyさん:2021/06/23(水) 12:44:02.98 ID:???.net
>>934
郵便局のお問い合わせ番号は端末ごとに1000件程度プリ発行しておいてそこから採番する

978 :nobodyさん:2021/06/23(水) 12:44:18.49 ID:???.net
>>934
仕様の確認
・チケットの席は有限
・追加販売はあるがまとめて数千席単位でせいぜい1度か2度の追加
・席はチケット販売会社ごとに割り当てがある
・チケット番号は販売会社ごとに独立している
・席番号は販売会社が違っても会場で決められた番号を使う
・チケット1枚につき1〜5席まで購入できる
・チケット番号は必ずしも連番で発行する必要はない
・チケット番号は十分に余裕のある桁数であるとする

購入の流れ
1.ユーザーは自宅PC、スマホ、もしくは専用端末で購買操作を行う
2.欲しい席を入力する(席番号にロックをかける)
3.欲しい席を全て入力し終わったら支払い方法、クレジットカード番号等を入力する
4.オーソリが通らないなど支払い不可であれば席番号ロックを解除して購入フローを終わる
5.支払いフローが終了すればチケットを発行する。このときチケット番号は端末ごとにプリ発行されている中から取得する
6.プリ発行されている番号が足りなくなればセンターに問い合わせて追加発行をしてもらう

979 :nobodyさん:2021/06/23(水) 12:55:36.61 ID:???.net
>>974
逆にいうと再起動に強いlockだと言える

980 :nobodyさん:2021/06/23(水) 14:38:36.64 ID:+cgzqi1Q.net
なんか、本当に頭痛くなってる。

まさか、2021年にもなってロックファイル人力生成して排他する実装を
『力説』するほどの低知能が存在するとは、流石に夢にも思ってなかった。

>>973とか、『情報交換がしたい』とか言ってるけど、
こんなバカ排他情報交換して何するつもりなんだろ?
もはやそれ、テロに近いだろ。

981 :nobodyさん:2021/06/23(水) 14:43:13.32 ID:+cgzqi1Q.net
Laravel使ってる奴らは排他処理知らないのでダブルブッキング起こしかねませんよ?

ってのは、周知していったほうが良さそうだな、社会全体のために。

982 :nobodyさん:2021/06/23(水) 14:47:06.30 ID:???.net
でキチガイはサロゲートキーを一切使わない化石何だなw

983 :nobodyさん:2021/06/23(水) 14:53:20.76 ID:???.net
平日にこんなスレに長時間張り付いてる人が一番怖い

984 :nobodyさん:2021/06/23(水) 14:56:22.00 ID:???.net
>>967は明らかにネタだろw

985 :nobodyさん:2021/06/23(水) 15:19:17.00 ID:???.net
ネタって事にしたいならそれでいいけど、

で? じゃあ実際に欠番せずダブルブッキングしないIDをどうやって発行するか、

あなた >>984 は当然言えるんだよね?

プリーズ。

986 :nobodyさん:2021/06/23(水) 15:59:53.59 ID:???.net
ほら、次スレだぞ、存分にやりあえお前ら

【PHP】Laravel【フレームワーク】 Part.7
https://mevius.5ch.net/test/read.cgi/tech/1624431485

987 :nobodyさん:2021/06/23(水) 16:00:01.25 ID:???.net
ほら、次スレだぞ、存分にやりあえお前ら

【PHP】Laravel【フレームワーク】 Part.7
https://mevius.5ch.net/test/read.cgi/tech/1624431485

988 :nobodyさん:2021/06/23(水) 16:00:15.82 ID:???.net
ほら、次スレだぞ、存分にやりあえお前ら

【PHP】Laravel【フレームワーク】 Part.7
https://mevius.5ch.net/test/read.cgi/tech/1624431485

989 :nobodyさん:2021/06/23(水) 16:01:37.76 ID:???.net
平日の昼間からID真っ赤にしてるニート臭いの居るけど、それを相手にしてる奴もニートなんかな

990 :nobodyさん:2021/06/23(水) 16:08:17.92 ID:???.net
技術的な話題が来るとお前らってすぐに人格攻撃するよな
なんで「わからないので教えてください。」って言えないの?

991 :nobodyさん:2021/06/23(水) 16:10:02.20 ID:???.net
俺たちは零細勤務だから仕方ない
それができるなら零細には居ないし

992 :nobodyさん:2021/06/23(水) 16:11:46.09 ID:???.net
DBの排他制御の為にlockファイル作る人はSQLiteでも使ってるのかな?

993 :nobodyさん:2021/06/23(水) 16:14:15.25 ID:???.net
auto_incrementの主キーに型が可変だからってdecimal使うやつがいるのは驚いたよな
auto_incrementにdecimal使えるのって何のRDBなんだろ?
RDBから自作でもしてんのかな

994 :nobodyさん:2021/06/23(水) 16:16:33.65 ID:???.net
>>990
排他制御に関して言えば技術的にかなり困難な問題だから聞ける人が居ない
まず会社では俺が一番の先輩だし

995 :nobodyさん:2021/06/23(水) 16:22:15.16 ID:???.net
>>985
Laravelでは欠番しないような処理を書くことが公式で非推奨扱いだぞ
一般的にはとても信じられないことだけど公式で非推奨っていっちゃうあたり
Laravelがおかしいことがわかる

996 :nobodyさん:2021/06/23(水) 16:26:36.13 ID:???.net
>>985
主キーの欠番によって挙がる問題を教えて
そもそも主キーに欠番が出るだけで不都合起きる実装の問題では?

997 :nobodyさん:2021/06/23(水) 16:31:04.52 ID:???.net
プライマリキー欠番で不具合は草
どう考えても実装か設計に問題があるだろ

998 :nobodyさん:2021/06/23(水) 16:32:39.63 ID:???.net
>>995
お前いつもつまらないので、そろそろこのスレから居なくなってどうぞ。アンチオートインクリメントおじさんと同レベルに無価値。

999 :nobodyさん:2021/06/23(水) 16:36:57.00 ID:???.net
すいません教えてください
Laravelを使ってauto_incrementに欠番を出さないようにするにはどうしたらできますか?
例えばユーザーテーブルに新しく挿入してidが100のユーザーが作れますがそのユーザーを消してもう一度挿入するとidが100じゃなくて101になってしまって困ってます

1000 :nobodyさん:2021/06/23(水) 16:37:29.65 ID:???.net
続きは以下で
【PHP】Laravel【フレームワーク】 Part.7
https://mevius.5ch.net/test/read.cgi/tech/1624431485/

1001 :2ch.net投稿限界:Over 1000 Thread
2ch.netからのレス数が1000に到達しました。

総レス数 1001
259 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★