【PHP】Laravel【フレームワーク】 Part.6
レス数が1000を超えています。これ以上書き込みはできません。
2021年6月1日発売
PHPフレームワーク Laravel Webアプリケーション開発 バージョン8.x対応 バージョン8から勉強したら、数年はなんとかなる?
それとも9や10でガラッと変わったりする? >>5
相変わらず気持ち悪いやつだな
たまには部屋から出て太陽の光でも見てこい >>7
そうなのか・・・
じゃ、>>2も買わないほうが良いのか >>7
それ、どこ情報?前も似たようなこと言ってた人居るけど、同一人物? >>9
今週Taylor兄貴が海外で放送されているIT関連の専門チャンネルに出演したんだけど
そこでLaravel9について質問された際に答えた内容がどう考えても多少の変更ではないレベルだったんだよ・・・ あれはLaravel9ではなくLaravelの将来について質問された時の話だから
Laravel9ではまだそこまで影響でないと思うけど・・・ ちなみにそこで発言した内容は現在のLaravelはMVCだけど
それをやめてMVVMパターンにしたいって話ね お前ら英語エアプか?
私としてはMVVMを採用したいけど変更が多すぎるからMVCのままでしょうね HAHAHAHA
って言ってただろ MVVMになることはない その話が本当か嘘かは置いておいてMVVMってMVCに比べるとどういうメリットとデメリットがあるんですか? コンセプトが変わるような物になるなら別のフレームワークにするような >>10
そういうことか。ありがとう。
>>12
それだと大きな変更にはならんよね。MVVMパターンてLivewire使ったら自然とそうなるし。JetstreamなんてまさにMVVMパターンの典型。controller要らなくなるなーてのを実感してる。 MVCにすっかり慣れちゃったからLivewire使いにくいわ つまり、これから勉強するなら8でも良いってことですか? じゃ、>>2買っても良いのかなぁ
誰かのレビュー待って検討するか >>20
>>2は大抵の人にとってはゴミだからやめろ。 9向けのプルリクかなりの数承認されてるから8と9は別物と考えていいよ ブルリクの数だけでそんなこと言えるなら、8.0と8.43は別物!て言えちゃうんだけど大丈夫か? >>25
オウム返しじゃなくて、具体的な反論を頼む。 まーたcomposerがエラー吐きまくって開発進まなくなった
composerの時代になってからこれが起きまくって困る、なんでこんなクソシステムが支持されてるの?
今vendor消してやり直したら復活したけど時間かかってしゃーないわ全く >>27
そんなのなったこと無いがどうやればそうなるの? まーたphpがエラー吐きまくって開発進まなくなった
phpの時代になってからこれが起きまくって困る、なんでこんなクソ言語が支持されてるの?
よく分からんから全部消して最初から書き直したら解決したけど時間かかってしゃーないわ全く >>28
マジかよ
Windows10上のDocker環境で普通に開発してるだけなんだがよくなるぞ
ならない環境教えて欲しい >>31
エラーの具体的なメッセージ書かないと分からんやろ。 いつも先行販売している本屋さんがあるので明日売ってたら買ってくるね ただのドキュメントに書いてあることをコピペしてるだけみたいな本だったら買うの辞めるけど >>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 var-dump-serverが既にあるぞって言ってるじゃん >>33
ありがとうございます!
初心者向けかそれ以外かだけでもレビューください >>36
既にファイルあるぞって警告出てるだろ
var-dump-server消せよ >>35
昔よくあった「PHPで掲示板を作る本」的な、
Webアプリ作りながら進めるような内容かも教えて下さい。
公式のドキュメントは機能紹介が中心で、とっつきにくかったので。 >>31
何が起きてるか、どんなエラーなのか書かないとそもそも対策すら立てられない気がするが
こちらはhomesteadで開発してるけど問題起きたことは無いなぁ >>42
ほんとですね・・・
Laravelのドキュメントも見てるんですが、よくわからないんですよねぇ
最初からDockerがどうのって時点で詰みます。
Composerはわかるものの、専門用語が多くてパニックになってます。
だから、もう少し初心者向けなら良かったんですが
目次を見る限り、ドキュメントと変わらないっぽいですね >>36
まんま>>29と一緒だろ
エラーメッセージくらい読めば大抵のこと解決するのに >>44
じゃあエラーださなければいいのでは
なんでこんなスレまで来て粘着してるのか コテハンどころかIDすら出てない匿名なのに粘着とは そもそもcomposerがエラー吐きまくるとか言うけど
初回以外に構成が変わったりしない限りそう叩くものじゃなくね?
composer dump-autoload
は叩くことがあるかもしれないが 何かを追加する時に叩くだろ
laravel/uiとか
1つの開発に数回ぐらい感覚的にある >>37
>>39
そりゃそうなんだけどなんでそんなことになるんだよ
エラー出たら都度手動で削除しながら使うツールがあるかいや Laravel勉強したとして会社の仕事でLaravel使うの?
それともただの趣味? 大抵は会社で使うから覚える感じじゃないのかなぁ?
趣味とかwebの学習でと言う人はPHPにあんまり行ってない気がする
仕事はPHPが一番ありそうだけど素人はPythonとかに何故か行くよね >>55
求人数と年収がjavaに負けているということは
javaに負けているという可能性があるな >>49
でもそれがPHPの世界のスタンダードだよ
それが受け入れられないんだったら暗黒の世界へお帰り 来月発売の本、shin1x1が絡んでるやないか
立ち読みしてから買うの決めるか
カスタマイズ系の本が少なすぎるので出版してもらいたい 目次見る限り5.5との差分が無さそうなんだよな。サンプルコードだけ変わってもなぁて。せめて8で公式にサポートされたvalue objectなんかにも触れてくれるなら良かったんだが。 >>2
いつも先行発売してくれるジュンク堂になかったからamazonで購入
明日届く
明日なら店頭にも並んでそうだな >>63-64
お願いします!せめて初心者向けかだけでも教えて下さい むしろ初心者向けじゃない本なんてあるのか
初心者しか読まないのに せめて目次見てから言えよ。CQRSとかADRを必要とする初心者って意味わからんわ。 500ページってボリュームを全部よむよりは
必要なページだけ読みたいね 今認証中のユーザーがどこのモデルに属しているか確認する方法ありませんか? 明日発売の本買いました
Laravel初心者さんはぜひ買っても問題ないです。
ただ、PHP初心者さんには難しいかもしれないです >>76
本の手順で進めればひと通り理解できる内容ですか?
あと本が分厚くて読みにくい(学習しにくい)とかありますか? >>77
ページ数が多いので全部読んでいませんが
辞書として必要なところを調べる形で使っています
それでも問題ない認識です >>78
なるほど。順番に進めて覚えるような感じではないんですね Laravelの.envってたまに変更しても反映されないことない?
キャッシュかとおもってキャッシュクリアコマンド実行しても反映されず
OSの再起動を実施すると反映されることがごくたまにある https://readouble.com/laravel/8.x/ja/configuration.html
Note: 開発過程の一環としてconfig:cacheコマンド実行を採用する場合は、必ずenv関数を設定ファイルの中だけで使用してください。設定ファイルがキャッシュされると、.envファイルはロードされません。したがって、env関数は外部システムレベルの環境変数のみを返すだけです。 >>81
いいえ、普通にwindows10ですが?
どうしてそんな古いOS使ってると思ったんですか?
laravelスレの人はこんな捻くれた回答しかできないんですか? このスレ、前から約1名面白いことを言おうとして滑りまくってるやつが居るんだけど、>>81はそいつだと思う。
一応皆スルーしてるみたいなので、お前もスルーしとけ。下手に触ると喜ばせるだけ。 Laravelが遅いという話をよく聞くのですが本当でしょうか?
他のフレームワークと比較したときに人間が感知できるレベルで
処理などが遅くなるのでしょうか? >>88
遅いと言えば遅い。Railsとどっこいどっこいって感じ。ただしそれはOPcaheを使ってない場合。OPcache使えば、おおよそ5-10倍のリクエストを捌けるようになり、十分な速さになる。 >>84
ちゃんと自分の環境を書かないからそうなる 今から5系の参考書買って意味ありますか?
5系だとお安いので迷ってます。 ありがとうございます。
サポートが長いバージョンとのことで大丈夫かと思ったのですが
もうサポート切れてたようです…
大人しく8系で安く出るの待ちます! >>91
分からん。けどcakeのほうが早い可能性が高い。ただしOPcacheを使っているならば、ビジネス上懸念されるような差は無いと予想。 >>96
なるほど・・・。
cakeは2までの知識しかないのですが、2でも遅いって話があるのに
それよりも遅いってのもなかなか辛いですね。
今はページ表示速度もSEOの指針になるので >>95
金ないならアルバイト1日頑張ればええやん
タイムイズマネーだよ
そんなの待ってたらずっと取り残されたままで永遠にものにならないよ >>95
正直公式読んで分からないやつは趣味なら大丈夫だけど仕事ではキツいぞ
本なんて買う必要ないよ 公式読み解けない一にとっては本はありだと思うよ
職人のフレームワークだから公式は初心者には寄り添ってないしね
公式読み解けるレベルまで行けばそれ以降は本は不要 インストールガイドを読んでそこから必要に応じて派生ページを読む >>97
ビジネス上懸念されるようなことは無いって書いたのにスルーしないでくれ。cakeにしても遅い遅い言ってる奴は、どうせOPcache使ってないだろ? 付け加えておくと、フレームワークのレベルで遅いかどうかって話はSEOとほぼ関係ない。あくまで時間当たりの処理可能件数に差が出るだけ。サーバーのリソースを食うから。
SEOに関してはDBのI/Oやフロントエンドで使用するアセットのサイズ、ブロッキングの有無の方が1万倍重要。 本を読まなくても学習することはできるけど
本を読まないやつは無能 >>102
必要なところだけ読めばいいのでは?
それで分かりにくいとかならググれば大抵はヒントがあるやろ 特定の言語やフレームワークの習得に限って言えば、本なんかに頼る必要性はほぼ無い。マニュアルとコード読んで理解するのがベスト。本に書いてあることなんてごく一部でしかない。
第一、じゃあその本書いた人たちはどうやって習得したんだろう?て話。無能な奴らが書いた本をありがたがってるってことになるわけだが。 >>109
多分106はいつもの荒らしだから相手にしないほうが良い >>108
必要なところだけ、しかもググった結果を集めてくれてる
それが書籍じゃないのかな
だとしたら有料であるという以外は書籍有利では? ちょうど本をされているので相談です。
・動かして学ぶ! Laravel開発入門
・PHPフレームワーク Laravel Webアプリケーション開発 バージョン8.x対応
を立ち読みしてきました。
どちらも初心者向けだと感じましたが、前者の方が読みやすかったです。
ただ、前者のはバージョン6対応とのことですが、
8とか9を勉強するなら問題ありますでしょうか? >>113
後者は初心者にとって半分以上ゴミになる可能性があるから、1冊目にしとけ。 なんかやたら書籍を持ち上げたがる人いるね
どちらが優れてるかなんて状況次第だし、本でもネットでも好きなので覚えればいいのに >>115
すまん、前レス見てなかったが「どちらが優れてるいるか」のくだりは書籍かネットかの話ね
113のどちらの書籍が良いかという話は俺には分からん 誰もお前にゃ聞いてないて…
ここの主かなんかなん? そもそもネットで検索した程度なんて部分的なものしか集められない 出版のタイミングにおいて整合性の取れてる整理された情報が手に入る、っていうのが今の書籍のメリット。
きちんとググり方がわかっていて予備知識があるなら必要ないよ。 整合性で言うなら普通に公式のマニュアル読めばよくね? 普通の感覚だと書籍かマニュアル好きなほうで学べばいいと思うけど、書籍を絶対視するのはよくわからんな。 電子書籍ならまだ分かるけど物理的な本はもう正直いらないな
過去の技術書殆捨てちゃたよ >>120
そうだぞ。本はマニュアル読み解けないレベルの初心者向けって感じの位置付けで良いと思う。 8いじってるけどLivewire使いにくいな、何か根本的な所が今まで慣れたMVCと違う気がする
これ基礎から学ぶのに何かええ教材ないかな >>126
使うと最初から色々できてて楽なんだよ
これをベースにしたい そもそもLivewireは、MVVMだぞ。その意識だけあればOK。それよか、親子関係のコンポーネント作る時に色々面倒すぎて憤死した。 Livewireは流石に使う気になれないな
これどっちにしても流行らないでしょ? でもlivewire入れたら初期状態で認証とチーム管理入っていて便利やん livewire入れると初期状態で認証とチーム管理がインストールされるということは
初期状態で認証とチーム管理が扱えるということですか? いやlivewireで初期状態で使えるのは認証とチーム管理だけだよ >>129
model-view-viewmodel というアーキテクチャのこと。フロントとバックエンドは、controllerを介さずview modelという層を挟んでmodelと状態やデータを同期させる仕組み。 MVVMってJavaScriptオフにされてたら動かないよね 今時javascript切ってるやつなんか無視してよい >>143
絶滅危惧種だろ
JavaScriptが怖いのは基本的にはXSSで、それは「信頼したいサイト」ほど仕込まれたときの影響が大きい
無駄に利便性を削ってると思うぞ 今からなら8一択でしょ
9になればどうせすぐにアップデートするんだから >>148
機能だけなら今で十分だよなぁ
コレクションがもう少し処理速度が改善すればとは思うけど ソーシャルログインみたいなライブラリ使いたい時も8でいいの? 次のLaravel9では大型アップデートとかあるの? >>150
ソーシャルログインはsocialite使うって話なら、8にも対応してるから大丈夫。 >>153
対応してる・してないってどう見極めたら良いの?
ググって使いたいライブラリやプラグイン探して、
あればそのバージョンを勉強していく感じ? 見極めるも何もリポジトリ見れば依存関係書いてあるし >>154
いや、composer.json見りゃわかるよ。 >>158
composer.json見りゃわかるんだけど >>159
サポートと依存が違うことが分からないのか
サポートしているから必ずしも依存しているとは限らない
自分で確認してこい
https://packagist.org/explore/?query=laravel サポートも依存もcomposer.json見るのが普通
>>160のは誤っているので参考にしないようにしましょう みんなどんなプロジェクトもLaravel使ってるの?
DB保存のお問合せフォームみたいなの作るんだけど、
過去に作ったオレオレ使うか、Laravel使うかで悩んでる
テーブル1つ2つで済むような規模でFW使うのもなぁ 昔は小規模ならオレオレ派だったけど、誰かに引き継ぐ時にオレオレだと説明面倒だし、恥ずかしいし等あって、もう全てにおいてLaravel使ってる 過去に作ったオレオレw
字面だけでメチャクチャヤバそう >過去に作ったオレオレ
そんなゴミさっさと捨てて、前に進む勇気を持った方が幸せになれる >>164
>>163みたいなお問い合せフォーム程度でも使ってるの?
納品する時ファイル数多くなって余計に面倒な気もするが 最近インクリメント君こないな
彼はbigintを枯渇させたらしいけど一体何のシステムを作っているのだろうか >>167
そのサイトがこの先ずっとお問い合わせだけで終わる保障はないし、納品後誰が触るかわからないじゃん?
だから規模に関わらずLaravel使ってるよ
あくまで私はそうしてると言うだけで、万人に対するベストアンサーかは知らん ちょっとしたものならオレオレに使いたい一部のライブラリ(twigとかcarbon等)をcomposerで導入で良いかも >>160
サポートと依存が異なるっていうか、特に下位互換性については、main(master)のcomposer.json見ても分からんから、ReadMe読めってことかな?
バージョン落とせば古いLaravelにも対応できるパッケージがある一方、最新の8しかサポートしてないやつもあるよね。 問い合わせフォームは自動返信付きにすると一気に難易度上がるからなあ
Laravel使っといた方が制御が楽でしょ 自動返信とかGAS書いて終わりだぞ。1時間もあれば大抵のユースケースに対応できる。唯一残念なのはデザインのカスタマイズがイマイチなことぐらい。一方のLaravelだとインフラ周りも用意しないとダメだし、割りに合わなさすぎる。 >>168
bigintを枯渇させた!?
それって全世界規模のシステム作ってないと枯渇しないのでは・・・
にわかに信じがたいな >>177
それは>>168の捏造。
実際はINT型で数年で破綻する設計があるので、
オーバーフローする型を主キーにする設計はおかしいという話だった。
>>168は以前から虚言癖あるからあんまりマトモに相手しない方が良い。馬鹿だから。 laravelの場合id()をincrement()に変更しなければbigintになるかずだけど
increment()をおすすめする記事があるんだよな >>169
どんな案件でも得意のFW使うって、考え方として正しいのかもね
たとえCakeみたいに古くなっても、更新できるしな 自前のWebサービス作る時に、Livewire使うか従来のMVCで行くかすげえ悩む
要はフォームをPOSTで更新するかAJAXで更新するかの違いなんだけどどっちが使い勝手いいんだろうか?
個人的には本当にどっちでもいいしだったらユーザーが使いやすい方が良いんだけどそれもわからん >>182
POSTかajaxかの違いは、MVCかどうかには関係ないだろ。 コントローラーの記述は少ないほうがいいってどこかの誰かが言ってた気がするんですけど、数ページある場合はページごとにコントローラー作ったほうがいいんですか?
例えば、トップ、料金システム、サービス内容、ブログ、お知らせ、問い合わせのページがあるような場合です。 >>183
俺が迷ってるのはLivewire(MVVM)使うかMVC使うかって所な
後者でもAJAXできるが前者はAJAXオンリーになる >>184
それならコンテンツ(モデル)毎にコントローラー作るべきだよ
なにせ用途が違うんだから livewire使うくらいならreactかvueで作るわ >>179
オーバーフローってことは枯渇についての話でしょ?
いまいち>>168の内容が捏造ってのがよくわからないんだけど なんで過去に出たLaravel本は改定して最新バージョンに対応しないんだろうな ググっても書いてる人が文章能力ないと、わかりづらいんだよな とりあえず秋のLTS待ちでしょ
毎年出すほどは売れないから 結局本を書く側もあんまり売れなきゃ金銭的に儲けはあんまりないし
フレームワーク限定の本なんて今の時代より売れない気がする
もうちょっとPHPのシェアが上がらないとなぁ 周りに本出すエンジニア何人か居るけど、口を揃えて、「割りに合わない」と言ってるぞ。箔付にはなるってぐらいだ。だから儲かる儲からないは、出版の判断材料にはならない。 本買うにしても日本のこのIT後進国っぷりを見ると日本語の本は買わない方がいい >>198
釣り針デカすぎ。荒らしは消えてどうぞ。 >>179
bigintであれば数年で枯渇するようなレベルではなくないか?
普通にbigintのインクリメント使ってもいいとおもうけど 元々、オートインクリメントだとオーバーフローするじゃん!みたいなこと言ってて、周りから「bigint使えば良いじゃん。もしかして知らない??」て突っ込まれて、すげー長々と言い訳してたからなぁ。
920京だとunsignedだからPHPでは読めない!とか馬鹿みたいなこと言ってたし(920京はsigned)。
laravelだとパージョン6から、標準のusersテーブルだとidにbiggntを使うようになっている。 マイグレーションファイルのidのデフォルトはid()
何故increments()ではないのかの議論がissueかフォーラムか忘れたけどどこかにあったね >>202
5.7まではincrements()、6.×でbigIncrements()、7.×でid()だな。その議論は7じゃなくて6の時じゃね? >>199
なんで正論言ったら荒らしになるんだよ
何が気に障ったんだ ∩___∩ |
| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | J
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ / >>200-201
INT でオーバーフローが懸念されたので BIGINT型に変更したのは Twitter くらいしか話を聞いた事は無いけど、
俺が言ってるのは、オートインクリメントでプライマリキー作るような奴はそもそもデータ型に対する理解なんか一切無い場合が殆どだから、
INT型の範囲がどの位あって、何年で溢れそうか?
みたいな計算一切せずに、何となくINT型にする馬鹿だらけだろう、って話。
で、問題が発生してなにが起こったのかすら分からず、連日徹夜で闇雲に調査してやっと気付いた時には大問題、みたいな、恒例のパターンになるだろ?って事。 >>197
この手の本なんて売れてもせいぜい数千部、頑張っても数万部とかだからね
印刷代、倉庫代、取次手数料、編集者の取り分なども考えたら著者に渡せる金はホント少ない
専業の人は何冊も書かないと食っていけないし、そうでない人は趣味みたいな気持ちでやるしかない
ただ、出版社も編集者も出版点数のノルマがあるので、
タイミングによっては数稼ぎでそこそこ手堅く損はしないだろうと判断できたら数稼ぎで本を出す
Laravel本は改定本出てるのが多いから、そういう対象にはギリギリなってるみたいね
おそらく次のLTSでも何冊かは出るよ >>209
>INT型の範囲がどの位あって、何年で溢れそうか?
>みたいな計算一切せずに、何となくINT型にする馬鹿だらけだろう、って話。
これなんかデータあるの?それともお前の妄想? > INT でオーバーフローが懸念されたので BIGINT型に変更したのは Twitter くらいしか話を聞いた事は無いけど、
これっていつ頃の出来事?そんなニュースあったっけ > INT でオーバーフローが懸念されたので BIGINT型に変更したのは Twitter くらいしか話を聞いた事は無いけど、
たった一例しか知らないのに「何となくINT型にする馬鹿だらけだろう」って決めつけてるの矛盾してない? >>209
仮に1日あたり1億レコード消費する計算だとsignedBigint(63bit)を消費するまで何年かかるか分かる? >>214
そのぐらい人に聞かないで自分で計算しろよ・・・ >>215
214じゃないけど、聞きたいのって「何年か」ではなく「分かるか」であって、
integerではなくbooleanを求めているんでしょ >>216
2.5億年かかるけど、おそらく彼は分からない 作りたいアプリあるけど9待ちにするか8で始めるか
もしくはLaravelじゃなくてExpressにするか
ただしRailsだけは使わん
phpかjsだけにしておきたい LTSごとにでいいんじゃないか?
6で開発してる人が移行するにしても9からだろ 既に6で始めてるなら9が出てから移行すれば良いと思うけど、新たに6で始める意味は無いな。
6より8のほうがbugfixのサポート長いし、移行も楽だし。 Laravelでやってはいけないアンチパターンみたいなものってあるんですか? seederで本番データを登録はできるけどやっては駄目だね
seederはあくまでもテストデータを登録する用途だから
本番データを登録したいならartisan make:command等で専用コマンドを作ったほうがいい 本番だけseederで登録しないようにする方法ありませんか
--seedの指定しなければ良いんでしょうけどうっかりもあるので いやいや、制御も何も本番でseeder読み込もうとしたらプロンプトでてきて、本当にやるかどうか聞かれるはず。 それはマイグレーションでも同じだったような
破壊的操作に関して本番環境でチェック入ってるのは当然かと Laravel使うとLaravel縛りで苦しむみたいだな 皆がオレオレフレームワーク作る時代はもう来ないのか どうだろ?
APIだけなら別に何でも良さそうだけどね >>239
でもAPIはオレオレ詐欺フレームワークで作るのきつくない?
それだったらLaravel使ったほうがいいでしょ APIって配信元がマニュアル公開してるから、作りやすくないか?
むしろフレームワーク通すとややこしくなりそうだが この板で勢いあるのがこのスレだけなんだな
過疎板でいつ消えるかわからんけど お前らってコントローラの名称を単数形と複数形どっちにしてる? Laravelのインストールに成功しました(10年ぶり2回目)
インストール手順変わったよね?今回めっちゃ苦労したぞ ちなみに、エラー文をそのままググったけどよく分からなかった Composerは未完成なツールだから使っちゃダメ
Composerに依存したシステムは破綻する Composerのエラーって何々しろって出てるけど英語読まない人が対応できないみたいね >>250
多分日本語で書いてあっても読まないだろうな だってAllowed memory size of 2097152 bytes exhaustedとか出るけど増やしても増やしても解決しないんだぜ
読んで対応したぐらいで解決してりゃ誰も苦労しないよ >>244
githubにアップされてるLaravelベストプラクティスを読めば良いぞ。 composerを2にアップデートしてないやつがメモリエラーで死んでる印象。 うちの場合はServer error: `GET http://cabinet.laravel.com/latest.zip` resulted in a `522 Origin Connection Time-out` response:
だったけど、ぐぐって出た対策じゃ解決しなかった。タイムアウトとか言われてもどうしたらいいんだよ。 >>257
バリデーションはモデルでやれよ
Requestでやるとバッチ処理の時に困るぞ >>258
前もそれ書いてたよね。Laravelエアプかよ。 できるだけCSSフレームワーク使いたくない派なんですけど、jetstreamがtailwindとのことなので、どうせjetstream使ってtailwind読み込むならtailwind使っちゃったほうがいいですかね? >>260
そりゃそうよ。まぁtailwindCSS使った方が楽なことが多いから。アホみたいにCSS設計とか命名規約とかに無駄な時間使うことも無くなるし。 前に書いてたから何なんだ?
エアプって何?
言いたいことがあるなら普通に言えよ >>262
Laravelのフォームリクエストは、外部からの入力を検証するための機構だからモデルでやれって主張はアホすぎるってこと。MVCでは、入力値の検査はコントローラーの責務。
RailsとかがModelで検査してるのは、MVCよりActiveRecordのルールを優先した結果に過ぎない。
そもそも画面やAPIからの入力とバッチの入力のバリデーション仕様が同じになるケースなんてまず無いと思うんだけど?
誰にも相手にされなかった主張を、また繰り返すのはやめたほうが良いぞ。 MVVMだとValidationはどこでやるんですか? Cakeだとバリデーションはモデルに書いてたけど、Laravelではダメなん? >そもそも画面やAPIからの入力とバッチの入力のバリデーション仕様が同じになるケースなんてまず無いと思うんだけど?
え、そんなことはなくない?
1つのテーブルにデータを追加するシンプルな要件だと、WebからフォームをPOSTしてもバッチで追加してもルールは一緒になるだろう
エラーメッセージの出し方とかは異なると思うけども、バリデーターをそれぞれ別に書いたりはしないと思う >>260
どのフレームワークを使うか選択できなかったっけ? モデルに紐付かないバリデーションはどこに書けばいいですか? 議論する際「どこでやるか」と「どこに書くか」を混同しないようにしないといかんな。
モデルに書いてもリクエストに書いても、流れ上は「コントローラーでやる」と言っても間違いではない。 議論するなら、「俺はAに書いてる。なぜなら○○だからだ。Bに書くと○○で駄目だ」
って理由まで答えないと成立しないけどな >>269
268です。ありがとうございます。
ちなみにそれだと、
Aというルートではコントローラーにバリデーションを書き、
Bというルートではモデルにバリデーション書く、
というようにバラバラになってしまうんですが、気にしないほうが良いのでしょうか?
それとも一律コントローラーに書くほうが良いのでしょうか? >>264
例えばLivewireだとViewModelでやる。
>>265
フレームワークの仕様による。LaravelはController。
>>266
どういうバッチを想定している?ファイルから一括でデータを投入するみたいなやつ? バリデーションのルールをコントローラーに直書きするのがよくないと思う
使い回したりメンテしやすいよう別の場所に出して、コントローラーはそれを呼び出すだけにしたい
じゃあどこに書くか?となると多分モデルなんだが、LaravelのRequestに書く仕様はちょっとビックリした
一見理に適っていて便利でもあるけど、既出の通りコマンドから同じバリデーションを実行する場合は一工夫必要になる >>275
コントローラーのメソッドから呼び出すのは良くて、コマンドのメソッドから呼び出すのが良くない理由もお願いします。 リクエストのrules()メソッドにルールがまとまって、コントローラーとかにルールが散らばらなくてメンテしやすいと思うけどなあ お前ら細けえな
好きなように書けよ
どうせ誰もメンテしなくなるんだし
バリデーションなんて動けばいい >>276
コマンドからはFormRequestなんて使わないから
呼び出したくても呼び出せないぞ
とは言え、rulesはpublicだしどうしようもないわけではない
うまくやれば共通化もできるかもしれない >>263
逆にフォームからとバッチからでバリデーションルールが異なるケースってどんな時だよ
そんなの見た事ないわ コントローラにバリデーションルールダラダラ書いたコード納品されたら俺だったらキレるわ メンテしない案件でも納品直前に「やっぱりパスワードの文字数○○文字以上に変えてくれ」なんて依頼よくあるからなあ
「空の時に表示が崩れる」という理由で本来必須じゃなかった項目をrequiredに変えたり
クライアントは馬鹿だから色々予期せぬ事が起こる メンテ=他人に見せることばかり考えてるやついるな
メンテは自分が見てわかりやすくするためのものでもあるだろ
好きなように書いてて、半年後に見ても思い出せるのかよ Laravelってバリデーションどこに書くかでも大論争になるんですね
Symfony選んどいてよかった 言うほど大論争になってるか?
ボケがツッコまれてるだけやろ Requestでバリデーションする方が分離されるから個人的には好きだけどね
モデルでやるとかは無いわw 間違ってたら考えを改めたいから言って欲しいんだけど
何でFormRequestがやってるバリデーションって入力された値が想定してる値かってバリデーションなので
その先にあるであろうテーブルとかを考慮しちゃいけないものだと思ってる
例えば同じテーブルに入力されるデータでも管理者権限と一般ユーザー権限でバリデーションルール変えたいってケースなんてザラだし
モデルに入力される値のバリデーションは持てるの担当範囲外でその担当は
おそらくバックエンドにあるデータベースが受け持ってて入力値が正しくない場合
Exceptionって形で戻してるって解釈してる
違うかな バッチ処理のことを考慮したらFormRequestクラス使うのはありえないんだけどね
ここはレベルが低いからそこまで理解できないらしい 今日もクソ暑い 毎年思うんだけどなんか1年のうちで暑くなる時期あるよな >>293
正直俺もFormRequest使ってるぜってどや顔でこのスレの住人に言われたときは愕然としたな
バッチ処理何も考慮してないよな こいつらマジでバッチ処理どうやってるんだろうか いうほどバッチ処理なんてあるか?
なんの処理を気にしてるわけ? バッチ処理なんてそもそも間違った入力を渡す事なんか無いやろw
頭悪すぎwwwwwwwwwwwwwwwwwww >>297
こういうやつの為に、バッチにもバリデーションが必要なんだよな。 >> 297
バッチ処理で間違った入力がされない保証が100%じゃない限り、本来ならバリデーションするべきとは思うけど面倒だからやらないで運用でカバーしてもらう事が多いのも事実
バッチ処理がBatchableジョブの事を言ってるのかartisanコマンドで任意に叩いた処理の事言ってるのかどちらを指してるかわからんけど
どっちにしろ動かす状況やら権限でバリデーションルールが変化するわけだから
機能(バッチ処理)ごとにそれぞれルールは必要じゃないの?
Batchableジョブでミドルウェアが使える様になってるのってリクエストの時と同じように
そこでバリデーションかけたり前処理できる様にしてあるって思ってたけど もうCloseされちゃったけど最近のissuesでもFormRequestsはバッチ処理に向いてないから廃止しようって話あったよね
やっぱりコミュニティでもモデルにルール書く人が大半らしい >>300
laravelのOSSかなりみて回ったけど、FormRequest使ってる奴らばかりだったぞ。その話は疑わしいのでソースを提示してくれ。 バッチがーて言ってるやつは、まず具体的にどんな処理を想定しているのか答えてくれ。 モデルにバリデーションルール書く場合で
ユーザーのロールによってバリデーションルール変える必要があった時ってどんな書き方してるのか知りたい 間違った住所のままDBに登録される
↓
出荷バッチが働き間違った住所のまま伝票に印刷される ※1
↓
間違った住所の伝票が貼られたまま郵便局に持ち込まれる
↓
ご指定の住所に行き当たりませんでしたといって荷物が返ってくる
↓
商品がこないからキャンセルだと客から連絡が来る
おまえらがバリデーションしないせいで月間300件の荷物が返ってくる
1つ送るのに1050円だから1050*300=315000円の損失
そして※1のところで伝票印刷アプリが「取り込みすら無理なデータだけど」ってエラー出すからバッチ処理が止まる
データ修正してバッチを再投入
だが、ほかにも間違ってる住所があるからまたやり直しっていうのを何度も繰り返す
とにかく間違ったデータが入力されてしまうっていうのは損失として大きいんだよ >>304
うん?バッチってDBから一覧を抽出するバッチの話なの?バリデーションは何の関係があるの?そんなの登録画面でバリデーションすれば良いだけでしょ? >>302
バリデーションが必要なデータを追加するバッチだよ
それを聞いてとうするんだよ >>307
具体的にて書いたはずなんだが。モデルで書けっていってるやつの主張が意味不明だから。
まず、画面で入力と同じ操作をバッチでもやるって前提が理解できない。
俺の経験上、大体のデータは親子関係にあって、入力する画面は分かれている、バッチだとそれらをまとめて投入するから画面とバッチではバリデーションのルールは異なる。
更に、そんなバッチ自体稀だから、わざわざそのためだけにLaravelの標準を無視してモデルに書くって発想が理解不能。 モデルに書くのに違和感あるって人はLaravelしかフレームワーク触ったことない人なの?
煽りじゃなくて純粋な疑問 そもそもバッチにパラメータなんて基本ないからな
デイリーだとその日が分かればいいだけだし
特殊なバッチのようなものならそもそも管理画面でパラメータ入れて実行やろ >>309
処理の流れからして先にバリデーションするやろ
モデルでするとかそもそも考え方が異常やろ
複数のモデルを使う時、2個目のモデルに投入するまでそこで使うパラメータはエラーが分からんの?w
バカバカし過ぎる >>309
モデルにバリデーションがあるほうがMVCの原則としてはおかしいのだよ。上でも書いたけど、モデルにバリデーションてのは、Active Record由来。
だから、モデルでのバリデーションに違和感持たない人は、Rails以降のなんちゃってMVCフレームワークしか知らないって理解。 >>308
どこまで具体的に要るんだ?実際のコード貼れってか?ちょっとそれは今すぐできないんだが
例えば最近やったのでは、1日1回他社がS3に置いたcsvデータを取り込んで、テーブルにレコード追加するバッチ
requiredやuniqueやdateなど普通にバリデーションが必要でバリデーションしたよ
この程度の例も思い付かないなんてどんだけ経験値低いんだよ >>313
経験値ではなくて規模の話だね。そこそこ正規化されたデータしか扱ったことないんで。
あとそれがどれぐらいあんの?画面10あって、そんなのが1、2程度なら、わざわさモデルでバリデーションするようアーキテクチャを変更するのはアホだってことぐらいは、理解してくれるよね? >>312
その辺は一応浅く理解してるけどコントローラーにもリクエストにも書きたくない場合モデルしかなくね?と思った
Cakeでもモデルに書いてたし
他にもっといい場所あったら知りたい >>314
確かにうちは小規模案件が多い、その意味では俺も経験値足りてないが
もちろん不必要な所まで変えなくてもいんじゃね?俺もRequestのバリデーション使うことはある
ただそれだとバッチの時に不便だから、うちではモデルに書いたバリデーションメソッドを、
Webの場合はコントローラー、バッチの場合はコマンドから呼び出すという実装が多い
だから>>257のページみたいにリクエストクラスでやるのがベストプラクティス!と言いきられるとモヤモヤする 週末に気持ち悪い奴らだな
みんな可愛い彼女連れて楽しく過ごしてるのにバリデーションごときに熱くなって悲しくならんの? 考え方違くね?
モデルに入るデータをバリデーションするんじゃなくてS3にあるCSVデータが正しいフォーマットかをバリデーションするんじゃないの?
後laravelしか触ってないからモデルに書く事に違和感があるんじゃなく
laravelがリクエストでバリデーションする機能を提供してるからその方針を尊重してるってだけ
使ってるフレームワークがビューテンプレートに書くって方針ならそうするよ
自分のやりやすいを優先して得られるものなんてないでしょ >>304
間違った住所のままDBに登録される
↓
出荷バッチが働き間違った住所のまま伝票に印刷される ※1
バッチ動く前に「間違った住所のままDBに登録される」って書いてあるけど、そこでバリデーションが必要じゃん >>315
cakePHPはRailsを真似たフレームワークの代表みたいなもんだから、例としては不適切。 >>316
バッチもあるやつだけ、モデルにバリデーションを移しているの?それはそれで大変そうな・・・ >>318
そうそう、フレームワークの標準にのることが大事。それを無視して俺流をはじめちゃうと、オレオレフレームワークの亜種になってしまう。
その結果、新規に参画するエンジニアや引き継ぐ場合の学習コストが跳ね上がったり、メンテできなくて匙を投げられるみたいなことが起きる。 >> 322
基本的に面倒くさがりだから独自ルールで書いたらどんなルールかをドキュメントに残さないと引き継げないけど
フレームワークの標準に合わせとけば引き続ぎはフレームワークの作法でやってるのでよろしくで終わる
理解できないって話ならそれは本人の技量であってドキュメントを残してないこっちのせいじゃないって突っぱねられる めんどくさいからちょっとまとめてやるわ
バリデーションて言っても厳密には2種類ある
・フォームから送信されたデータのバリデーション
・DBに保存するデータのバリデーション
例を挙げると長くなるので省略する
前者はリクエストで、後者はモデルで担当するのが正解だが
シンプルな要件ではこの2種類が同じになることも多く、その場合はどこに書くか議論の余地が出て来る すまん、スレの総意的には、Requestsクラスは非推奨で、モデルでバリデーションするのが正解ってことでOK? バッチ処理に向く、向かないって言ってる意味がよく分からん
要は正しいデータ登録できるかできないかって話だよね?
バリデーションの機能そのものの話だよな モデルでバリデーションするって言ってる奴は.envをコミットするって言ってるやつと同一人物だろw >>321
じゃあそういう時他にどうすればいいの? 異常値は入力時に弾いてDBに入れないのがシステム屋さんの考え方。WEB屋さんはDBにも異常値があるものを作るようだ 俺のところはlocalhostからしかアクセスできないバッチ用コントローラを配置して
そいつに対して他社システムが配置したCSVから読み込んだデータをPOSTしてるな
だからFormRequestは普通にバッチで使えてたな >>331
それぞれでバリデーション書け。理由は、ユースケースが異なるから。結果的に今は同じだからって共通化しようとするのは、経験の浅いエンジニアが犯しやすい過ち。 >>334
それLaravelではアンチパターンだよ バッチからとフォームからでルールが異なるってレアケースだし、共通化できる部分はすべきだと思う
あちこちに分散して書くと非常にバグの基になりやすい
それぞれの担当者が別で開発終盤の忙しい時に仕様が変わって片方にしかちゃんと伝わらないとか、超ありがち >>333
それはそれで苦肉の策って感じで嫌だな
絶対駄目でもないけど あらゆるインプットにはバリデーションが必要で、特定のインプット方法にしか使えない形でバリデーションを実装するのはどうなの?っていうだけなんだが。
特定のケースならバリデーションはいらない、っていうのはむしろ例外だから考慮しなくていい。 >>335
勝手にLaravelのアンチパターンとか言い出して何様www >>338
Laravelベースの人気OSSも一通り調べてみたけど、ユースケースごとにバリデーションは分けて定義している。例えば同じuserモデルに対する処理でも、登録と更新ではFormRequestを分けて用意している。 >>338
ログインIDが登録可能な3種類のrouteがあったとして
1. /users
2. /manager/users
3. /file/users
1は半角英数10文字まで
2半角英数10文字で先頭にmgr_が必要
3はアップロードされたファイルに書かれている文字半角英数10文字まで
これをどういう形でバリデーション実装するの? もうLaravelも9が出るというのに未だにFormRequests使ってるやつが居て草
バッチ処理のこと何にも考えてないんだろうね やっぱRails使いたちのほうが圧倒的にレベル高いわ
Laravel使ってる奴らやべえな >>344
そんな化石使ってるやつのほうがヤバいからw >>343
バッチ処理でバリデーションとかまじで笑えるwww
お前開発したことないやろ?w .envと.env.backupが.gitignoreで除外されてるけど
.env.helloとかは問題なく追加できる
これってLaravelの思想としては初期の.envや.env.backupを管理対象にしてないのは
初心者に対する配慮の上でのことですよね?
devenvの仕組み上.env.aとか作れるので自分で管理しろって意味ですよね? そもそもバッチ処理ってのが何を言ってるかよく分からん
バッチ処理云々言ってるやつは、
まずはバッチ処理そのものについてまずは説明してほしいわ
バリデーション云々の話はまずは置いといて良い >>341
そんなシステムはおかしいのでこの場合のバリデーションを考えるのは時間の無駄です >>341
設計ひどすぎてワロタ
それは単純な例だからそういう設計ってことでいんだよな?
まさか実際にリリースしたことのある製品がそういう設計になっているんじゃないよな? >>351
そのリンク先とLaravelのバリデーションとの関係は説明できます? >>353
バリデーションの説明はまだいらないとのことだよ
>>349はバリデーションの話はまず置いておいてバッチ処理について教えてほしいって言ってるんだから 上の方のレスも読んでなんとなく言ってる意味は分かったが
バッチ処理の内部で起きてる話のことで、
それをバッチ処理と相性悪いって言われても意味は伝わらんわな
言い方が悪い やっぱすげえ動物園みがあるなこのスレ
いつ来ても苦笑させられる >>352
こんな設計あるわけないでしょ
routeによってバリデーションの内容が変わるってのを極端に書いただけ
ここまで極端じゃなくとも大なり小なりrouteで変化するルールをどうやって対応するのかが聞きたかっただけ
それからクライアントからの絶対条件だったっ場合
設計がおかしいから変えないなら仕事したくありませんとかって言うわけでもないだろうし
FormRequestに書くって選択肢を許容すればそんなゴネる必要ないのに・・・
バリデーション分けると寿命が減ったりするわけでもないんでしょ? >>357
だからrouteでモデルの解釈が変わるというのが設計が悪いという証拠 その考え方だと
モデルに対してwebで出来ること以上の機能を持ったapiは設計が悪いってならない? >>348
一言で済むならプログラマー入りませんよ
頭の悪い無能は引っ込んでおれ 別にrouteによらなくてもバリデーションルールが様々な条件によって変わることは普通にあり得るし
Laravelも他のフレームワークもその辺は割と柔軟にできるように工夫してるでしょ
そしてそれはFormRequestに書くかどうかと全く関係ないぞ、スレを面白くしようとしてるのか知らんが変にややこしくするな FormRequestはバッチで使用できないから廃止しようというissuesが前に立ったけど
結局否決されてクローズだったな >>351
機能文盲のようなので横から捕捉しておくと、ここで求められているのは、バリデーションを必要とするバッチ処理というものが何なのかって話だよ。
おそらく、それをはっきりさせた後にバリデーションについて語りたいんだろう。 >>364
違う 俺が言ってるのはまずはバリデーション抜きでバッチ処理を語ってくれってこと バッチでユーザーリストのcsvファイルを読み取って、追加更新するとか。
これくらいも思いつかないのか。。。 >>365
俺が機能文盲だったのか。100年ぐらいROMってるわ。 FormRequestでバリデーション実装しているやつはバッチ処理を考えていないを指摘したら、急にスレの流れが変わってそのことに触れないようにしててワロタ やっぱLaravelスレって零細しか居ないんだろうなぁ
大企業向けワクチン接種の予約した人もここには居ないんだろうな >>369
おれ一応大企業ね。1000人超えてるから。ただし事業部制だから全然実感は無い。 おそらくWEBインターフェースを使用しない話をしてるのだろうが、
それをバッチ処理という括りで話すのがまずおかしい
おそらく永遠に話が噛み合わない
バッチ処理言ってるのは古いシステムを触ってるおっさん世代と思われる >>372
laravelでバッチってワードが出てくるのなんて
ジョブバッチしかないんだからそれなんじゃないの?
タスクスケジュールを指してるとはとても思えないし
artisanはコマンドだし バッチ処理が必要なシステムとか古すぎて草
何年前の設計思想だよw >>374
後学のために教えて欲しいんだが、例えば50万件のデータを毎日DBに投入するときは、どんな設計にすれば良いの? 俺の会社も考えたらバッチ処理ってないな
いろいろな設備や予約を行うためのシステムだけど利用者に関するデータはそもそも他社のアカウント管理サーバがあるからそこを参照しているだけだし
実際の予約情報もまた他社のExchange Web ServicesにアクセスしてデータのCRUDを行うだけ
備品や施設情報もExchange Web Servicesから参照しているだけだし >>361
俺としてはフレームワークでlaravelを選択した際には
リクエストされた値に対してのバリデーションなんだからform requestに書くって自然な流れだと思ったんだけど
modelに書くのが一般的って言うからどう対応してるのかが知りたかったんだよね
そっちのがlaravelの文脈として理にかなってるなら考えを改めて、ウソ教えちゃった人達に謝って訂正しようと思ったから粘着質になってしまった
申し訳ない FormRequest書いたルールをrule()メソッドで参照したらどこでもバリデーションできるけどそういう話じゃないだろな多分 いやほとんどのケースでFormRequestに書くで別に問題ないだろうし
他で必要な場合は>>381みたいな方法でも別にいいと思うぞ
でも他のFWみたいにモデルに書く手もあると思うし、何故かそれを認めない輩も一定数いる模様(一人かも知れんが) 転職サイトとか見ててもLaravel案件は単価低いから仕方ないよね
Laravelというかphpが低いのかもしれないけど Windowsの古のシステムを保守してたおっさんが紛れ込んだと思われる AWSだってわざわざバッチ用のサービスを用意しているというのに、このスレの奴らは大量のデータを一括で処理するようなユースケースに遭遇したことがないのか?それとも、その場合バッチ以外の手段で対処している?
キャリア1、2年目のエンジニアがバッチ処理必要になった時に、設計したことないって話は聞くけども。 俺もそれは不思議
バッチという言葉も知らず実装したこともない初心者無職が、なぜか開き直って偉そうに罵倒してくるスレ 当然知ってるからこそパラメータとか言ってるのが滑稽なのだよw
定期処理ならパラメータなんて無いし
(あってもその日時とかやろ)
必要に応じて動かすならフォームからパラメータ入れたりして実行するし
そもそもそういうパターンは管理画面だから非同期にする必要も本来は無いのだけどな パラメータおじさんが何もわかってないことはわかった
お前はずっとROMでいいよ バッチが必要なのは昔の貧弱なシステムでやりくりする知恵でしょ? >>391
へー、最近は数十万件のデータの処理であっても、オンラインでhttpタイムアウトする前に処理終わるんだ? 1日に1回、基幹システムからデータを取り込む処理とか作ったことないの?零細の俺ですらあるというのに >>391
よくあるサブスクのサービスとかで月に一度クレジットカード会社に請求する仕組みとか世にいくらでもあるんだが、君はどうやって実装してるのか知りたい >>391
FormRequest使ってるバカwwwww >>392
1件ずつリアルタイム処理するって話なのに
どうしてリクエスト来るたびに全件処理するバッチ処理を走らせてんの?
そもそも数十万件ならHTTPのタイムアウト60秒だとして間に合うでしょ >>394
1日1回じゃなくて1日中やりつづけたらいいよねって話 >>395
そういうの求める人いるけど、怖くて手を出せないわ
大きな会社でもしょっちゅうやらかしてるし >>395
世の中の仕組みが古いよねって話だよ
メガバンクですら夜間バッチからリアルタイム処理に変わったのに おまえら昔は大手にいたかもしれんが
最近のシステムを触ってないでしょ?
どんどんリアルタイムに変わっていってるのに
そもそもサーバにクレジットカードの情報があるようなシステムは違法だぞ 客の基幹システムが古いんだから仕方ないじゃん
こっちは頼まれた通りに作るだけだよ >>391
例えば、1日ごとの会員の数をCSVなどでダウンロードしたいという要件を実現するとき、
1. 毎日0時時点の会員テーブルのレコード数(や会員の付随属性など)を取得する
2. 1. の結果を集計結果テーブルに挿入する
3. 出力リクエストを受けたら集計結果テーブルをCSVに変換して出力する
俺だったらこんな設計して、 1. と 2. はバッチで作るけど>>391のモダンなやり方だとどんな設計になるの?
あ、ちなみに俺はバリデーションルールをモデルに書くなんて馬鹿なことはしないよ、普通にFormRequestに書くわ。
しかしバッチをLaravelで作るかは微妙だが。 なにそのキチガイな設計、頭だいじょうぶか?
普通にリクエスト受けたらCSV生成してダウンロードさせたらええだけやん >>404
FormRequest使ってるやつってやっぱりガイジしかいねーんだな
そのままCSVで出せばいいだろ >>404
この人(達)わかってて言ってるから相手にしない方がいい
私生活が上手くいってなくてこういう方法でしかストレスの吐き出し方知らない
かわいそうな子だから何言っても意味ないよ わざとボケてスレをかき回して喜んでる奴ずっといるよな >>408
そうそう。荒らしね。知識なくて話に加われないなら黙ってりゃ良いのにといつも思うわ。 反論したくなるギリギリの外し方は上手いと思うから知っててやってるんじゃないかと予想した
でも、あんまり知識レベルは高くないと感じるから
いくつもやってたら無知が故に画期的なアイデアを書くかもしれない
がんばれ 俺の会社は>>379で書いた通りの方式だからバッチ処理はないな
上位システムでは何かやってるのかもしれないけど バッチ処理をどうやるかって話をしているのに
わざわざ「俺の会社ではないな」とか書いてくる奴ってガイジなのか?職場でもそんな感じで会話してるの? 死語な感じするけどキョロ充ってやつじゃないの
とにかくハブられないために情報量ゼロでも何か発言せずにはいられないんだろう
悲しいね >>414
最初にバッチ処理でFormRequest云々の話をしたのは俺なんだけど
みんながバッチ処理をそもそもしているのかどうかという正直>>379のような話がしたかったんだよ・・・・
正直今の流れは望んでいない・・・ バッチ処理は必要だしみんなしてるよ
スレ読んでて何故それが未だにわからない? >>405
統計処理としては普通の方式だと思うけど
リクエストあるたびに集計処理が動作するんじゃ重すぎる >>416
バッチ処理ってどれを想定してるかで答え変わるんじゃないかな?
ちなみに俺は6番だと思ってる
1. 時間のかかる処理をする事
2. 非同期で処理をする事
3. 複数の処理をまとめた機能
4. 定期的に行う処理の事
5. コンソールから行う処理の事
6. Batchableジョブの事 >>417
いやバッチ処理がいらないシステムも実際存在するし作ったこともあるから必ず必須というのは誤りだけど
実際のところ自分の構築した体感で7、8割りのシステムはバッチ処理が必要なシステムになるね >>419
HTTPリクエスト以外からのlaravel処理起動ってことだ。
バリデーションをHTTPリクエストしか想定してないところに書くのがどうなの?って話になって、例としてバッチはどうするの?って話になって、バッチを知らない馬鹿が騒いでるのが今の流れ。 サーバ内部からアクセスできないようなコントローラを作って
そいつに対して別システムからもらったCSV等のデータをPOSTしたりとかするようにすれば
FormRequest使えるのでは? >>421が正解なんだが>>419はわかっててわざとボケてる奴だよな
「バッチ」の定義にこだわってわざと話をかき回し続けている もう病気だろこれ ちょーっと、イイですかー?
あなたターチは、ヴァカですかー? >>424
俺はわざとやってる人じゃない
ややこしくしようとしてるって感じたなら謝る
書いてもらうまで「HTTPリクエスト以外からのlaravel処理」
が議論の対象だったってのは完全に頭になかった 書くの忘れてた
バリデーションをHTTPリクエストしか想定してないところに書くのがどうなの?
って部分に関してはバリデーションの対象が「リクエスト」なのでFormRequestに書くべきだと思う
FormRequestを使わない処理に対してのバリデーションは必要があるなら処理単位で書くべきと思ってる FormRequestを継承したクラスをnewしてそれのrules()で取り出したルール使いましょうよ >>427
繰り返しそう書かれてるのに、スレを読んでてそこに気付かないとか考えられないんだが
案外見落とすもんなのか…? このスレでは行間読んでもうバッチでいいけど、
個人的にはバッチって表現とLaravelのバリデーションを紐づけるのは違和感あるよね
Laravelのドキュメントの中でバッチって使ってたりするか? >>431
バッチって定義はないけど、cursorやchunkメソッド、lazy collectionなんかは大量データを一括で処理するためのものだよね。 こんなんで言い争いしてるのを見るとわかる通り
laravelはダメなフレームワークです。 バッチの定義がおっさんと若者で違うんだろうか
でもこんなスレでそう結論付けてはいかん気がする、異常者が集まっている >>429
それやった段階でルールがどこで使われてるかが追えなくなっちゃうから
のっぴきならない事情でそのルールを変更せざるを得なくなった時に
影響範囲が全くわからなくて予想外の不具合起こしかねないからやりたくないのよね
チーム開発とそんな変更受けちゃダメってのは無しでお願いします Laravelは独自の用語が多いから単語本来の意味と違ってたりして話がややこしくなる
そういう所は嫌い、というか普通にバッドプラクティスだろそれ >>436
その観点だとモデルに書いても同じことが起こると思うし、バリデーションに限らず何かしらのクラスを複数箇所で使ってはならないんじゃないの?
というかバッチ用クラスのテストは書かないの? >>438
サービスって単位での使いまわしはするけど
基本的にクラス単体を複数個所で利用するって事はしてないな
当然共通処理って部分での使いまわしは当然あるけどabstractでやってる
実際に使う場合はサービスプロバイダで必要なインターフェースが実装されたクラスをbindして
コンテナから呼び出して使ってる感じ
このやり方が全くの見当はずれだったりアンチパターンとかだったりしたら早急に修正しなきゃいけないから変だったら言って欲しいのよね >>439
要員の必須スキルが上がって人を集め難くなりそうなんだけど
その仕組みで何人くらいのメンバーで開発してるの? そろそろ別の話題にしてくんねえかな
いつまでやってるんだよ >>440
プロジェクトの規模にもよるけど俺のほかに2人で外部に必要あればちょいちょいって感じ
設計とかインターフェースの部分の開発をやってもらう場合は確かに人が集め難いとは思うけど
どちらかっていうと能力が低くても依頼可能にしたかったからこうしてるんだよね
とはいえメソッドチェーンってなんすか?レベルまではカバーできないけど >>441
.envをコミットするかしないかで延々議論していたころに比べれば健全だろ ・.envはコミットする必要がある
・/vendorはコミットする必要がある
・バリデーションルールはモデルに書くべき
・テストを書く必要は無い
・いかなる場合もバッチは必要無い
・jsonは脆弱性があるので使うべきではない >>404
ネタにマジレスして悪いがその処理だと要件満たしてないw >>421
cronで60秒ごとにキックして一瞬で終わるような処理と
夜間に数時間にわたって一括で走らせるような処理
この二つを同列に語るのはちょっと違うと思うよ >>446
テスト書かないのだけは駄目だろ
他はわからんでもないが >>404
1は会員登録および退会の時刻を見ればいいだけだから別に0時に処理する必要はない
2はテーブルに持つべき値ではない
3も同様
磁気テープの時代ならともかく、値を取得を得られるまでの期待値が0.1秒未満の今の時代に
なぜバッチ処理をするのか?
レスポンス改善の為にあらかじめCSVを作成して静的に配置しておくっていうならともかく、そういうわけでもないようだし・・・ >>444-446
小さいころ数人でワイワイ砂場で遊んでたら知らない男の子が後から入ってきたからその子も含めてみんなで遊んでると
他の子が作った山とかを壊したり100万円持ってるとか意味わからん嘘ついたりを「やめて」って何回言ってもやる子だったから
またその子が砂場に来た段階でみんなで別の遊具に移動するようになって
誰もいない砂場でごく短時間だけ「楽しいなー」みたいなこと言いながら遊んでた「あの子」を思い出すからやめて・・・ 未だにバッチ処理とか組んでる老害居るのかよ
.envをコミットしてるガイジまで居るしとんでもない動物園だこりゃ >>450
頭の中がおじいちゃんなのよ…
あまり責めないで >>450
想定会員数と用途とか情報が足りてないから想定可能なボトルネックは「ある」ものとして設計しなきゃならないと思うから
100万会員/dayで運用開始から現在までって仕様だった場合、どこかで破綻するでしょ >>450
例えば自由に停止再開できる有料サービスを契約している会員数もCSVに載せることになった場合でもそうする? >>457
100万会員/dayの場合OSSのDBで扱えないだろうし言語にPHPを選ばないと思う 毎日100万会員増えるサービスってどんなんや?
100万DAUのサービスならPHP/MySQLのもある、ソシャゲとか結構PHPだし俺も昔モバゲーのゲームをCakeで作った グラブルがPHPらしいしPHPで出来ないサービスなんて殆ど無いやろな むしろPHPよりはボトルネックになるのはDBの方じゃないかな? >>459
だからそれも同じ
出力時に計算してCSVに出せばいいだろ >>462
会員数としか明記されてないので
例えばアプリのインストールやログインとかのレポートなんかを提供するマーケティングツールをイメージした バリデーションをモデルでやるのってそんなにおかしいか?
データはDBのテーブルに保存されるんだからバリデーションはそれに合わせるべきでしょ
ユーザーIDなんかはカラムにユニーク制約付けて、Laravelのバリデーションでcreate時にユニークチェックする
必須項目はNULL不許可にしてバリデーションでrequired
数値はint型のカラムにしてバリデーションでnumericまたはinteger
みたいになるだろ
テーブルに紐付いたり一番近いのはモデルなんだからカラムの属性はモデルにまとめて書くべき
普通fillableまたはguardedを指定すると思うけど同じようにrulesも書いとけばいいんだよ
コントローラーやコマンドはそれを呼び出して使えばいい >>471
DBに投入するデータと入力データはかならずしも一致しない
例えば、パスワードなんてハッシュされてしまう >>471
おかしくないと思うしあってもいいと思うけど
ユーザー属性によってバリデーションルールが変化するサービスの場合はどうするって問題が出てくるでしょ >>472
完全一致する必要はない、むしろ普通は完全一致しない
けどバリデーションされる情報ってだいたいテーブルに紐付く情報だろ、多少の例外はあってもそこは無視できんだろ >>473
そんなのどうにでもなるじゃん
Laravelのバリデーションルールにはいくらでも複雑な条件書けるぞ、足りなければルール自作すればいい
動的に変化する条件も書けるぞ >>474
それ言い出したら、フロントに一番近いとこでやっても変わらんだろ
多少の例外があっても、基本的にフロントから来たデータをバリデーションすんだろ?
そこを議論してもしょうがないんだよ >>476
・フロントから来たデータをバリデーションする
・DBに入るデータをバリデーションする
この考え方の違いか、俺はずっと後者だったから前者の考え方はこのスレの議論で初めて知った
バリデーションは何のために必要か?と言うとDBに不正なデータを渡さないためだから、後者の方がしっくり来るけど >>471
Laravelが提供している標準を無視して、そんなオレオレ実装にこだわる理由がわからん。どうしてもモデルでやりたいなら、cakePHPやRails使えば良いのでは? >>477
それは「なんちゃってMVC」しか知らないからだね。元々MVCは、入力値のチェックをコントローラーの責務としている。
俺はどっちでも良いと思ってるから、その仕組みが提供しているほうに合わせるべきだと思う。それをせずにわざわざ仕組みを変えようとして無駄に工数を使うやつは、仕事ができないやつだと思う。
極論、作るシステムのステークホルダー(エンジニアの除く)にとって、バリデーションがどこで行われているかはそのシステムの価値を決める上で一切関係が無い。 >>478
標準を無視してオレオレ実装にこだわっているわけではない。
モデルに書くのも一理あるでしょ?って言ってるだけ。俺だってFormRequestのバリデーションも使うし。 >>479
なんちゃってMVCで作ってるのはわかっている。本来のMVCでないとダメなんて思ってないし。
Laravelが提供してる方法ってFormRequestのバリデーションのことだろうけど、
モデルに書いてもあまり手間変わらないよ。
そもそも公式の例ではコントローラーにバリデーション書いてる。その
[
'title' => ['required', 'unique:posts', 'max:255'],
'body' => ['required'],
]
なんかの部分を、モデルに持って行くだけだよ。コントローラーでは
$request->validate(SomeModel::getRules());
のように使う。こうすれば他のコントローラーからも同じように使える。条件によってルールが変わる時は引数で指定する。 あのさぁ、アプリの基本って、入口と出口を固める事なのな。
バリデーションは入口、エスケープは出口。
どうしてModelみたいな真ん中でバリデーションしようとする?
こんな基本的な事言わんとわからんの? >>479
>極論、作るシステムのステークホルダー(エンジニアの除く)にとって、バリデーションがどこで行われているかはそのシステムの価値を決める上で一切関係が無い。
わかりやすい所に書かれていたり、うまいこと共通化できる所はしてある方が
バグの可能性が減って価値が上がるよ。 >>482
真ん中じゃないじゃん。
モデルはデータに紐付くもので、データの入口と考える。
もちろんこれが唯一の正解じゃないから、本来のMVCがとかお前のMVCがどうとかは知らん。 >>475
実際に書いて試した事ないでしょ?
やったらわかるけどartisanコマンドの時にどうすんのこれってなるから
一つにまとめる事がダメって訳じゃないけど分岐していくやり方は
見通し悪くなるってのと分岐が増えると結合度が上がってどんどん変更に弱くなると思ってる >>484
ごめん、頭の悪い子と話すの疲れるんだけどさ、
お前が作ってるの、一体何だ? バラの部品を複数作ってるのか?
何でアプリ全体で見ないで部品単位で見てるんだよ?
空港降りたら検疫して、駅に入る前に検疫して、電車に乗る前に検疫して、県境越えたら検疫して、電車に乗る前に検疫して、バスに乗る前に検疫して、宿に入る前に検疫して…
なんてやると思うか? 国に入ってきた時に一回だけだろ。
最初に1回きっちり検疫すればその後、どんなところを通ろうが関係ないだろ。効率って物を考えろよ。
というか、モデルはデータの入り口って、本物のバカなの?
RDBに対してデータを“出力”する場所だろ。だからエスケープが必要になる。
お前マジで、安全なアプリケーションの作り方とか、全く勉強してないだろ? DBがモデルに一番近いからそこでバリデーションするって言い張る人に聞きたいんだけど
例えば携帯電話番号の入力フォームでは以下の入力を受け付ける
「09012341234」
「090-1234-1234」
「09001231234」
「090−0123−1234」
DBに格納すれる値は正規化して以下の通り
「09012341234」
って要件を実現するのにどうやってるの?
先に正規化してからバリデーションしてるわけ? >>484
あと、もう一個言うとさ、
おまえのアプリではModelは常に1つなの?
Modelファイルが複数ある場合、どこでバリデーションするって言ってる?
流石に、各Modelでそれぞれバリデーションするとか言わないだろ?
じゃあ、どこ? 復数のModelの前?
そこはModelじゃなくて、つまりControllerじゃん。 >>488
自分で答え書いてるじゃん
ユーザーの入力とDBに格納する形式が違うなら、
先にユーザーの入力値を整形した上でバリデーションしたらいいだけ ちなみに、ネットの多数派の意見はどうなんだい?と思って検索してみて最初に出てきたのが、これで、
心の底から脱力した。
http://blog.64p.org/entry/2013/11/26/131914
『言いたいことは「結局、昔はサーバサイドで懇切丁寧なエラーメッセージを出すためにModelではなくControllerでバリデーションに関する知識が必要だったけど 今はJavaScriptでやるから不要だよね111」ってことです。』
そういう事してるから、フロントとサーバーサイドでバリデーションルールが違うみたいな事が発生してくるんだろ。 実際、俺がいじるわけじゃないからどこでバリデーションしようとそいつの勝手ではあるんだけどさ、
どこでも同じバリデーションが使えるような実装じゃないと、メンテ大変だろ?
で、この話って元々なんだったんだっけ? ageてるやつの能書きがキモいって話題
引きこもりは出てくんなよ バリデーションはデータの受け渡しが発生するたびに行う
1.入力時にJavascriptでチェック
2.フォームがPOSTされるときにバックエンド側でチェック
3.バッチ処理が走るときにチェック
4.ビジネスロジックが走るときにチェック
5.CSVとして出力するときにチェック
少なくとも入力されてからCSVとして出力されるまで5回はチェックされる
なんらかのロジックが走るたびにチェックされるから実際は何十回もする >>491
いやおかしいだろ
そしたらパスワードもハッシュしてからバリデーションすんのか? >>488
バリデーションルールを4つ書いて、saveをオーバーライドして文字列加工でよくない? >>494
まーた頭おかしいの湧いてきたし。
内容に関係ないことで頭に血を上らせて、おまえ、脳に障害でもあんのか? >>489
>>481にコードも書いたからよく見てくれ
俺が提案してるのは、コントローラー(FormRequestでもいいけど)でバリデーションする際、ルールはモデルに書いてあるのを参照するって事だ
Laravel公式のやり方のほんの一箇所変えてるだけなんだよ
その方が使い回しとかメンテしやすくていいじゃない?って言ってる >>495
2と3しかやらないなあ
1はうまいことやればユーザビリティが上がる可能性はあるけど、大抵そこまでやらんな
4と5はよくわからん、出力時にバリデーションてどういうことだ?整形じゃなくて? dbもformも通さないバリデーションはどうやってチェックしたら良いですか? フロントのバリデーションはユーザーの為
バックのバリデーションはシステムの為 >>501
> 出力時にバリデーションてどういうことだ?整形じゃなくて?
そいつ、バリデーションの意味わかってねぇんだろ。
CSV用のフォーマットに変えるって事なら、それ、バリデーションじゃねぇよ。 >>496
モデルバリデーション厨はガイジだから触らないほうがいいぞ システム屋さんは結合テスト、システムテストで普通にシステムからのみDBデータ作るけど
システム屋さん以外の人は手動でデータを入れたり更新削除したりしちゃう。怖い怖い >>499
所詮個人の感想じゃん。手間が増えることに変わり無いし、その実装のルールをチームで共有して維持しなくてはならなくなる点は全く考えてないのでは?
なぜそこまでmodelでのバリデーションに拘るのか謎。他のフレームワーク検討したら? 普通のシステム環境ならインフラ担当が居て環境が分けられてて本番DBを直接手動では使えなくしてる。
システム屋さん以外の人が安く作るとそうはできない ここ本当にlaravelスレなの?
Dependency injection関連のワードが出てこないんだけど >>517
コンストラクタインジェクションを使ってサービスを渡しているけど、状況に応じて使い分けはしてないな さすがphpはエンジニアの中でも底辺が好んで使うと言われるだけのことはある お前らこんな議論白熱するならLaravelのgithubリポジトリで
バッチ処理時にバリデーションについてissue挙げてみたら? アホの上にこういう周回遅れの奴が出て来るから収拾付かんのだよな
過去に出て却下されてるって何度もスレで言及されてるやん >>521
零細と低収入しか居ないしね
大企業向けワクチン接種の枠の人も多分ここには居ない >>525
お前と一緒にしないでくれ
俺は大企業向けワクチン接種の対象だわ >>525
>>371ね。俺と上のやつで少なくとも2人は居るが? 俺は医療関係者枠で打っちゃったよ。丸2日パソコン打つ気になれなかったよ。 SESSION_LIFETIMEってlast_activityからの時間ですよね?
例えば120分の設定だった場合、ログインから60分の時点でページ遷移するとそこから120分非アクティブでセッション破棄されてログアウトされる
これをログインからの時間にすることはできますか
120分の設定でログインから60分の時点でページ遷移してもそこから60分(ログインから120分)非アクティブでセッション破棄されてログアウトされる
というようにしたいです >>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. で作ったミドルウェアのクラス名を入れる。
以上
多分動くと思う
動かしてないけど やっぱり零細で簡単なシステム作っているやつより
大手で複雑なシステム作ってるほうが技術力あるんだなぁ >>539
大手勤務だからというよりは彼が一握りの天才だからだと思う ここの低レベルな争いの空気を一瞬で変えてしまったww このスレに本当に天才がいれば、あの延々続いたくだらない論争を一発論破してくれたんだろうか 大手勤務様の技術力の高さに驚愕
簡単な仕様をいっただけで構築手順をレスしてくれるとか最高すぎませんか? コテ付けてまで自演とか自己開示欲はんぱねえなw
さすが大手勤務だ、俺たち零細には真似できねーw >>530の質問に具体的な実装を提示できなかった時点でお前らの負けだよ これだからワッチョイなしはやめられない
ほんと楽しいわ 別の板に立てたバカがいたけどそういうスレは誰も来ないからなw view側でcontrollerのメソッドを利用したいんですが
どういう書き方をすればいいでしょうか?
初心者ですいませんがどなたか教えて下さい ちょっと考えても分からんのなら、
そもそもその手法が間違ってると思った方が良いかもね >>554
自分自身であるthisをviewに渡せばview側でcontrollerのメソッドを実行可能です その発想は思いつきませんでした。
確かにcontroller毎viewに渡したらview側でcontrollerのメソッドを実行できました。
教えていただきありがとうございました。 >>554
それはMVCとかけ離れてるので設計がおかしいです
その呼びたいメソッドがviewの仕事をしているんじゃないですか?
ちゃんと見直してください 言われてみればMVCじゃないですね
viewのメソッドにできないか考えてみます
教えていただきありがとうございました 前回敬語使ってなかったろ
もっとうまく成り済ませよ >>561
突然Laravelスレでなんで敬語の話を? 大手勤務の人はやっぱり違うな ちゃんと色々な質問に適切にこたえてくれるし
このスレの零細起業の連中とは格が違うね CSRF対策について質問があります。
特定のページだけCSRF対策をする方法はあるのでしょうか? 大手勤務さんは自分が書いた質問以外には答えられません >>530
これに対してのやり方が
>>533
って流れって釣りだよな?
この質問って120分で強制ログアウトさせたいって話だよね?
セッションでどうにかしようとしてる時点で解答ありきの質問じゃね?
まあ大芋勤務してるとベストプラクティスなのかもしれんが どう見ても自演なんだけどさ、
自分が大手で働いてるのを自演までして自慢するのはさすがに草 まぁ大手君の中では強制ログアウトをセッションでやるのがベストプラクティスなんじゃね?
俺はそんな面倒なやり方しないけど >>569
ではどのように実装するかご高説願おうじゃないか >>570
セッションなんか使用せずDBにログイン時間を保存しておけばいいだろ >>570
大手勤務君、名無しでイライラしながらレスしてて草 そもそも最終ログイン時刻を残さないユーザー認証なんてガバガバすぎじゃ…
basic認証でログインするならあるかもしれないが >>571
俺もこっちが単純で分かりやすい気がするわ
わざわざkernel書き換えるとか大袈裟なんだよね 大芋勤務君「ミドルウェアを作って〜、Kernelを書き換えて〜、以上。動かしてはない(ドヤw自演もしたろw」
謎の名無し「セッション使わないでDBにログイン時間保存すればいいだけ」
この差よ… 社員数20人って大手とは言わないと思うんだけどこのスレでは大手扱いなの? >>574
この方法もミドルウェア作ってカーネルへの登録も必要じゃね? >>579
rootMiddlewareに追加しないで
controllerかrouteでやるって事でしょ >>580
コントローラーで認証チェックはちょっと遅すぎるかな…
ルートだとセッション始まってないからユーザーIDの特定無理じゃない? >>582
認証用ミドルウェアってこんな感じの実装だと思うんだけど
作ったやつの部分に例のミドルウェアを入れとくイメージ
Route::group(['middleware' => ['auth:sanctum', 'verified','作ったやつ'] ],function (Router $router ){
$router->get('users' , 'コントローラー' )->name('users');
}) ; あ、前提条件としてroutes/web.phpに書いてあるから
webのミドルウェアグループは読み込んでる前提ね >>580
rootMiddlewareって何だ
routeMiddlewareのこと? >>585
あ。。。ごめん普通に
間違えてたrouteMiddleware
この間違いはあかんね >>583も結局routeMiddlewareへの登録必要(Kernelを書き換える)なのでは
そもそもなぜKernel書き換えたくないのか知らんけど >>587
別に>>574ここでKernelに〜って言いだしたの俺じゃないんだけどね
でもサービスとして分離する事考えるとサービスプロバイダでaliasの登録するか
['auth:sanctum', 'verified',\Package\Name\Middleware\作ったヤツ::class]
的なやり方しちゃう事が多いかも ホントの大手ならlaravelなんか使わないで独自FW作ってるでしょ DBにログイン時間保存してどうすんだ?毎アクセスごとにチェックして2時間経ったらログインに飛ばすの?
一定時間毎にログアウトさせて途中の作業パアにしてくれるクソシステムあるけどあれお前らが作ってんのか 保険屋さんとかデータ系とかJavaで自前で作ってる現場多かったよ >>592
それはさすがに知らねーよ
大手勤務の俺が120分でログアウトする仕組みで無双した件的なラノベの矛盾点が論点なんだから 結局DBの時間見るとのセッション期限を更新しないのはどっちが良いんだよ どっちでも良いだろ
どうせ大してアクセスのないサイトだろ このスレの総意としては>>534のやり方を推奨だよ スレの総意おじさんもずっとこのスレいるよな
的外れなことばっかり言う お前ら本当に暇なんだな
大手だの零細以前にまず働いてんのか? 半分くらいは実際に仕事で使ってそうだけど
残り半分は趣味とかやろな アプリ側で時間管理して超過したら強制ログアウトでええやろ >>596
ロードバランサ使ったりAWSで複数インスタンス使ってるような構成だとDBでセッション管理してると思う
だから今回のような疑問が出てくる時点でおそらくシステム構成を理解できてない
もしくは既存システムをいじりたくないのであれば別途監視アプリを作って常駐させる
C言語使えるならこっちのほうが楽かもね >>589
独自FW作るのはLaravel以前からやってる案件
cakeの頃に独自FW作るのが流行った
codeigniterに皮かぶせて独自FWっていってるのもあったな
とにかく一世代前の話
昔からやってる人は慣れてる独自FWで揃えたいっていうのもあるだろう
会社として複数FWを利用すると教育コストがかかっちゃうから一度採用したFWは変えられないという都合もある
ただ、新陳代謝が一巡してるであろう今の時期になってもまだ独自FWのままっていうのは
特殊な事情があるのか、もしくは開発者が入れ替わってない(高齢化)のか、もしくは開発者のレベルが低すぎて
言われたままやる人しかおらずもはやFW入れ替えなんていうことをするパワーがないのだろう
独自FWっていうのは下請け企業が他社に仕事を取られない為の難読化テクニックの一つ >>606
DBってリレーショナルDBのことか?
そんなとこでセッション管理しないだろ
今までの現場はほぼRedisだわ >>608
どっちでもいいんちゃう?
DBでも大して遅くはならんやろ >>608
インフラ設計したことある?IaaSとかで売上の立たない業務システム作るときは、月額のインフラコスト少しでも減らしたいからKVSじゃなくてDB使うケースはありえるでしょ。
わざわざセッションドライバやキャッシュドライバにDBが用意されているのはなぜか考えような。 過疎システムなら別にRDBで管理しようがRedisで管理しようがあんま変わらないけど、
ロードバランサで負荷分散が必要になる規模だとRDBでセッション管理するのは非効率極まりないね RedisってNoSQLだし、そりゃRDBよりも高速だよね > ロードバランサ使ったりAWSで複数インスタンス使ってるような構成だとDBでセッション管理してると思う
↓
> IaaSとかで売上の立たない業務システム作るときは、月額のインフラコスト少しでも減らしたいからKVSじゃなくてDB使うケースはありえるでしょ。 どうせDBアクセスしまくるんだからセッション管理分が1、2回ぐらい増えても大してレスポンス変わらんやろ >>613
いやさすがに別人だろ…
同一人物だったら笑うが、ワッチョイ無いのが悔やまれるな >>607
自前FWでドキュメントもある所もあった。自前FWを作ったコストを相殺できるくらいには各種案件に使おうとしてるようだった >>616
独自FWだと下請けに出すときに困るんだよ
というか出された下請けが困る
つまりワイが困る 独自FWはバージョン管理で破綻しやすい
パブリックなFWだと案件のほうをあわせるしかない
しかし、独自FWだとFWを案件にあわせていく
案件の数だけ枝がわかれた独自FWなんてただの悪夢だ >>614
誰もレスポンス速度のこと言ってないよ
安いRedisを使うか高いRDBを使うか、コストの話だよ >>613
何が言いたいのか詳しく。ちなみに>>606は俺じゃないけどな。 業務に使ってるRDBMSを使いまわしたってかまわないし
セッション用にNOSQLを使う場合もあるだろう
細かい条件を決めてベストを尽くすのがおまえらの仕事
ここで何も聞かずにベストプラクティスが決まるようならおまえらの仕事は不要だよ
予算ないならRDBMS1台とロードバランサー1台、インスタンス1台の構成で
アクセス増えてきたら動的にインスタンス起動ってところじゃないのかな
本当に金かけたくないならインスタンス1台に全盛りでスケーラビリティなしだ ロードバランサーの用途を負荷分散のためだけとか思ってる奴が何人か居るんだな。冗長化必須の場合もロードバランサーで複数のインスタンス使うよ。
業務システムだと負荷は無くても落としたらしばかれるからそういう構成になる。まぁ零細だと多少落ちてもそんなもんだって許されるのかもしれないが。 >>619
独自FWの場合、composerは使わない
独自FWのメリットはソースコードを非公開にできることが大きい
公開することによって脆弱性が見つかる場合もあるから いい加減独自FWなんて負債以外の何者にもならないって、皆痛い目して学んどるやろ
まあ非独自にしたって100%解決はせんけど >>624
OSSの思想と真逆のアプローチをとるんだな
公開して皆で脆弱性を見つけて修正できるという思想、
非公開にすれば脆弱性を見つけるのが難しくなるという思想。
日本らしいといえば日本らしいな。 毎日のようにSQLインジェクションくさいアクセスログを見ている身としては、非公開FWのほうが安全てのは思考停止すぎるよとだけ言っておく。 composerでどうにかなる程度の枝しか作ってないと思ってるのか?
案件ごとに独自進化する地獄を見せつけてやりたい
案件バージョンとFWバージョンのグリッドを見て涙するがいい 自前FW作ってる所はVPCで業務に使ってるとかそんなのだった気がする。確かに案件毎の別バージョンは地獄っぽかった >>627
それ言うほど問題か?SQLインジェクションなんて真っ先に対策するじゃん
XSSとかCSRFとかある程度の脆弱性対策してから開発するだろ アメリカ人「OSSにすれば脆弱性が見つかる」
日本人「OSSにすれば脆弱性が見つかる」 >>633
その対策がガバガバだったらどうするの? >>635
そんなレベルのやつはOSSフレームワーク使っても脆弱なシステムしか作れんよ
根っこが理解できてないんだから >>633
そういうことではなくて、独自だろうが何だろうが、外に出す以上は一定の脅威に晒されることに変わりがなく、コードから脆弱性を見つけられないという点は何ら安全を保証するものでもないし、公開しているFWより安全であることの証明にもならないって指摘。 Web公開したらまっさきに攻撃してくるのがトレンドマイクロ 20年ぐらい前のペーペーの頃、SQLインジェクション(実際には実行できない)があるって
見知らぬ奴がわざわざお問合せフォームから連絡してきたっけ
当時は不正アクセス防止法とかないから、攻撃しようと思えばできたろうけど
単に教えてくるって良いやつだったんだな >>633
一般的な会社は画面に「データを返してほしかったらビットコインをよこせ(意訳)」って表示されてから対策をはじめるんだよ >>636
さすがにそれは違うだろ
少なくともオレオレFWで作るよりははるかに安全 >>634
海外の有名FWと公開したところで誰も使わないであろう弊社FWを比較するのはちょっと違和感を感じる >>638
githubを巡回してるロボいるよな
あれAWS社は有名だけどあとはどこが巡回してるんだ LaravelでFWの素の状態を知ってから他のFWを触ると面白いよね。
あーこの部分をこうしてるんだーってFW制作者の工夫が分かるようになる。
そんでもってやっぱSymfonyとCakeは勉強になるチューニングしてあって評価の高さも納得できる。 cakeはなぜ廃れたんだ?
オフィシャルサイトは良さげなのに Cakeと比べてどう使いやすいの?速度は遅いみたいだけど(キャッシュ無しで >>650
cakeとの比較だと
・認証周りの機能があらかじめ用意されている
・テンプレートエンジンがあらかじめ用意されている
・フロントエンド周りの環境構築が楽ちん
・ファーストパーティとサードパーティに豊富な拡張パッケージが用意されている
・クリーンアーキテクチャ的な拡張がしやすい
・redisなどの外部システムとの連携の設定が簡単
ぐらいかな。 >>651
ご丁寧にありがとうございます。
Symfonyと比べるとどのような点が使いやすいですか? >>651
ほとんどCakeにも用意されてないか? 自分で調べもせず楽に知ろうとする教えて君うざいよね >>654
どうした大手勤務君
自分が答えられない質問に他の人が答えているのを見て嫉妬しちゃったの? cakeは古臭く感じるんだよ
色々用意されていて自由度もそれなりにあるLaravelを使うと他のフレームワークを使う気になれなくなる
homesteadとか環境面も色々あるし便利だなと
個人的な感想だけどね >>653
そうなの?なら>>651のうちcakePHPでも十分同等と言える点はどれ? LaravelがなかったらCake使い続けてたと思う
Cakeは一般ユーザーとadminを認証し分けるのや別のテンプレートエンジン入れたりするのが面倒臭かった
誰かが作ったプラグインも色々あったがメンテされなくなったら終わりだし LaravelのスレでCakeの話するの違うと思う まぁ大昔は日本で流行っていた訳だし比較のために出すのは別に問題ない気がする 大手勤務君ってLaravelにすごい詳しいけどどうすればここまで詳しく詳しく詳しく 結局バリデーションはモデルでやったほうがベストプラクティスということで決着がついたの? Laravelでviewをbladeではなくtwigに変更するライブラリってありますか?
bladeは使っていて違和感を覚えるので変えたいです >>662
違う
バッチ処理が必要なアプリ→モデルでバリデーションがベストプラクティス
バッチ処理が必要ないアプリ→FormRequestでバリデーションがベストプラクティス
アプリの構成によってベストプラクティスが変わるという結論だよ すみません教えてください laravelでプロジェクトを作成すると
プロジェクト直下にartisanというファイルがありこれを使ってコントローラ生成したりなど色々行うと思います。
本番環境にアプリを配置する場合このartisanというファイルは削除したほうがいいのでしょうか?
WEBブラウザからartisanファイルが実行されて変なことにならないか心配しています >>667
そんなレベルでLaravel使うことのほうが心配だよ すみません。別FWだと本番環境にモードを設定するコマンドが用意されており
そのコマンドを実行すると開発にしか使わないようなライブラリや開発専用コマンドなどのファイルを
自動削除してくれていたので今まで気にしたことはありませんでした。
laravelだとそのようなコマンドがないようだったので本番リリース時にどこまで削除すればいいのか
わからなくなって質問させていただきました。 普通はプロジェクトディレクトリ/publicがドキュメントルートなはずだから実行されないと思うけど
実際WEBサーバの脆弱性ついたらドキュメントルートより上にアクセスして実行できるのかな? 今開発しているアプリがテストデータ程度だと普通なんだけど本番データに近い件数入れたら
なんか一覧を表示する速度が遅いなって思ってたら数年ぶりにN+1を発生させてしまっていたぜ
N+1なんて回避して当然だから自分やらかしていることに気付かず調べてから判明するまで6時間費やした eloquentのwithを知らない又は使ったことが無い人は案外いるのかな LaravelのEloquentにはupdateメソッドとsaveメソッドがありますが
どちらを使うのが一般的なんですか? >>675
動作が違うので必要な場面で必要な方を使うのが一般的です 基本的にはモデルからfind()なりwhere()->first()なり1件取ってきてからsave()かと
複数行が対象とかで無い限りupdate()使ったりしない気がする 相変わらず、ワケワカラン実装してんなぁ…。
作ってる奴がアホなんだろうなぁ…。 >>678
ワケワカランてどういうところがそう思ったのか気になるなー。 saveを使う場合は
$user->fill($request->validated())->save()
というような感じで使えばいいですか? ずっとjavascriptマンやっていて再びphpに戻ってきたらなんかいろいろ苦しい >>680
その使い方だとupdateでも同じでしょ?
自分はfillした後に何か処理挟むならsave、挟まないならupdateって使い分けしてる
あとコントローラー内限定だよね?その書き方 >>684
>>683
「updateでも同じ」って部分を言ってるなら多分勘違いしてるぞ >あとコントローラー内限定だよね?その書き方
はぁ? 場所によって書き方変わんの?
相変わらず、ワケワカラン実装してんなぁ…。
作ってる奴がアホなんだろうなぁ…。 >>686
お前はせめてPHP初心者卒業してからコメントしろよ
アホなんだからw >>686
横だけど、requestオブジェクトからバリデートした値だけを受け取っている部分があるから、controller限定かどうか尋ねてるってことでしょ。Laravelのこと知らないなら黙ってたほうがいいよ。どうせお前bigintおじさんでしょ? Eloquentの更新だったらupdateを使うのが普通でしょ
あえてsaveを使う理由はない >>690
そうなんだよね、結局updateの中身だってfillしてsaveしてるだけだから
あえて->save()分のコード量増やす意味ないと思う
それよりも震えるのはプロパティに値セットしてsaveしてる人ら >>691
何故?w
そっちが普通やろ
fill()とか常に使っている方が頭おかしい このスレ見てるとphp使いとペチパーと揶揄される理由が分かるね そうか?低レベルなエンジニアはどの言語にも一定いると思うぞ。 >>692
前提としてfillableかguardedをModelに設定してるよね
その値って更新可能なカラム名って感じがするけど
そうじゃなくてcreateとかupdateとかfillの引数で入力される連想配列が保存可能なカラムを定義してるのよ
なのでfillとかを使わないでセットした値はその影響を受けないのね
例えば更新なんかしちゃダメなprimaryKeyの値とかも変更可能なの
$user->id = 10 ;
$user->save();
ここまで書いたら分かると思うけど
こういう実装方法って重大なセキュリティホールの要因になりえるので
気を付けようねって意味を含めて「震える」って書いたの
別に俺はプロパティでセットしてsave呼び出してるからと言って頭おかしいとは思わんよ
上に書いた理由を知らなかったってだけだと思うし
実際、俺も使い始めの時プロパティにセットする実装してたから
こういった理由を知った上でそれでもプロパティで実装する方法を選択してるなら頭おかしいって思っちゃうかな え、
$user->id = 10 ;
なんて誰が書くの?君の同僚? >>697
申し訳ない、俺の例がわかりにくかったみたいだね
こんな例が考えられるけどどうかな?
たとえば悪意のあるユーザーがリクエストでis_adminパラメータを送信して
そのパラメーターがモデルのcreateメソッドに渡されてユーザーが自分自身を管理者に格上げする
みたいなケースが考えられるでしょ?
あと、少し慣れてくるとプロパティにセットする事が手間になってきて
foreachで回して値をセットしたりしがち
そうなると完全にやばいよね > foreachで回して値をセットしたりしがち
すまん、俺はそんな場面に出くわしたことないが、君の職場ではしがちなのかい? Eloquent式は受け取ったリクエストのタイプによって保存する内容が大幅に違う場合とかには重宝するけどね >>696
そもそもマスアサインメント知らないLaravel初心者にそんな具体的な説明しても無駄では? idって基本的にauto_increment入れる為のものだから
$user = User::find($request['id']);
とはやっても
$user->idの値を書き換えるとかちょっとあり得ん 例にある意味予約語みたいなワードを書くとか根本的に常識がない 例だからとかいって言い訳しているけど
idって基本的にauto_increment入れる為のものだから
$user = User::find($request['id']);
とはやっても
$user->idの値を書き換えるとかちょっとあり得ん >>704
どんな時でも使うべきだぞ。じゃないとリクエストからモデルに渡してよいフィールドが、コントローラー側で決定されるメソッドが生まれてしまうぞ。 fillを必ず使え代入は危ないって言ってる人は、fillableじゃない値をどうやって入れるの? このスレ見てるとレベル低い奴が何故か威張っていて、これが今の日本のIT技術が低い理由、そして国が衰えてる理由に繋がってる気がする。
要は反知性主義なんだよね。真面目に科学的に考える奴のことを軽視している。
これって地動説否定とかトランプ支持者など外国でも見られた傾向だけど、日本は特にひどいね。教育が悪いんだろうか。 IDのないスレをいつまで本スレとして使うつもりなのか? >>712
質問を質問で返すなよ お砂糖が知れるぞ お前ら>>696の例に対して文句があるんだったら自分が例を提示しろよ >>691
fillを必ず使え代入は危ないって言ってる人は、fillableじゃない値をどうやって入れるの? >>719
いやforceFillというメソッドは分かるよ。
それを使えば解決するよって回答でいいのかな? >>720
まず何を解決したいのかな?
それを聞かないで全て解決するなんて事は言えない
できれば具体例上げて欲しい
状況によって使うメソッドや方法も変えてるから 逆にコントローラーでfillableじゃない値をセットしている奴は、コントローラーの責務をどう規定しているのか詳しく聞いてみたい。 >>720
質問しといて申し訳ないけど
俺もfill使ってない事思い出したわ、すまんな
プロパティに入れてfillableガン無視で最後saveしてる人だったって事にしといてください
ここで言い争いしてコスト使うのが1番頭おかしいってふと気付いたわ laravelはなんでN+1問題が発生するんですか?
N+1って有名な問題だからFW設計時にそれを強制的にFW側で回避するようにできなかったのかな
いまだとwithとか明示的に使わないと回避できないよね? N+1問題を回避できるFWなんてないし、理論上つくれない >>723
いや別に喧嘩腰になったつもりは無くて、単なる興味から聞きたかっただけなんだけどな。
答えたくないなら残念。
>>721
例を挙げるならユーザーのパスワードのセットする時とかだね。 >>725
CodeIgniter4はFW側で回避してるぞ >>725
そうなんですか?となるとやっぱりFWを使う人側で回避しないといけないというわけですね >>726
だからfillableじゃない値はforceFill使えよ
プロパティに直接セットするとか素人ですら珍しいぞ N+1をFW側で回避することは非常に難しいですよ
その実装をできた人は世界中で表彰されるだろうと言われるぐらい難しいことなんです >>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 を使うとこの問題を克服できるのでしょうか? シーダーにforceFill使うならわかるけど
他の用途では使わないほうがいい気がする
laravelは入門程度だから実際に業務で使っている人の意見聞きたいな >>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 >>733
読み返してみたのですが
> コントローラではない所で更新
この表現は適切じゃなかったですね
> 独立した処理として更新
が適切かもしれません N+1問題、Laravel8の最新バージョンだと回避できるようになってる。N+1になる処理を実行しようとすると例外を発生させられるようになった。 >>735
マジで?それはドキュメントのどこに書いてあるの? >>725
速攻論破されて草 >>738-740の内容知らなかったのかな? 俺はまだ論破されていない >>738-740はN+1の回避策を提示しただけであって
FW側で回避できるという証明にはならない >>598
いや、別に論破とかどうでも良いんだが。N+1の実装したら例外出て便利になったっていう情報知らないぽいから教えてあげたかっただけ。
あとFW側で回避したいなら、modelのwithプロパティ使っとけば確実だと思うけどね。ただこれ使うと余計なテーブルアクセス増えてしまいがちだから、不要な時はwithoutとかのメソッド入れなきゃダメで、それはそれでだるい。 だからモハメドの話をちゃんと聞けって
Laravel使っててモハメドの話聞いてないとかありえないぞ
https://youtu.be/213aEudaumk N+1問題とか、何やってんだろうなぁって思ったら
エロなんたらがActiveRecord型だからっつう事か?
アホな事やってんなぁ…。
ActiveRecord型はJOINが表現しずらいから使わんのよね。
無駄な努力をご苦労さん。 近頃のFWはだいたいがActiveRecord型だし、特に無駄な努力なんてしてないけどな?DataMapper型しか使ったことないアンチオートインクリメントおじさんは、いつまでLaravelスレで粘着するのかね? ActiveRecord型は表現が冗長でミスを誘引しやすい
特に初心者にとっては記述する動機になりづらく成長の阻害要因
JOINで書くよりN+1で書いたほうが表現がスマートなのが問題なんだよ Laravel以前はCakeしか使ったことないからN+1なんて知らんかったわ
ここ数日初めてこのスレで勉強になった JOINで書くってDBファサードからjsonメソッド使って書くって事?
生のSQLでjson使って書くって事? ベテランRailsエンジニアたちがN+1でハマってるのみて何をもがいているのか不明だった
そしたらLaravelでもハマる奴らも続出していたんだな いや、ベテランはハマらないぞ。さすがに。DBアクセスのロジック書いたら、普通に生成されるSQL確認するから、そこで気づく。 あとjoinガーて言ってる人、雑魚はinner joinとouter joinを使い分けられないという点に気づいていないと思う。 生SQLとかDBの仕組み的なことを知らないとハマるんだろうね
たしかにFWがうまくやってくれるもんだと思ってたらそこまで考えない
SQLを作るための仕組みっていうのを知ってたら中間出力であるSQLはどうなってるのか気になるんだろうけど
意識しなくて済むような仕組みだからね >>750
DataMapper型でクエリビルディングして書くって事
正直、Railsで失敗してんのに敢えてActiveRecord型を選ぶとか、頭おかしいとしか思えん。
だからプライマリキーはidのオートインクリメントです、
復号プライマリキーは設定できません、みたいなトチ狂った設計になっちゃうんだよ。
10年以上、全く成長しないよな世間の奴らって。 なんだこりゃ? 脳みそ腐ってんじゃね? こいつ
753nobodyさん2021/06/21(月) 11:37:18.75ID:???
あとjoinガーて言ってる人、雑魚はinner joinとouter joinを使い分けられないという点に気づいていないと思う。 いや、お前らがActiveRecord型しか知らないんだろwww
DaoもActiveRecordも同じ『JOINがたマトモに表現出来ません』問題で失敗してんのに、
なんで敢えてActiveRecord型選んじゃうっすか?www
学習しましょうよ、せんぱーいw
747nobodyさん2021/06/21(月) 10:19:15.52ID:???
近頃のFWはだいたいがActiveRecord型だし、特に無駄な努力なんてしてないけどな?DataMapper型しか使ったことないアンチオートインクリメントおじさんは、いつまでLaravelスレで粘着するのかね? アンチオートインクリメントおじさんが荒ぶってらっしゃる やべぇ、流石に草生えまくり過ぎて、誤字・誤変換だらけになってるし。 アホはトレードオフって言葉を知らないので、ある側面だけをみてActiveRecordは失敗とか言っちゃうんだよなー。
そういえば前に、ActiveRecord自体知らなくて、1テーブル1モデルなんてありえねーとか言ってた恥ずかしい奴がいたな。 >>760
何言ってんだろうね、このバカは相変わらず。
じゃ、他のORMに比べて、他にどんなメリットがある?
お前、マジでActiveRecordしか知らないんじゃん。 >>760
ってか、『1テーブル1モデル』って、なんすか?www
もしかして『1テーブル1クラス』の間違いっすか?www わざわざDataMapper型に触れておいたのにこれだもんなぁ。アンチオートイクリメントおじさんの頭の悪さは相変わらずで。自覚ないからつい人を見下しちゃう癖もそのままかー。可哀想。 前スレ。ブーメラン乙。
>>937
人の話聞いてんのかな? ModelはDBにアクセスする物じゃねぇんだから、
Modelとテーブルが1対1なわけねーーーーーーーだらーーーーーーーーーー!
937nobodyさん2021/05/23(日) 18:01:50.48ID:???
他のテーブルとのjoin操作までModelに入れるのはなんか違う気がするんだけどその辺どうしてるの? オートインクリメントおじさん、書きっぷりが独特だからすぐわかる >>764
何いってんだこのノータリンは…。日本語読めないのか…orz
それを『1テーブル1モデルなんてありえねー』って読むのか、バカって。
「1つのモデルで取り扱うのが1テーブルだけだなんてあり得ない」って書いてあるんだぞ?
なんでテーブルが主語になってんだよ?
脳みそ腐りすぎだろ、かんべんしてくれよ。
というか、937が
「他のテーブルとのjoin操作までModelに入れるのは」
って言ってんだぞ、そっちをつっこめよ。
そのバカ、『Model=DBにアクセスする場所』って思ってるって事だぞ?
なわけねぇだろ。
お前らって、本当にプロのエンジニアなの? 素人だろ? >>765
はいはい、凄い凄い。
テンプレエンジンが独自Bladeです、の時点で『マジか!?』と思って避けてたけど、
Railsと同じ失敗するとか、2度めの『マジか!?』だな。
ほんと、学習しねぇよなぁ…。 >>763
> わざわざDataMapper型に触れておいたのにこれだもんなぁ。
聞かれた事に答えずに遁走っと。
尋問内容:
じゃ、他のORMに比べて、他にどんなメリットがある?
お前、マジでActiveRecordしか知らないんじゃん。 というか、これが全てだろ。
お前ら、マジで、いつまでおんなじ所ぐるぐる回ってんだよって話。
751nobodyさん2021/06/21(月) 11:30:35.35ID:???
ベテランRailsエンジニアたちがN+1でハマってるのみて何をもがいているのか不明だった
そしたらLaravelでもハマる奴らも続出していたんだな アンチオートインクリメントおじさん、きっと仕事で誰とも組んでもらえなくて、チーム開発したことも無いんだろうな・・・。 結局、Laravel使うプロジェクトって、
取って出しの簡単な物しか作ってないって事なんだよな。
業務システムみたいに復数テーブルと都合させて〜みたいな処理はやらない。
そういうのしかやった事ない奴がLaravelまんせーしてる。
まぁ、そういう簡単な用途ならいいんじゃねぇの? もう、呆れ果てて誤変換しまくり。
“複数テーブル突合させて〜”。 別に何のORMが使いやすいとか
DataMapperがとかActiveRecordがどうのとかそういうのは個人の趣味趣向だから好きにしてって思うんだけど
laravelで使う上で色々なライブラリやFW自体がeloquentを使う前提で作られてるのに
それを外してまで他の仕組み導入するメリットってあるのかな? クエリビルダ知らずにドヤってて、見てるこっちが恥ずかしいわ。 laravelに別のORMを導入した時点でメリットがあるのはプロジェクトじゃなくて、自分になるんじゃない?
その証拠に規模や用途の話が全く出てきてないよね?
全てのプロジェクトに対してのベストプラクティスが一つならどっちがいいなんて議論にならないはずよね そういうわけでN+1くらい我慢しろ
これが不具合というわけでもないんだし 773と774で言ってる事背反してんのに>>774って頭悪いよなぁ。毎度こんな感じだけど。
クエリビルダ知らんってのもどっから出てきたんだよって話しだし、
あったらなんだよ、それで解決すんのか?、って話しだし、
アホ過ぎて頭痛くなってくる。
こういう馬鹿って、来月あたりにN+1にどっ嵌って頭かかえてそうな馬鹿さがある。 >>775
> その証拠に規模や用途の話が全く出てきてないよね?
どこに? 主語ちゃんと話そうぜ? >>777
中規模以上のプロジェクトだとeloquent禁止して、クエリビルダで開発してたりする。まぁ、Laravel使わないのにこのスレに居座る構ってちゃんには関係無い話か。 >>779
禁止w
マジで、何やってんのあなた達w うん?アーキテクチャを決める際にEloquentを使うか、クエリビルダを使うかの意思決定の話だぞ。
チーム開発において、好き勝手な実装を認めるわけには行かないってのは理解できるかい?
お前、アーキテクチャ設計とかチーム内の規約とか作った経験無いでしょ? えっとさ、併用、出来ないの? 禁止って。
どうしてそうなっちゃう? > お前、アーキテクチャ設計とかチーム内の規約とか作った経験無いでしょ?
論点ずれまくりだって事くらいは分かろうな? Laravelを採用するやつらは周りから嫌われていることを知ったほうがいい
わざわざ失敗したActiveRecordが実装されているFWを採用している時点で何も考えていないアホなのが丸わかり Laravel使ってるやつらって自分が楽するための簡単なツールとかそういう程度のアプリしか実装したことないだろ
実際の業務では複合主キーや複数テーブルなどの操作は当たり前だからな
それらをサポートしていないLaravelのようなFWを業務で使うことはない Laravelって複合主キーってできないの?
マイグレーションでは複合主キーできるよね >>783
ズレてるのはお前。そもそもLaravel使ったことないくせに、なぜこのスレに居るんだい? >>787
おー、恒例の論点ずらしっすか。
じゃ、敢えて乗ってやると、
ちまたの皆さまがまんせーするLaravelとやらが、どれほど成長したのか見て差し上げようと思って覗いてみたら、
『まだそんな事やってたんすか!!!!』という驚きと共に、
まんせーし続ける皆様を観察して正気なのか確かめる為です。
こんな感じで宜しいでしょうか? アプリケーション中心の設計ならEloquent、データベース中心の設計ならクエリビルダ使えるのがLaravelの良いところなんだが、まぁアホには理解できんだろう。 >>790
逆じゃない?アプリ中心ならクエリビルダ、DB中心ならEloquentだと思う 業務ロジックを込めるならSQL一発勝負のほうがシンプル オートインクリメント君って本当にbigintを枯渇させたのかな?
それともbigint知らないでintでオートインクリメントしてたのかな? >>791
ActiveRecord採用すると、DBの設計がアプリケーションに引きづられるって昔から指摘されてるよ。構ってちゃんが指摘する通り、複合キーも使えずサロゲートキー前提の実装になるしね。 intでも普通は枯渇しないやろw
多分そいつは何も知らないだけやと思う intで枯渇したのってTwitterのIDぐらいしか知らないな PHPのintは64bit
約900京まで扱える
世界の人口は78億人
どうやって枯渇したんだ? >>801
オートインクリメント君はbigint枯渇させてからオートインクリメントは危険と思うようになったらしいですよ >>790
速攻で否定されるアホw
あなたたち、一体何してるんすか?www >>797-800
これがLaravelerの実態 1. intで数年で破綻する設計を実際に見た
2. 有限な値をプライマリキーにするのはおかしい
こう言ったのを、
Laravelerは頭がおかしすぎるので足して2で割ってしまい、
『bigintを枯渇させた』という、謎ワードを勝手に作り出して興奮している。
本当に頭悪過ぎ。だから2021年にもなってN+1問題みたいな下等な事でワイワイやっている。
成長というものがかけらも見られない下等な人種の集まり。 あ! 今気づいた!
N+1問題って、『N isennizyuu 1 問題』だったんだ、
ちょーうけるwww >>790
で? 聞かれた事に答えないからもう一回聞くけど、
それ、併用できないんすか?www 書き方があちこちで違うと新規参画者の習熟時間が増える >>807
マジでその質問いる?趣味でしか開発したことないの?チーム開発で規約作ったことないの?てか、「なぜ」についてもすでに回答しているよ。日本語読めないのかい?アンチオートインおじさんは。 >>797-800
これがLaravelerの実態 PHPのintは64bit(64bit環境かつPHP7以降)
っていう話と、DBのintが何ビットかっていう話がごっちゃになってないか?
あと、有限なキーがダメって話が出てるけど
有限ではないキーなんて存在するんだろうか?
あとDBにはintは実装されてるけど使う人なんていなくて
実際はDECIMAL(NUMERIC)を使うでしょ >>812
補足すると、アンチオートイクリメントおじさんは、オートインクリメントだと有限な値を使うことになるからダメだってアホな主張をしてて、それで、は?bigintなら問題ないでしょて突っ込まれて、そのあと920京はunsignedだからプログラムで読めない!とか言って失笑を買ってた。 >>809
なんか、壊れたレコードみたいになってきたなw
で? 聞かれた事に答えないからもう一回聞くけど、
それ、併用できないんすか?www
答えると、なんか都合悪いんスカ?w >>812
>PHPのintは64bit(64bit環境かつPHP7以降)
>っていう話と、DBのintが何ビットかっていう話がごっちゃになってないか?
うん、お前らがね。
>あとDBにはintは実装されてるけど使う人なんていなくて
>実際はDECIMAL(NUMERIC)を使うでしょ
また、謎の言葉を吐き出したしw
Laravelerって、ここまで頭おかしいんだw >>815
すでに回答済みって書いてるから、一定の知性がある生物ならログ確認すると思うよ?それともお前にはそういった知性は期待できないので、もう一度回答したレス番を示してあげた方が良いってことかな? 壊れたレコードてのは、禁止する理由説明してもなお「併用したらダメっすか?」て質問し続けるやつのことじゃないか? >>817
>すでに回答済みって書いてるから
そういう問題じゃないって事すらわからないんだ。
よっぽど自分の頭の中だけで生きてる引きこもりなんだろうな。
で? 聞かれた事に答えないからもう一回聞くけど、
それ、併用できないんすか?www
答えると、なんか都合悪いんスカ?w >>812
>あと、有限なキーがダメって話が出てるけど
>有限ではないキーなんて存在するんだろうか?
これについての返答、SQL書いてるからかなんなのか、ブロックされるな。
あのさ、VARCHAR(8)ですら、ユニーク数、幾つか計算できるか?ほぼ、出来ねぇんじゃねぇか? >>809=817 って、自分の頭の中に組み上げた式から外れた事は一切考えられないロボ君なんだろうな。
『併用できないんすか?』って聞かれてるんだから出来るか出来ないか、答えりゃいいじゃん。
バカだよなぁ…。 >>819
会話にならねぇ。アンチオートイクリメントおじさんとの会話は俺には無理だわ。じゃーな。 ・有限か有限ではないか
・必要十分か不足する可能性はあるか
これは別の問題だと思うんだよね
サービスの要件として日本人を対象とした日本語のサービスであれば目安となるのは1億2000万
これをベースに再作成や複数ID、出生率などを勘案していけばいい
日本人を対象とした商用サービスで最大レベルのものといえば電話だと思うけど
電話番号は11桁
つまり、0〜9の値をとる11桁があれば日本人相手のサービスとしては十分なんだ
人類は有限であるからIDは無限である必要はない
おまえらがいきなり子づくりに目覚めて出生率が跳ね上がる見込みもない
システムの寿命、Laravelの寿命を考えると宇宙の歴史規模の余裕を持つ必要もない
つまり、11桁の数を持ち得る手法であれば必要十分なんだ DBでintを使うってことはおまえら大企業じゃないのか シークエンスでオートなnumberingをするようなDBのデファインを使うのは優れた方法の1つ
重複しないことをDBMSが保証してくれる上にパフォーマンスもよい
よく自動採番の欠点として例示されるのがマスタ画面で新規登録する際
登録時に採番した番号を表示できない、表示したらキャンセルした場合に欠番が出るなんて言うけど
エントリー順にnumberingする以上、たとえ手作業でやっても避けられない問題だ
ただ、データベースの常識として余計なデータは不要だという事
主キー足りえる列がすでにあるのにさらにID列を設ける
これはバッドだ
氏名+電話番号で主キーとして足るのであれば新たにID列を増やすのはパフォーマンスを落とすだけの行為でしかない
(ただ実運用上で主キーを見抜くのは並大抵ではない。例示した氏名+電話番号が通用する場面があったとしても特殊な例外だろう)
ID列を追加するという行為は無駄な領域を確保するという事
検索速度に寄与するわけでもない主キーを追加することによってHDDの余計な領域を確保してしまう
またサーチする際のシークエンス速度もその分劣化してしまう
IDなんてせいぜい8バイトかもしれない
8バイトが1億件あったとしても8億バイトだ
RAID6構成だとしてもたった16億バイト分の領域が無駄になるだけだ
しかし、それを詰めてほんの少しのパフォーマンスアップでももくろむのが我々技術者の使命ではないだろうか
最後になったが主キーの例示でまともな例を出せなかったことをお詫びしておく うちで作ったサービスは普通に連番でIDにしてるが表に出すユーザーIDは別のユニーク文字列を生成してる
連番だとIDで登録順がバレる、予測が簡単だから攻撃されやすいなどのデメリットがある オートインクリメント君あまりの知識のなさに素人だということがバレちゃったね >>826
> 最後になったが主キーの例示でまともな例を出せなかったことをお詫びしておく
わろたw
おまえ、これ書きたかっただけだろ 主キーなんかdefault gen_random_uuid()で十分 サロゲート使って運用楽したい
そんな理由でも良いじゃない この前、某イベントで環境を10個作っているやべえ会社がいることに驚いた この前、某イベントで環境を10個作っているやべえ会社がいることに驚いた Laravel使ってみたけどDBの検索が遅い気がするのは気のせい? >>836
いや初めてなんだけど CodeIgniterと比べると遅い気がする >>837
まともなエンジニアなら計測して検証した上で人に聞くんだよ
お前からは話題ループさせて喜ぶキモいやつの匂いしかしない それぞれのSQL文がどうなってるか調べてみれば?としか言いようがない >>835
LaravelとCodeIgniterを比べて遅いだったらそれはDBが遅いんじゃなくてアプリが遅いんじゃないのか?
とりあえず出力されてるSQLをExplainして比べてみろよ
そもそもベンチマークとってんのか?
気がするじゃなくて具体的な数字で出せよ
例えば「巨乳入店しました」でEカップだったらがっかりするだろ?
でも「Eカップ入店しました」でEカップだったらOKなんだよ
そういうところがIT業界では大事なんだから覚えておけよ 普通に使ってたらコレクション型になるからデータが多いと重いのは否めない ベンチマークとってどんどんチューニングしていく
それがおもしろいんだろ
プログラマの楽しみをちゃんと味わえよ? >>840
DBから情報を取得する部分の速度を計ってみました。
CodeIgniterは約0.1秒、Laravelは約0.7秒でした
どちらの1秒以内なので誤差と考えていいですかね? そもそもCodeIgniterは薄いFWだから確実にCodeIgniterのほうが速くなる
Laravelは単純にDBから情報取得するだけでも色々な処理が動作するので遅くなる オートインクリメント君がbigintを知らなかったのは笑えたな DB側の実装でサイズが変わるint系を避けてnumericで桁数指定が常識だろう
なぜ素人みたいな実装を推奨してるんだ? >>947
やめたれw ここの連中素人で業務システムの構築経験とかないだろうから
あなたの言っていることは理解できない内容だと思うぞw >>843
同じ内容を取得してその差が出てるんだったらさすがに計測ミスじゃないの?
DBへの接続と切断で50m秒ぐらいだろうからCIは残り50m秒で他の処理したってことだよね
同じくLaravelは650m秒
CIはそんなもんだと思うからLaravelはどこでそんなに時間かかってるか切り分けたほうがいいんじゃないか?
経験的に時間がかかるのはDBレスポンス、結果の受け取り、結果の出力の3か所
それぞれ計測すればネックになってる箇所がわかると思う
プロファイラなら関数レベルで処理時間が出てるのではないか?
CIのほうでトータル0.1秒で処理しきってるからおそらく大したデータ量ではないと思う
せいぜい数十から数百レコードの範囲かな
いくらなんでも単純なクエリで0.7秒もかかるほどLaravelもひどくないでしょ 今日フレームワークがどういうつくりをしているのか気になって
Symfonyのソース読んでからLaravelのソース読んだんだけど断然Symfonyのが読みやすかったなぁ
Laravelって回りくどいというかなんというか
ちょっした処理を行うにもやたらとラッピングしたがるね(ラッピングすることによるメリットもあるとはいえ) >>822
このバカ、15秒で返信してるしw
貼り付いてんのか。
で、聞かれたことに答えず遁走。
併用できるか出来ないか、答えたらよっぽど都合が悪い事があったんだろうなぁ。
バカって、分かりやすい。 こういうまっとうな意見が出てきて、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 致命的知能マイナスなバカ君
846nobodyさん2021/06/22(火) 15:54:38.18ID:???
オートインクリメント君がbigintを知らなかったのは笑えたな そうだよ? Laravelのコードは、結構酷いよ?
ちょっと読んだだけでも『これ、なんでこんなめんどくさい事してんの?』ってなるよ?
851nobodyさん2021/06/22(火) 17:36:29.01ID:???
今日フレームワークがどういうつくりをしているのか気になって
Symfonyのソース読んでからLaravelのソース読んだんだけど断然Symfonyのが読みやすかったなぁ
Laravelって回りくどいというかなんというか
ちょっした処理を行うにもやたらとラッピングしたがるね(ラッピングすることによるメリットもあるとはいえ) だからLaravelは遅いんだなぁ…、って、よく分かるよ。
Laravelのコード読んでみると。 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:???
そのぐらいなら誤差と考えていいと思います >>847
固定小数点数をAIに設定できるDBって何? >>858
このバカ、何を言い出したの? なんでauto_incrementの話を引っ張ってきたの?
頭大丈夫? >CIのほうでトータル0.1秒で処理しきってるからおそらく大したデータ量ではないと思う
>せいぜい数十から数百レコードの範囲かな
数百レコードで0.1秒掛かるってだけで遅すぎるのに、
Laravelは同じ条件で0.7秒っすか!
あくびが出るっすね! >>847
君はnumericの型をAI設定してるの? >>826
>826nobodyさん2021/06/22(火) 09:55:34.70ID:???>>829
>シークエンスでオートなnumberingをするようなDBのデファインを使うのは優れた方法の1つ
>重複しないことをDBMSが保証してくれる上にパフォーマンスもよい
>よく自動採番の欠点として例示されるのがマスタ画面で新規登録する際
>登録時に採番した番号を表示できない、表示したらキャンセルした場合に欠番が出るなんて言うけど
>エントリー順にnumberingする以上、たとえ手作業でやっても避けられない問題だ
おまえさぁ、『エントリー順にnumberingする以上、たとえ手作業でやっても避けられない問題だ』って、マジで言ってる?
だーめだこりゃ。
お前さ、トランザクションと排他ロック知らないの?
避けられないわけねーだろ、素人かよ?
ってか、Laravelerが基本的に素人なんだけどさ。 >>826
>826nobodyさん2021/06/22(火) 09:55:34.70ID:???>>829
>シークエンスでオートなnumberingをするようなDBのデファインを使うのは優れた方法の1つ
>重複しないことをDBMSが保証してくれる上にパフォーマンスもよい
>よく自動採番の欠点として例示されるのがマスタ画面で新規登録する際
>登録時に採番した番号を表示できない、表示したらキャンセルした場合に欠番が出るなんて言うけど
>エントリー順にnumberingする以上、たとえ手作業でやっても避けられない問題だ
おまえさぁ、『エントリー順にnumberingする以上、たとえ手作業でやっても避けられない問題だ』って、マジで言ってる?
だーめだこりゃ。
お前さ、トランザクションと排他ロック知らないの?
避けられないわけねーだろ、素人かよ?
ってか、Laravelerが基本的に素人なんだけどさ。 あー、なんとなく思ったけど、
idがauto_incrementなら、
登録失敗するリクエストを延々と発行し続けられる状況が発生すれば、
BIGINTも結構現実的な時間であっという間に枯渇するなw
だって、
『キャンセルした場合に欠番が出る』んだからwww
AUTO INCREMENT BOMB 脆弱性と名付けよう。 確かに今までのDB関連のレスの応酬見る限りLaravel使っている人って
トランザクションとか排他ロックとか知らなそうな気がする
知ってたらとてもじゃないけど提案できそうもない案を出してくるからねこのLaravel使い達は 知性の欠片もないのが、おまえらLaraveler
828nobodyさん2021/06/22(火) 10:41:14.57ID:???
オートインクリメント君あまりの知識のなさに素人だということがバレちゃったね 最近のフレームワークは確かにマイグレーションとかで自動的にオートインクリメントのカラムが作成されて
それを主キーとして扱いましょうねって感じの設計になってるようだけど
本来基幹系システムの開発だとIDの設計が一つのタスクになるレベルで重要なことだったりするんだよ
だからお前らのように安易に大きい型でオートインクリメントを主キーにすればいいやって考えではダメ
そんなこと基幹システムでやったら運用時とか実際の要件とかを満たせなかったりデータベースの構造が破綻したりとかしてくるね >>865
なんで会話が噛み合わないのかなぁとずっと疑問だったんだけど、それなんだよね。
やっと分かった。
多分、Laravelerって、本当に排他ロックを知らない。
楽観排他ロックも、悲観排他ロックも知らない。
トランザクションとは何なのか知らない。
複合プライマリキーは、FWで出来ない事になっているから要らないと思っている。
物を知らなすぎるんだよ、Laravelerは。 複合プライマリーキー対応はgithubのissueで提案されたことはあったけど
あり得ないことに否決されてクローズしたね Laravel使いどころかコミッター達もアホかもしれない >>847
小数点でも扱う以外にそんなの使わんよw
馬鹿なの?w 昨日くらいから『やっとマトモな事言う人が来たな』と思ってたけど、あなた >>867 か。
やっぱ、基幹系作った事ある人とは話が合う。
Laravelerって、それが悪いとは言わないけど、取って出しのWEBアプリ作ってるだけの人たちでしょ。
そりゃ、まともなDB設計とか考えた事あるわけないわ。
それ自体は分野の違いだから悪いとは言わないけど、
その程度の奴が『オートインクリメント君あまりの知識のなさに素人だということがバレちゃったね』
とか、寝言、言う? 普通。
頭が悪いにも程があるわ。 >>869
そりゃ、エロなんたらの設計上、無理だったんだよ。別物になっちゃうから互換性が保てない。 >>870 ってさ、
もしかしてなんだけど、
もしかしてなんだけど、
numeric と decimal の違い、分かってない? バカが必死w
874nobodyさん2021/06/22(火) 18:30:31.92ID:???
ID:Sb0vhLl6が一番頭が硬そうw numericに、どうして少数がどうした関係あるんスカ?w
870nobodyさん2021/06/22(火) 18:27:51.55ID:???
小数点でも扱う以外にそんなの使わんよw
馬鹿なの?w >>869
複合主キーを採用することによりFWのメンテコストが増える側面は否定できないから、それによる恩恵を受ける人の割合が少なければ当然否決されるよ。
最近PHP8.1で導入が決まったFiberに関して、多くの人に恩恵のないものをメンテもしない人たちの投票によって採用するのはいかがなものか?ていう海外のブログ記事が話題になってたけど、それと根は同じ。
物を作るだけしか頭にないエンジニアは、「ぼくのかんがえたさいきょうのシステム」が果たしてどれだけ価値があり、それを維持するのにどれだけコストがかかるかをよく見落とすよね。それこそ頭が悪いと思うよ。 >>877
黙れ黙れ黙れ黙れえええええええええええええええええええええ >>867
そういうエンタープライズ用途でLaravel使うなら、そのときはそれに見合ったアプローチにすればいいんじゃないか。
上でも書いたけど、アプリケーション中心の設計でクイックに作るならEloquent使ったほうが効率的だから自然とサロゲートキー使う。
長期的な運用を見据えた規模のあるシステムなら、データベース中心の設計になるだろうから、仮にLaravel使うにしてもクエリビルダのみにして、データベース側の設計に追従できるようにするてのが答えだと思うよ。 >>878
なんか、長々と御託を並べてるけど、複合主プライマリキーは、まともなシステムを作る上では、必須なの。
メンテコスト云々とか、関係ないよ。
本当に頭悪いなぁ…。 >>880
>クイックに作るならEloquent使ったほうが効率的だから自然とサロゲートキー使う。
本当に頭悪い?
だから、そのクイックに作るためのEloquentで、複合プライマリキーを普通に扱えるようにすればいいだけじゃん。
脳みその構造、どうなってんのかな?この人達って。 んで? Laravelerは ほ ん と う に、
トランザクションと排他処理、
知らなかったんすか? 張り付いてるお前ら、今日平日だけど仕事してないの? いや、お前がマトモなシステム作ったこと無いだけだろw
884nobodyさん2021/06/22(火) 18:58:54.30ID:???
ナチュラルキーガイジって仕事した事無さそう お前、何時まで働いてんだよwww
885nobodyさん2021/06/22(火) 18:59:01.07ID:???
張り付いてるお前ら、今日平日だけど仕事してないの? んで? Laravelerは ほ ん と う に、
トランザクションと排他処理、
知らなかったんすか? >>885
俺はフルリモートだから家で合間合間にスレ覗きながら仕事してるって感じ。 アンチオートインクリメントおじさんは、毎度お昼休みと18時過ぎたら即レスしてくるから、割と固い職場で窓際族やってると思ってる。てか、18時以降に何レスしてんのよ・・・ >>884
>ナチュラルキーガイジって仕事した事無さそう
排他ロック知らなかったら、マトモに仕事出来ないだろ?
頭大丈夫か? ごめーん、あのさぁ、まさかとは思うけど、
Laravelって、排他ロックできましぇーん、
なんて事、無いよね?
なんか、方法、あるよね?
それだけはせめて聞かせて? クエリビルダは、SELECT文で「悲観的ロック」を行うための機能をいくつか持っています。
SELECT文を実行する間「共有ロック」をかけたい場合は、sharedLockメソッドをクエリに指定してください。
共有ロックはトランザクションがコミットされるまで、SELECTしている行が更新されることを防ぎます。
もしくはlockForUpdateメソッドが使えます。
占有ロックをかけることで、レコードを更新したりSELECTするために他の共有ロックが行われるのを防ぎます。 >>896
へー、なら、こんなんあるわけないじゃんw
>>826
>826nobodyさん2021/06/22(火) 09:55:34.70ID:???>>829
>シークエンスでオートなnumberingをするようなDBのデファインを使うのは優れた方法の1つ
>重複しないことをDBMSが保証してくれる上にパフォーマンスもよい
>よく自動採番の欠点として例示されるのがマスタ画面で新規登録する際
>登録時に採番した番号を表示できない、表示したらキャンセルした場合に欠番が出るなんて言うけど
>エントリー順にnumberingする以上、たとえ手作業でやっても避けられない問題だ SIerからwebの会社に転職したてのころ、トランザクションかけてなかったり排他制御全く考えてないコード見て絶望した思い出。 ID:Sb0vhLl6さんにみんな頑張って反論を試みるも技術力がなさ過ぎて
技術的な反論を出来ていないのが笑えるw というか、トランザクションと排他処理の話が出た途端、
あなたたち全員が挙動不審になったの、
ちょーうけるんんですけどw
本当に知らなかったんすねw
そんなんでよく今まで知ったかぶってましたねwww そりゃ今までLaravel様に全部お任せしていた連中だからなw
トランザクションも排他処理も意識したことがないというのが実情だろうなw Laravel開発者「排他したいときはメソッド用意してるから使ってくれよ」
お前ら「えっ?Laravelの内部で勝手にやってくれるんじゃないんですか?」
多分こうだろwwwwwwwwwwwwwwwwwwwwwwwwwwwwww お前らトランザクションや排他処理も知らないのにbigintでオートインクリメント(笑)とか言って勝ち誇ってたのかよ・・・・ >>901
DBの話はDBのスレでやってくれないかな? >>905
業務アプリ作るうえでトランザクションや排他は重要な話だろ
自分しか使わない簡単なTodoアプリとかだったらトランザクションや排他なくても
動作するけど業務システムとかでは必須の話だよ
まあ敗北が確定してしまって反論もできないから必死に追い出そうとしてるんだろうけどw せっかくNGID登録してるんだから、アンチオートインクリメントおじさんは忘れずにIDつけてくれ。それがこのスレ住民のささやかな願いだ。 自分より技術力高い人がきたらNGID登録はひどすぎでは? 技術力の高低の問題ではなく、会話ができないことが問題。何度か会話を試みたけど、傾聴力ゼロなので見放したのが現在。 .envファイルをコミットするかどうかでもめていた時に比べると健全な気がする まず覚えなきゃいけない言語は日本語じゃないだろうか 「俺スゲー」目的の言動しかできない人は大体自己愛性人格障害者。
そんなの相手するだけ無駄。他人は「俺スゲー」のための道具ではない config/app.phpの内容が.envで上書きされてしまうのですが
一部の値のみconfig/app.phpから取る方法を教えてください 1つ疑問なんだがロックしておけばなぜインクリメントした数が元に戻ると思ってるんだ? もしかしてだけど「マスタ画面で新規登録」を平行で稼働させないって言ってるの?
「別のユーザーがマスタ画面を利用中なので終わるまでお待ちください」って表示させるつもりなの? >>908
どこがレベル高いんだ?w
かなりレベルが低いとしか言えないのだが >>914 : 1つ疑問なんだがロックしておけばなぜインクリメントした数が元に戻ると思ってるんだ?
>>915 : もしかしてだけど「マスタ画面で新規登録」を平行で稼働させないって言ってるの?「別のユーザーがマスタ画面を利用中なので終わるまでお待ちください」って表示させるつもりなの?
こいつら、マジで言ってるのかな? 凄いな
Laravelerって本当に、マトモな連番発行の仕方を知らなかったんだ。
あのさ、『トランザクションと排他ロック』と言われて意味が分からないってのは、ITエンジニアとしての知識・知能欠如相当ヤバいんだよ?
「別のユーザーがマスタ画面を利用中なので終わるまでお待ちください」????
頭おかしいんじゃないの? Laravelerってこの程度のバカしか居ないって事が判明してしまった。 >>916
>かなりレベルが低いとしか言えないのだが
虚勢を張るのは大概にしといた方がいい。
ここ数十レスのやり取りで、あなたたちLaravelerのレベルの低さが十分過ぎる程露呈してしまったんだから。
Laravelerはauto_incrementでしか重複しないIDの生成の仕方を知らないって事がね。
だから、あなたたちがこれまで作ってきたシステムには、決して少なくない数のシステムに
AUTO INCREMENT BOMB脆弱性が存在する可能性が存在するという事が確定してしまった。 >>912
>「俺スゲー」目的の言動しかできない人
何いってんのかな? この低脳。
俺はIT技術者としてアタリマエのことしか言ってないよ。
で、最初、あなたたちLaravelerは自分たちの無知に全く気づかずに俺の方が無知だとバカみたいな事を言っていて、
いざ、実態はあなた達のほうが無知極まりないという事が分かった途端、
今度は「俺スゲー目的だ」と言い出す。
あなたたちってさ、『恥』って概念、無いの?
小人って、凄いよね。 >>909
>傾聴力ゼロなので見放したのが現在。
傾聴力?w
人の話を全く聞かなかったのは、あなた達でしょw
というか、途切れない連番IDの作り方くらい、学習しなさいよ。 >>917
おまえはオートインクリメントしたシーケンスを巻き戻せるって言ってるんだぞ?自分が何を言ってるのかわかってる?ちゃんと元コメのバカなコメみてる? >>918
論点ズレてるぞ
平行実行可能なシステムで連番を付与するとき、先行して採番したユーザーがキャンセルしても歯抜けにならないかどうかの話だぞ >>915
>「別のユーザーがマスタ画面を利用中なので終わるまでお待ちください」って表示させるつもりなの?
俺、『楽観排他』と『悲観排他』って、書いたよね?
マジで意味分からなかったんだ。凄いな。それでよく今までシステム作って来たね。
あなたの作ってきたシステムって、欠陥品だらけだったって事じゃん。
さて、問題です。
それを表示させないためには、どっちの排他処理が必要でしょうか?w
本当に頭が悪かったんだね、Laravelerって。 >>921
>「別のユーザーがマスタ画面を利用中なので終わるまでお待ちください」って表示させるつもりなの?
どこで言ってる? 幻影でも見えるのかな? 幻聴でも聞こえるのかな?
ほんとうに、あたまが、悪いんだねw
そんな事、一言も言ってないよ。よく見返してみな? なんか、クリップボードのコピーが違ってたから書き直し
>>921
>おまえはオートインクリメントしたシーケンスを巻き戻せるって言ってるんだぞ?
どこで言ってる? 幻影でも見えるのかな? 幻聴でも聞こえるのかな?
ほんとうに、あたまが、悪いんだねw
そんな事、一言も言ってないよ。よく見返してみな? なんで会話が噛み合わないのか凄い不思議だったけど、ここ数重レスで突然分かってきた。
Laravelerって、日本語が読めないんだ。
だから、俺が>>862で
>おまえさぁ、『エントリー順にnumberingする以上、たとえ手作業でやっても避けられない問題だ』って、マジで言ってる?
>だーめだこりゃ。
>お前さ、トランザクションと排他ロック知らないの?
>避けられないわけねーだろ、素人かよ?
と言ったのを、バカで低脳なLaravelerは
『オートインクリメントしたシーケンスを巻き戻せるって言ってる』
と認識してしまうんだ。
なわけねぇだろ、脳みそ腐ってんのか? >>922
>平行実行可能なシステムで連番を付与するとき、先行して採番したユーザーがキャンセルしても歯抜けにならないかどうかの話だぞ
そうだよ? あたりまえじゃん。
で、Laravelerは、歯抜けにしない方法が“まーったく”分からないんだw
すげぇな。
今までそんな腐れシステムを量産してきていたのか。
ある意味、感動する。 もう、Laravelerって、
AIB: AUTO INCREMENT BOMB脆弱性、埋め込みまくりじゃないっすかw >>922
>論点ズレてるぞ
論点は全くズレてない。認識がズレてるのが、お ま え。 ユーザーAに採番1を付与
ユーザーBに採番2を付与
ユーザーAがキャンセル
ユーザーAは存在しない
ユーザーBは採番2を取得
これどうやって解決すんの?問題を理解できてなかったのか? >>930
あのさぁ…。
あなた、IQ32くらいしか無いでしょ。
> 問題を理解できてなかったのか?
本物のバカなのかな?
相手するのも馬鹿らしいんだけどさ、ちょっと、ここに、所要時間書いてみ?
>ユーザーAに採番1を付与
>ユーザーBに採番2を付与
>ユーザーAがキャンセル
あなたさ、自分がどれほど頭が悪いことを自己主張しているのか、
本当に考えた方が良い。
もう一回行っとくけど、欠番しないシリアルを作るのは、何の問題もなく、可能です。
auto_incrementみたいな下等な実装に頼らなければね。
当たり前の事でしょ。 Laravelerの知的レベルの低さに、本当に脱力しています。 どうせこの低レベルのゴミはJAVAぽいなw
それもオラクルwとかしか使ったことが無いカスで設計したこと無さそうw
こういう奴は一人でモノが作れない 多分さ、このままLaravelが普及すると、
ジャニーズの嵐みたいな感じののコンサートで、
チケット重複発行とかやらかすんだよな。
チケット番号auto_incrementって訳にはいかないから、
自前で実装するじゃん。
でも、排他処理の事、全く知らないじゃん。
当然、重複するじゃん。
もう、地獄絵図しか見えない。 で? >>930 は、
本当に、重複しない連番、生成出来ないの?
あなた、そんなんでよく『システム作ってる』って言えますね。 で? >>930 は、
本当に、欠番しない連番、生成出来ないの?
こっちが正確な表現かな?
あなた、そんなんでよく『システム作ってる』って言えますね。 >>931
問題を正しく理解できてなかったんだね
ユーザーCに採番1を付与なんていう間抜けな提案でもしてみるか?
それとも採番確定後に再採番でもしてみるか?
シーケンシャルなnumberingにするには確定後に採番するしか問題は解決しないんだよ
他の方法があったら提案してみろよ
ちなみにこの件は自動採番に依存してる部分はないぞ 文字ベースで書いてるからややこしいんだよ
実際のコードで見たい この問題の本質は
1,2,3,4,5と番号が並んでいます
3番のユーザーが削除されました
1,2,4,5という並びになりました
番号が順番にならんでないじゃないか!けしからん!!
という話です 自己愛性人格障害者の言動の特徴↓
自分を持ち上げる(俺スゲー)
他人をけなす(俺スゲー) 何言ってるのかわからんな、このバカ >>937
何度も言うけど、
欠番しない連番を付与するのは、
当たり前の事として、
可能です。
方法は、トランザクションと排他処理を正しく行うだけの事です。
あなた、本物の、バカでしょ? トランザクションと排他処理するってことは後続ユーザーが番号確定できないよ
あほじゃないかな? >>937
>シーケンシャルなnumberingにするには確定後に採番するしか問題は解決しないんだよ
>他の方法があったら提案してみろよ
ごめーん、本当に何言ってるのかわからないんだけど、
要約すると、
あなたには、『欠番しない連番を生成する能力が有りません』って、力説してるのね?
それでいいのね?
ちょっと、なんでもいいからあなたのID教えてくれる?
その程度の能力しか無いバカのIDが知りたい。
本当に下等過ぎるんだって事、自覚したほうが良いよ? あなた。 >>942
>トランザクションと排他処理するってことは後続ユーザーが番号確定できないよ
>あほじゃないかな?
ここまでバカなのか…。
さっきも書いたんだけどさ、
『楽観排他』と『悲観排他』の違いくらい、ぐぐりなよ。
チンパンジーなの? あなた ユーザーAとユーザーBは採番を受けたあとに確定とキャンセルを選択する
ユーザーAは1番、ユーザーBは2番
この状態からユーザーBをどうやって1番に変更するんだ?
すでに画面には2番と表示されているから動的に1番してはいけない
ロックやトランザクションの問題じゃないんだけどどこでそういう理解になったの? >>942
>あほじゃないかな?
うん、あなたが、『あほ』
ぐぐる事も出来ない。
というか、流石に2021年にもなって、『楽観排他』と『悲観排他』を知らないバカが居るとは思ってもみなかった。 >>945
>ロックやトランザクションの問題じゃないんだけどどこでそういう理解になったの?
だから、『楽観排他』と『悲観排他』について、調べてからしゃべりなよ、チンパンジー君。 >>944
まず話を進めようか
ユーザーAとユーザーBの画面にはそれぞれユーザーA=1、ユーザーB=2という数字が表示されてる
ここまでは理解できてるか? 結局、問題の前提を見落としてるだけだったな
もう言い訳は済んだか? >>937, 942,945
マジで、お前が、程度が低すぎるんだって事くらい、いい加減に理解しろ、サル。 リソースが競合してるわけでもないのにロックの話をするほうがおかしい どこの正解に、新規登録に於いて、最初に裁判するバカシステムがあるんだよ。
こいつ、マジでチンパンジーだろ。
948nobodyさん2021/06/23(水) 11:38:56.42ID:???
>>944
まず話を進めようか
ユーザーAとユーザーBの画面にはそれぞれユーザーA=1、ユーザーB=2という数字が表示されてる
ここまでは理解できてるか? 訂正。
どこの世界に、新規登録に於いて、最初に裁判するバカシステムがあるんだよ。
こいつ、マジでチンパンジーだろ。
Larabelerって、本当にこんなバカしか居ないんだな。
948nobodyさん2021/06/23(水) 11:38:56.42ID:???
>>944
まず話を進めようか
ユーザーAとユーザーBの画面にはそれぞれユーザーA=1、ユーザーB=2という数字が表示されてる 更に訂正。もう、頭悪すぎて、マトモに相手するのすらめんどくさい。
どこの世界に、新規登録に於いて、最初に採番するバカシステムがあるんだよ。
こいつ、マジでチンパンジーだろ。
Larabelerって、本当にこんなバカしか居ないんだな。
948nobodyさん2021/06/23(水) 11:38:56.42ID:???
>>944
まず話を進めようか
ユーザーAとユーザーBの画面にはそれぞれユーザーA=1、ユーザーB=2という数字が表示されてる >>953
思い込みで仕様を勘違いするのは初心者にありがちなミスだ
精進しろよ >ユーザーAとユーザーBの画面にはそれぞれユーザーA=1、ユーザーB=2という数字が表示されてる
新規登録で、そんなシステムあるわけねーだろ、ヴァカ! >>956
バカっていうほうがバカなんです〜、ばーかばーか なんすか? このヴァカ。
Laravelerって、こんなレベルなんすね。
955nobodyさん2021/06/23(水) 11:44:28.36ID:???
>>953
思い込みで仕様を勘違いするのは初心者にありがちなミスだ
精進しろよ ぷっ
957nobodyさん2021/06/23(水) 11:44:58.08ID:???
>>956
バカっていうほうがバカなんです〜、ばーかばーか >>937, 942,945 って、本当にIQが32くらいしか無いんだな。
これがLaravelerの実力か。
Laravelerは、バカしか居ない、という結論が出てしまった。 >>938
>文字ベースで書いてるからややこしいんだよ
>実際のコードで見たい
んー、あのさ、
マジで、『楽観排他』と『悲観排他』について勉強しなよ。
コードが見たい?
こんなん、システム開発者としては、常識っていうか基本のキなの。
この程度の事しらないでシステム作るからダブルブッキングしてしまいましたーみたいな
下等な事故が起きるんだよ。
マジで、勉強しなさい。 新規登録画面(確定画面ではなく入力前)でID表示を強制してくる事業者は少なくない
そして連番を求めてくる
たった1つの優れたやり方は「現在、他のユーザーが登録中です」と表示することなんだ
そしてアプリ的な排他ロックのキーを外し忘れる不具合(しばしばメンテで発生する)が発生して
保守運用チームが気を聞かせて「1人しか同時に登録できなかったので何人でも同時に登録できるようにしておきました」
とドヤ顔で客に報告する
便利だわー、さすがだわーと褒められますますドヤ顔で真っ赤になる
その数時間後に客から「IDが飛ぶんです。不具合です。すぐ直してください」と緊急メンテになり青くなる
それがおまえらが選んだ職業なんだよ おまえらにはまだDBの気持ちがわかっていない
オレの人生はロックなんだよ >>962
>新規登録画面(確定画面ではなく入力前)でID表示を強制してくる事業者は少なくない
ねーよ、ヴァカ
何長文書いて事実捏造してんだ、引きこもり! >>962
>そしてアプリ的な排他ロックのキーを外し忘れる
排他ロックに“キー”なんてねーよ!
妄想で語るな、キチガイ! すげぇな、よくここまで妄想で語れるな…。
マジで脳みそ腐ってるんだろうな…。
962nobodyさん2021/06/23(水) 11:54:18.82ID:???>>964>>965
新規登録画面(確定画面ではなく入力前)でID表示を強制してくる事業者は少なくない
そして連番を求めてくる
たった1つの優れたやり方は「現在、他のユーザーが登録中です」と表示することなんだ
そしてアプリ的な排他ロックのキーを外し忘れる不具合(しばしばメンテで発生する)が発生して
保守運用チームが気を聞かせて「1人しか同時に登録できなかったので何人でも同時に登録できるようにしておきました」
とドヤ顔で客に報告する
便利だわー、さすがだわーと褒められますますドヤ顔で真っ赤になる
その数時間後に客から「IDが飛ぶんです。不具合です。すぐ直してください」と緊急メンテになり青くなる >>965
また説明を見落としてるじゃん
成長ないな
サーバのディレクトリに「lock」っていうディレクトリを作っておくんだよ
ディレクトリ作成に成功したらロック取得、失敗したら他のユーザーがロック中なので退場
また賢くなったな。精進しろよ >>967
lockディレクトリ!
あまりにも下等な表現が出てきてビックリっす。
これがLaravelerなんすねw ちょーウケるんですけどw 本当に、頭大丈夫なんすか? Laravel使いの人達ってw >>934
コロナワクチンの予約システムも予約番号の重複とかやらかしてましたね 自動採番した番号をロックしたとする
ユーザーAは新規登録中にお昼ご飯にいきました
ユーザーBは「ユーザーAがロックなので登録できません」という表示を見ることになる
「ふーん、あいつロックなんだ・・・」
ユーザーBは複雑な気分で会議に行ってしまいました
ユーザーAは昼食から戻ってきましたがどうしてもわからない項目があります
「Bさんに聞かないとわからないな」
登録画面を最小化して別の仕事をすることにしました
会議室の合間にユーザーBは新規登録が出来ないか何度も画面を出しますがいずれにしても
「ユーザーAがロックなので登録できません」
の表示が変わりません
ユーザーBは新規登録が出来るまで席に戻る必要はないなとさらに別の仕事に行ってしまいました
これがデッドロックという現象です
うかつにロックを使うとデッドロックになってしまうというお話でした 今日もアンチオートインクリメントおじさんが荒ぶってるのか。どっか他のスレで引き取って欲しい。こちとらLaravelの情報交換がしたいだけなんだがなぁ。 >>967
ディレクトリ作成成功後にサーバ再起動とか発生したらアウトでは?
再起動したらクリアされるRAM領域で行っているなら大丈夫だけど
HDD上だとディレクトリ残りっぱなしになってデッドロックになるぞ
まあそもそも組み込みの世界じゃあるまいし排他をディレクトリあるなしでやるなよ
DB等の操作は楽観排他や悲観排他使えよ >>967
ID:+cgzqi1Qに対して反論するならもっとまともな実装で反論しろよwwwww
さすがにその実装はやばいw >>934
郵便局のお問い合わせ番号は端末ごとに1000件程度プリ発行しておいてそこから採番する >>934
仕様の確認
・チケットの席は有限
・追加販売はあるがまとめて数千席単位でせいぜい1度か2度の追加
・席はチケット販売会社ごとに割り当てがある
・チケット番号は販売会社ごとに独立している
・席番号は販売会社が違っても会場で決められた番号を使う
・チケット1枚につき1〜5席まで購入できる
・チケット番号は必ずしも連番で発行する必要はない
・チケット番号は十分に余裕のある桁数であるとする
購入の流れ
1.ユーザーは自宅PC、スマホ、もしくは専用端末で購買操作を行う
2.欲しい席を入力する(席番号にロックをかける)
3.欲しい席を全て入力し終わったら支払い方法、クレジットカード番号等を入力する
4.オーソリが通らないなど支払い不可であれば席番号ロックを解除して購入フローを終わる
5.支払いフローが終了すればチケットを発行する。このときチケット番号は端末ごとにプリ発行されている中から取得する
6.プリ発行されている番号が足りなくなればセンターに問い合わせて追加発行をしてもらう >>974
逆にいうと再起動に強いlockだと言える なんか、本当に頭痛くなってる。
まさか、2021年にもなってロックファイル人力生成して排他する実装を
『力説』するほどの低知能が存在するとは、流石に夢にも思ってなかった。
>>973とか、『情報交換がしたい』とか言ってるけど、
こんなバカ排他情報交換して何するつもりなんだろ?
もはやそれ、テロに近いだろ。 Laravel使ってる奴らは排他処理知らないのでダブルブッキング起こしかねませんよ?
ってのは、周知していったほうが良さそうだな、社会全体のために。 でキチガイはサロゲートキーを一切使わない化石何だなw ネタって事にしたいならそれでいいけど、
で? じゃあ実際に欠番せずダブルブッキングしないIDをどうやって発行するか、
あなた >>984 は当然言えるんだよね?
プリーズ。 平日の昼間からID真っ赤にしてるニート臭いの居るけど、それを相手にしてる奴もニートなんかな 技術的な話題が来るとお前らってすぐに人格攻撃するよな
なんで「わからないので教えてください。」って言えないの? 俺たちは零細勤務だから仕方ない
それができるなら零細には居ないし DBの排他制御の為にlockファイル作る人はSQLiteでも使ってるのかな? auto_incrementの主キーに型が可変だからってdecimal使うやつがいるのは驚いたよな
auto_incrementにdecimal使えるのって何のRDBなんだろ?
RDBから自作でもしてんのかな >>990
排他制御に関して言えば技術的にかなり困難な問題だから聞ける人が居ない
まず会社では俺が一番の先輩だし >>985
Laravelでは欠番しないような処理を書くことが公式で非推奨扱いだぞ
一般的にはとても信じられないことだけど公式で非推奨っていっちゃうあたり
Laravelがおかしいことがわかる >>985
主キーの欠番によって挙がる問題を教えて
そもそも主キーに欠番が出るだけで不都合起きる実装の問題では? プライマリキー欠番で不具合は草
どう考えても実装か設計に問題があるだろ >>995
お前いつもつまらないので、そろそろこのスレから居なくなってどうぞ。アンチオートインクリメントおじさんと同レベルに無価値。 すいません教えてください
Laravelを使ってauto_incrementに欠番を出さないようにするにはどうしたらできますか?
例えばユーザーテーブルに新しく挿入してidが100のユーザーが作れますがそのユーザーを消してもう一度挿入するとidが100じゃなくて101になってしまって困ってます このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 28日 20時間 36分 29秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。