X



【PHP】Laravel【フレームワーク】 Part.5
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (ワッチョイ 3ead-ksEv)
垢版 |
2021/04/15(木) 18:49:01.96ID:fbr++Lxb0
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512

Laravel
ウェブ職人のためのPHPフレームワーク

本家
https://laravel.com/

git
https://github.com/laravel

動画チュートリアル(英語)
https://laracasts.com/

日本語
http://laravel.jp/

※前スレ
【PHP】Laravel【フレームワーク】 Part.4
https://medaka.5ch.net/test/read.cgi/php/1613209188/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
0002デフォルトの名無しさん (ブーイモ MM3e-vlS9)
垢版 |
2021/04/15(木) 19:24:33.71ID:FSm5r/qDM
俺「ああ…すごく気持ちいいよ、富美男」

富美男が俺のものを、そのごわごわとした手で優しく包み込む。
程良い締め付けと心地良い温もりで、思わず口元が緩んでしまう。

梅沢富美男「バカ野郎が……こういうのはどうだ?チロチロ…」

俺「うぁ…くっ…!!」

富美男が悪戯に亀頭の先端をチロチロと弄ぶ。屈強そうな外見には似つかわしくない、丁寧で繊細な舌使い。
あまりの気持ち良さに、射精感がぐぐぐっと高まるのを感じる。

梅沢富美男「…可愛い顔しやがるじゃあねえかこの野郎…そろそろ仕上げだ。ジュルジュル…ゴプッ!グポポ…ジュルジュルルル!グッポ!ブブブ…!」

俺「ひぁああ…!富美男!富美男ぉお!ぐっ…!!」

富美男が俺の股下で激しく上下する。俺のものはてらてらと光沢を帯び、上下運動を繰り返す度に富美男の唾液と俺の精液が混じり合った、ひどく性的な粘液が滴り落ちる。
限界までいきり立った俺のものは、欲望の全てを富美男の口内に解き放つ。

俺「ああはあっ…!!はあっ!はあ…はあっはあ……!富美男…富美男良かったよ…」

梅沢富美男「…ゴクンッ!……はあっはあっ…てめぇこの野郎!こんなにも一杯出しやがってバカ野郎…腹ん中パンパンじゃねえか…!!…まだ出したりねえよな?」

俺「…富美男には全てお見通しか。敵わないよ、お前には…」

梅沢富美男「当然だバカ野郎…ここからが本当の夢芝居だ」

俺と富美男は、夜が明けるまで、何度もなんどもお互いを求め合った。
0007デフォルトの名無しさん (ワッチョイ 6f63-CoCA)
垢版 |
2021/04/15(木) 21:11:47.63ID:09Bk00Zc0
・.envをコミットする
・node_modulesをコミットする
・vendorをコミットする
・package-lock.jsonをコミットしない
・composer.lockをコミットしない
・認証にユーザIDを利用したいのでemailカラムにユーザIDを入れる←NEW
・認証にユーザIDを利用したいのでvendor直下のファイルを修正する←NEW
0017デフォルトの名無しさん (ブーイモ MM9b-SXxp)
垢版 |
2021/04/16(金) 09:17:20.89ID:K3lKqpTdM
この低レベルのスレでIPなんて出したら会社の回線で書き込んでる奴とか出そうで怖いからやめろw
0028デフォルトの名無しさん (JP 0H8f-tG/d)
垢版 |
2021/04/16(金) 12:06:36.79ID:3kSIg7ezH
>>20
なぜ?て質問する時点で終わってるよな。emailてフィールドはemailを扱うためにそういう名前になっている。

お前は単にアプリの都合をDBに押し付けているだけ。

フィールドと値の属性が一致しないって前提になってしまうと、そのDBはもはやデータベースではなくダストボックスだよ。情報を整理して記録してないのだから。
0029デフォルトの名無しさん (テテンテンテン MM8f-VG5n)
垢版 |
2021/04/16(金) 12:17:13.98ID:9J8nawfbM
>>20
DB設計をレビューする時に200%誰かから突っ込まれると思うけど、そういうときどうするの?
(200%ってのはレビュー者が2人いた場合にそれぞれ100%って意味ね)
その言葉をそのまま返して設計を押し通すのか、もしくは内心はバカにしつつ「はい、そうですね」と従うのか?
0036デフォルトの名無しさん (ワッチョイ bfbd-BjNH)
垢版 |
2021/04/17(土) 10:35:04.47ID:XNs6uDQ/0
クライアントがPHP7に上げてくれないから未だにPHP5で苦労してる
0041デフォルトの名無しさん (テテンテンテン MM8f-Nmz8)
垢版 |
2021/04/18(日) 01:25:15.33ID:6sMZpE7mM
laravelがphp8に対応してるのと関連ライブラリがphp8に対応してるかは別だけどな
php7.4から8.0へよ後方互換無い変更はあんま無いから普通にphp8使って問題になるケースはほぼ無いだろうけど
0046デフォルトの名無しさん (ワッチョイ bfad-YV6d)
垢版 |
2021/04/18(日) 15:30:17.79ID:lvqxCbNG0
別にLaravel-Mix使う人をディスるつもりは無いんだけど、公式に「webpackより設定が容易ですが80%くらいの用途しか満たせません」って書いてある時点であえて選ぶ理由は無いよね。
いくらwebpackの設定が簡単になるといってもvueやreactの公式テンプレでも事は足りるし、viteの以前から使う理由が無い。しかもwebpackのバージョン古いし。
といっても俺はLaravel-Mixを使ったことないから、80%の用途ってのが具体的に何が問題になるかは分からないんだけど。

ちなみに、Laravel-MixってバックエンドにLaravelを使う必要ないんだよね。
Laravel-viteもそうだけど、独立して使えるのになんで名前にLaravelってつけたんだろ。
0051デフォルトの名無しさん (ワッチョイ f368-Y6fU)
垢版 |
2021/06/14(月) 18:03:15.20ID:0nzja1RU0
SESSION_LIFETIMEってlast_activityからの時間ですよね?
例えば120分の設定だった場合、ログインから60分の時点でページ遷移するとそこから120分非アクティブでセッション破棄されてログアウトされる
これをログインからの時間にすることはできますか
120分の設定でログインから60分の時点でページ遷移してもそこから60分(ログインから120分)非アクティブでセッション破棄されてログアウトされる
というようにしたいです
0052デフォルトの名無しさん (ワッチョイ f368-Y6fU)
垢版 |
2021/06/14(月) 18:05:12.17ID:0nzja1RU0
間違えた
120分の設定でログインから60分の時点でページ遷移してもそこから60分(ログインから120分)でセッション破棄されてログアウトされる
です
非アクティブかどうかは関係なし
0054デフォルトの名無しさん (スッップ Sd33-SXL5)
垢版 |
2022/07/25(月) 17:09:42.66ID:+TalbHVVd
あげ
0056デフォルトの名無しさん (ワッチョイ 56bb-qaF0)
垢版 |
2022/07/31(日) 06:38:16.97ID:FuqqV1bj0
退会を論理削除で対応するusersテーブルって、どう設計するのがいいのかね?

mailアドレスをユニークにしちゃうと
・再登録時に削除フラグの削除で登録させると過去のリレーションが生き返る
・リレーションを復活させない仕様にすると、ユニーク制限で弾かれる

リレーションは復活させない仕様にしようと思っていて、少し調べると create_at と複合ユニークで設計する方法がいくつか出てきた
ただ、それならユニーク制限を外してしまったほうが良いような

みんなどうしてる?
0057デフォルトの名無しさん (スッップ Sd9a-1wwR)
垢版 |
2022/07/31(日) 06:57:25.04ID:yP580+hEd
苦肉の策で削除フラグを0か0以外かにして
削除フラグとIDでユニークにしたりとかしてたな
フラグを立てる時はそのメアドの削除フラグの最大値+1で立てればいいし
0060デフォルトの名無しさん (JP 0H2e-sMW4)
垢版 |
2022/07/31(日) 10:25:02.82ID:ZOHfs0AjH
フラグってのはbool型を意味するのに、そこに1より大きい値を設定する時点で設計として破綻している
一般的に論理削除フラグと主キーの組み合わせでユニークチェックする場合、論理削除フラグにはnullを設定する
なぜならnullはDB上全てユニークな値と認識されるからね
本当に論理削除が必要なのかはちゃんと詰めていくべきだけど、
必要ならLaravelが標準で提供している論理削除の仕組みに乗るほうが良い
特にフラグに1より大きい値を与えて複合ユニークを実現しようと考えるスキルの低い人間にはね
0063デフォルトの名無しさん (ワッチョイ d610-0/V6)
垢版 |
2022/07/31(日) 12:47:10.10ID:v0RslAdr0
退会会員テーブルを作るのはどうなの?
会員テーブルは状態(停止|有効|退会)カラムを用意して。

会員が退会申請したら、状態を「退会」にして
退会会員テーブルに会員IDと退会日時を追加する。

そして「退会申請後○日後に会員データを削除する」
としたら、個人情報保護の観点でも問題がないし
復活させたい会員は復活できる。

mailアドレスをユニークにしても、
リレーションは復活しない(関連データを1から追加する)ようにもできる
0064デフォルトの名無しさん (ワッチョイ 56bb-qaF0)
垢版 |
2022/07/31(日) 13:07:47.34ID:FuqqV1bj0
>>63
ググった中に提案いただいた設計の議論がありました

soudai.はてなぶろぐ.com/entry/2018/05/01/204442

少し冗長な気もしますが、ブクマ見ると結構似た設計にされている方がいるようですね
もう少し調べてみます

ありがとうございます
0065デフォルトの名無しさん (ワッチョイ d610-0/V6)
垢版 |
2022/07/31(日) 13:43:33.06ID:v0RslAdr0
>>64
見てきたけどこれじゃないよ。さすがに冗長すぎる
俺の提案は単に「退会用のテーブルを作って、退会時の情報を記録しましょう」だから。

とりあえず色んなやり方があるから、納得行くのを選択して試すといい
0066デフォルトの名無しさん (ワッチョイ cd2c-vfc7)
垢版 |
2022/07/31(日) 15:38:41.00ID:3aGOnqYZ0
例えば、黒田努のRuby on Rails 6 実践ガイドでは、論理削除を採用していない。
単に削除しているだけ

customer = Customer.find( params[:id] )
customer.destroy!

論理削除は、広範囲に他の検索条件にも影響が及ぶ。
それが難しい。
日時のバッチ処理もしないといけない

うかつに論理削除をするなと書いてある、DB の本もある
0067デフォルトの名無しさん (ワッチョイ 56bb-qaF0)
垢版 |
2022/07/31(日) 16:34:01.03ID:FuqqV1bj0
>>65
違いましたか。失礼
この記事、マサカリ(?)がそこそこ飛んできていて、その中のいくつかを、提案いただいた内容と勝手に結びつけてしまいました

納得行くものはなかなかないですねぇ
困った笑
0068デフォルトの名無しさん (ワッチョイ 56bb-qaF0)
垢版 |
2022/07/31(日) 16:36:23.57ID:FuqqV1bj0
>>66
せっかくのRDBなので物理削除したくなるのはわかりますが、今どき「退会即物理削除」は無理だと思います
今回は論理削除は必須条件なので、もし条件に合う設計案があれば教えて下さい
006966 (ワッチョイ cd2c-Og+R)
垢版 |
2022/07/31(日) 17:50:56.77ID:3aGOnqYZ0
論理削除は、広範囲に他の検索条件にも影響が及ぶ。
それが難しい

普通に削除して、別の削除済み用のテーブルへ追加しておけば?

そうすれば、他の検索条件には影響が及ばない
007066 (ワッチョイ cd2c-Og+R)
垢版 |
2022/07/31(日) 17:55:25.35ID:3aGOnqYZ0
「検索条件 AND 削除フラグがFalse」とか、
すべての検索条件において、一々削除フラグを考慮するのが面倒

こういうシステムは保守できない
0071デフォルトの名無しさん (ワッチョイ 56bb-qaF0)
垢版 |
2022/07/31(日) 18:50:53.91ID:FuqqV1bj0
> 普通に削除して、別の削除済み用のテーブルへ追加しておけば?

こちらができるのであれば、論理削除の影響範囲は洗い出せた状態なのであまり分離するメリットは無いように思います

> すべての検索条件において、一々削除フラグを考慮するのが面倒

Laravelだとデフォルトがそういう仕組みになっています
仕組み自体はそれほど難しいものではないのでRailsでも実装されてそうですけど
007366 (ワッチョイ cd2c-Og+R)
垢版 |
2022/07/31(日) 19:42:47.32ID:3aGOnqYZ0
例えば、Rails では単一テーブル継承という機能がある

顧客が自宅と勤務先を持つ場合に、
自宅と勤務先の列は、大体同じものであるため、

自宅と勤務先を、住所という同じテーブルから派生させて、
Railsが裏側で、自宅と勤務先を切り替える機能

自宅 < 住所
勤務先 < 住所

type=自宅とか、type=勤務先などの検索条件を、SQLに入れなくて良い
0074デフォルトの名無しさん (ワッチョイ d610-0/V6)
垢版 |
2022/07/31(日) 22:04:43.70ID:v0RslAdr0
>>70
削除フラグじゃないけど、俺はそうしてるわ
会員の有効・無効とか、記事の表示・非表示とか。
別テーブルにして有効か調べてから
データ抽出するよりも明らかにパフォーマンスは良い

>>73
WordPressでもその設計だけど、アンチパターンだよな
といいつつ、同じ設計を採用する場合も多々あるけどw
0075デフォルトの名無しさん (ワッチョイ 56bb-qaF0)
垢版 |
2022/07/31(日) 22:36:19.31ID:FuqqV1bj0
>>73
コメントの趣旨がわからなかったのですが、どこで単一テーブル継承を使用すると良いということだったのでしょうか?
あとそれはLaravelで実装できるものなのでしょうか?
0076デフォルトの名無しさん (ワッチョイ 56bb-qaF0)
垢版 |
2022/07/31(日) 22:39:18.52ID:FuqqV1bj0
>>74
有効・無効/表示・非表示をそれぞれ別テーブルに充てているということでしょうか?
あまり大規模な構築はやっていないので、冗長に思えます。

パフォーマンスに言及されていますが、どの部分(あるいはどの程度)でパフォーマンスに差が出ます?
ぜひ教えて下さい。指標の参考がほしいです
007766 (ワッチョイ cd2c-Og+R)
垢版 |
2022/07/31(日) 23:55:57.10ID:3aGOnqYZ0
>>75
Rails にも、単一テーブル継承といって、
フラグをRailsが裏側で、切り替えてくれる機能があるというだけの話

削除フラグとは関係ないけど
0078デフォルトの名無しさん (ワッチョイ 56bb-qaF0)
垢版 |
2022/08/01(月) 07:23:42.23ID:C2cXNFwd0
>>77
> 仕組み自体はそれほど難しいものではないのでRailsでも実装されてそうですけど

こちらに対してのコメントだったのですね
理解できました
*スレチな話題に誘導してしまい申し訳ありませんでした

回答、ありがとうございます
0079デフォルトの名無しさん (ワッチョイ 56bb-qaF0)
垢版 |
2022/08/02(火) 20:08:15.57ID:aTV235290
>>78
ソフトデリートのdeleted_atとmailの複合ユニークだとダメですね
DBとしては重複登録できてしまう

>>57 の退会回数とmailの複合ユニークがDBとしては正なんですかね
(0がアクティブってのが嫌なんですよねぇ)

もう少し悩んでみます
0081デフォルトの名無しさん (JP 0H0b-s6Hz)
垢版 |
2022/08/06(土) 14:06:30.02ID:wAL6zxMSH
上でnullはユニークとして扱われるって説明をしているのに、よく分からないの一言で終わってるやつ、一生エンジニアとして半人前のままで終わりそう
0083デフォルトの名無しさん (スッププ Sd33-N11w)
垢版 |
2022/08/06(土) 15:45:44.43ID:ZR5VDRAGd
>>59
これ見た感じ削除したものを復元する前提で考えるあたりマジでバッドノウハウだな
0085デフォルトの名無しさん (JP 0H0b-s6Hz)
垢版 |
2022/08/06(土) 16:38:51.56ID:wAL6zxMSH
>>82
SQLアンチパターンをちゃんと読もうな
どんなものにでもそれが必要なケースは必ずある
問題は、論理削除のように使うことで副作用を生み出してしまう設計を、
他に手段がある中でも思考停止で使ってしまうことにある
008663 (ワッチョイ ebbb-XGW1)
垢版 |
2022/08/07(日) 07:03:33.84ID:njdSVAOC0
>>81
そこは理解できました
頂いたコメントのおかげで、deleted_atとmailの複合ユニークを NULLS NOT DISTINCT のオプション設定できればイケそうと判断しましたが、調査調査の結果、MySQLだとダメっぽいのであきらめました。PostgreSQLならイケたかもしれません

理解できなかったのは

> フラグってのはbool型を意味する
> 一般的に論理削除フラグと主キーの組み合わせでユニークチェックする場合、論理削除フラグにはnullを設定する

boolなのにnullをフラグとして利用する前提???
かなり混乱して未だに理解できません

今は判定用のカラムを作る方向を模索しています
https://yaba-blog.com/laravel-softdelete-unique/
https://qiita.com/taruhachi/items/bb78d92efa67b6936201

良い案があればご教示ください
0090デフォルトの名無しさん (スッップ Sd22-Ickp)
垢版 |
2022/08/31(水) 18:10:35.97ID:FlEWiE9hd
PHP9では未定義変数はNGになるんだってな
0091デフォルトの名無しさん (ワッチョイ c27c-yNcK)
垢版 |
2022/08/31(水) 18:22:26.10ID:Vvk0HldG0
今でも未定義変数のまま利用するというケースが無かったし
厳密にエラーになるならそれはそれで良いかと思う
typoとかで分からなかったりする場合もあるだろうから歓迎かと
■ このスレッドは過去ログ倉庫に格納されています

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