!extend::vvvvv:1000:512
!extend::vvvvv:1000:512
★スレ立て時 ↑ が3行以上になるようコピペ
PHPに関する質問スレです
前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 13
https://mevius.5ch.net/test/read.cgi/tech/1631147923/
次スレは>>980以降
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
探検
【PHP】下らねぇ質問はここに書き込みやがれ 14
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 0f97-W3aP)
2022/09/20(火) 16:46:23.39ID:Sb2Kpzh+0519デフォルトの名無しさん (アウアウウー Sa39-bTTE)
2023/02/28(火) 01:34:20.21ID:YvnM6/8va それと、クラスメソッドやクラスプロパティ使う時も皆は明白に判断つくの?
インスタンス作成回数とかid作成はクラスメソッドとかみたいのは分かるけど俺はハッキリと判断つかないな
インスタンス作成回数とかid作成はクラスメソッドとかみたいのは分かるけど俺はハッキリと判断つかないな
520デフォルトの名無しさん (アウアウウー Sa39-bTTE)
2023/02/28(火) 01:50:28.85ID:YvnM6/8va HTMLに変換されるindex.php上で他のphpファイル上で定義されたメソッドを実行する場合、requireしなくてもいいのはなぜ?
requireはインスタンス作成時にのみ行うのかと思わせて他のケースもあるみたいで分からなくなる
requireはインスタンス作成時にのみ行うのかと思わせて他のケースもあるみたいで分からなくなる
521デフォルトの名無しさん (ワッチョイ 7da7-c/TO)
2023/02/28(火) 02:32:15.26ID:RiJyC4pT0 requireで読み込むファイルはクラスや関数が書かれたライブラリだったり
定数や共通の設定事項を記載したファイルだったり
単にhtmlを出力してるだけのファイルならその内容が読み込んだ側で出力されるし用途は様々
C言語で書かれたPHPコアライブラリに含まれてる関数群やPDOなんかのクラスは
使用するにあたってrequireなんて書いたりしないけど
PHPで作られてるものはrequireしないと使えない
インスタンスだの継承だのそんな次元の話じゃない
定数や共通の設定事項を記載したファイルだったり
単にhtmlを出力してるだけのファイルならその内容が読み込んだ側で出力されるし用途は様々
C言語で書かれたPHPコアライブラリに含まれてる関数群やPDOなんかのクラスは
使用するにあたってrequireなんて書いたりしないけど
PHPで作られてるものはrequireしないと使えない
インスタンスだの継承だのそんな次元の話じゃない
522デフォルトの名無しさん (ワッチョイ f6bb-Arif)
2023/02/28(火) 07:09:43.47ID:3WmX3+jc0 基礎的なところからすれ違ってんだから体系的に学習できる本でも読めよ
phpは基礎が学べればあとはマニュアルでなんとかなるくらいマニュアルが優秀だけど、そもそもの基礎がズレてたらマニュアルも読めん
phpは基礎が学べればあとはマニュアルでなんとかなるくらいマニュアルが優秀だけど、そもそもの基礎がズレてたらマニュアルも読めん
523デフォルトの名無しさん (アウアウウー Sa39-TMU/)
2023/02/28(火) 08:28:11.46ID:xmhsjsFza 基礎がおかしいか。Progateで勉強したけどrequireするしないの差が曖昧だった
何で勉強しようと思ったかというと、今使ってるブログサービスで不具合あって、そこがWordPressだから直せないかなと思った
である程度勉強してブログ設定見たらユーザーが触れる部分はHTMLで勉強の意味無かった
意味無かったけど途中までやったから全部終わらせた
PHPかなり難しかったよ。でもCやってたら楽々なんだろうな
何で勉強しようと思ったかというと、今使ってるブログサービスで不具合あって、そこがWordPressだから直せないかなと思った
である程度勉強してブログ設定見たらユーザーが触れる部分はHTMLで勉強の意味無かった
意味無かったけど途中までやったから全部終わらせた
PHPかなり難しかったよ。でもCやってたら楽々なんだろうな
524デフォルトの名無しさん (ワッチョイ f6bb-Arif)
2023/02/28(火) 09:06:04.41ID:3WmX3+jc0 WordPressはphpとはまた別物
多分、両方エキスパートって人はいないと思う
そもそも一般的なphp開発だと、requireとかほぼ使わなくなってる
composerのautoloadがメジャーだよ
WordPressがやりたいんだったら、一般的なphpじゃなくてそれ用の本読んだほうがいいかなぁ
多分、両方エキスパートって人はいないと思う
そもそも一般的なphp開発だと、requireとかほぼ使わなくなってる
composerのautoloadがメジャーだよ
WordPressがやりたいんだったら、一般的なphpじゃなくてそれ用の本読んだほうがいいかなぁ
525デフォルトの名無しさん (ワッチョイ fab7-okFi)
2023/02/28(火) 09:19:48.98ID:95tx/KzW0 >>518
まず言語仕様として1ファイル1クラスじゃなくてもいい。1ファイルに複数クラス定義を書いてもいい。
(ただし作法としては1ファイル1クラスにするのが望ましい)
そしてrequireは別のファイルからコードを挿入してくるだけの機能
例えばecho文が書かれたPHPファイルをrequireしたらその時に実行される。
まず言語仕様として1ファイル1クラスじゃなくてもいい。1ファイルに複数クラス定義を書いてもいい。
(ただし作法としては1ファイル1クラスにするのが望ましい)
そしてrequireは別のファイルからコードを挿入してくるだけの機能
例えばecho文が書かれたPHPファイルをrequireしたらその時に実行される。
526デフォルトの名無しさん (ワイーワ2 FF42-pseD)
2023/02/28(火) 12:09:34.54ID:K5lzl+NyF ファイルには関数やクラスの定義だけしておくパターンが多いかな
527デフォルトの名無しさん (ワッチョイ ee89-9dkJ)
2023/02/28(火) 16:54:00.06ID:E6p/DZkf0 そんなに違いが気になるなら、Ruby の逆引き本を読んだ方が早い
Ruby on Rails が良い
Ruby on Rails が良い
528デフォルトの名無しさん (オッペケ Sr75-tD1/)
2023/02/28(火) 18:14:11.17ID:qVVLPrT9r Rubyって読みづらくね?
波括弧ないしif~endとかダサい
波括弧ないしif~endとかダサい
529デフォルトの名無しさん (ワッチョイ ae5f-W5vA)
2023/03/01(水) 01:33:59.12ID:UTDLtYqT0 >>528
そういうのをかっこいいと思ってる人たちが使っているんです
そういうのをかっこいいと思ってる人たちが使っているんです
530デフォルトの名無しさん (ワッチョイ 9d5f-pseD)
2023/03/01(水) 03:49:41.82ID:QN9phVrM0 file_put_contentsでjsonにデータを書き込みたいんだけど、jsonに
[ ]
を予め用意しておいて その中にデータ書き込むって出来ないかなあ?
[ ]
を予め用意しておいて その中にデータ書き込むって出来ないかなあ?
531デフォルトの名無しさん (ワッチョイ ae5f-W5vA)
2023/03/01(水) 08:43:06.85ID:UTDLtYqT0532デフォルトの名無しさん (ワッチョイ 9d5f-pseD)
2023/03/01(水) 10:36:45.89ID:QN9phVrM0533デフォルトの名無しさん (ワッチョイ 9d5f-pseD)
2023/03/01(水) 10:37:24.79ID:QN9phVrM0 ちがうか、先に違うオブジェクトにしておくのか
534デフォルトの名無しさん (ワッチョイ 9a7c-W5vA)
2023/03/01(水) 11:19:20.74ID:90jK5EfG0 何で出来ない奴はこうも説明が下手なんだ・・・
何を言っているか分からんよw
何を言っているか分からんよw
535デフォルトの名無しさん (ワッチョイ fab7-okFi)
2023/03/01(水) 17:28:10.18ID:XGVF9QRc0 >>530
動的に書き込みたい部分以外はJSONのテンプレートとして事前に用意しておきたいってことだろうか
そう仮定すると考えるのはこの3通りくらい
1) テンプレートを一度jsonオブジェクトとして読み込んで、目的の階層にデータを代入して、まとめて書き出す
2) テンプレート側にデータとして存在しえない文字列を用意しておいて、文字列として読み込んだjsonから文字列置換する
3) JSONを読み取る側を改修して、固定部分と動的部分を別ファイルから読み取るようにする
動的に書き込みたい部分以外はJSONのテンプレートとして事前に用意しておきたいってことだろうか
そう仮定すると考えるのはこの3通りくらい
1) テンプレートを一度jsonオブジェクトとして読み込んで、目的の階層にデータを代入して、まとめて書き出す
2) テンプレート側にデータとして存在しえない文字列を用意しておいて、文字列として読み込んだjsonから文字列置換する
3) JSONを読み取る側を改修して、固定部分と動的部分を別ファイルから読み取るようにする
536デフォルトの名無しさん (ワッチョイ 9d5f-pseD)
2023/03/01(水) 20:41:59.79ID:QN9phVrM0 >>535
ああ、一旦オブジェクトなり配列にして、未登録のデータだった時にオブジェクト一個追加してJSON全部上書きしちゃうのは自分でもできそう
データの数も3桁行かない程度だし、データ読み出して書くのもそんな重くならないか
後は動的にデータおる部分の見直しですね
ああ、一旦オブジェクトなり配列にして、未登録のデータだった時にオブジェクト一個追加してJSON全部上書きしちゃうのは自分でもできそう
データの数も3桁行かない程度だし、データ読み出して書くのもそんな重くならないか
後は動的にデータおる部分の見直しですね
537デフォルトの名無しさん (ワッチョイ 1302-QeO8)
2023/03/05(日) 11:24:39.77ID:QdgOL0Oo0 どちらが適正ですか?
try {
//ファイルを保存先ディレクトリに移動させる
if (move_uploaded_file($_FILES['upload_image']['tmp_name'], $save)) {
echo 'アップロード成功しました。';
} else {
echo 'アップロード失敗しました。';
}
} catch (Exception $e) {
echo 'アップロードエラー: ' . $e->getMessage();
}
try {
//ファイルを保存先ディレクトリに移動させる
move_uploaded_file($_FILES['upload_image']['tmp_name'], $save);
} catch (Exception $e) {
echo 'アップロードエラー: ' . $e->getMessage();
}
try {
//ファイルを保存先ディレクトリに移動させる
if (move_uploaded_file($_FILES['upload_image']['tmp_name'], $save)) {
echo 'アップロード成功しました。';
} else {
echo 'アップロード失敗しました。';
}
} catch (Exception $e) {
echo 'アップロードエラー: ' . $e->getMessage();
}
try {
//ファイルを保存先ディレクトリに移動させる
move_uploaded_file($_FILES['upload_image']['tmp_name'], $save);
} catch (Exception $e) {
echo 'アップロードエラー: ' . $e->getMessage();
}
538デフォルトの名無しさん (ワッチョイ 1361-y7Dr)
2023/03/05(日) 12:02:39.82ID:A2ppgH2U0 >>537
上
上
539デフォルトの名無しさん (ワッチョイ 1302-QeO8)
2023/03/05(日) 13:31:58.17ID:QdgOL0Oo0 >>538ありがとうございます。
540デフォルトの名無しさん (ワッチョイ 1302-QeO8)
2023/03/05(日) 15:15:03.70ID:QdgOL0Oo0 phpの実行を3つに区分したとして、
「データベースのmysqli接続」
「POST送信データバリデーションチェック」
「クエリ実行」
try-catch文、トランザクション処理を記述する場所
って以下であっていますか?
try{
//データベース接続処理
...
//入力バリデーションチェック
...
//トランザクション開始
$mysqli->begin_transaction();
//クエリ実行
...
// トランザクション処理
if (!$mysqli->commit()) {
throw new Exception("トランザクションが失敗しました。");
}
}catch (Exception $e) {
echo $e->getMessage();
$mysqli->rollback();
}
「データベースのmysqli接続」
「POST送信データバリデーションチェック」
「クエリ実行」
try-catch文、トランザクション処理を記述する場所
って以下であっていますか?
try{
//データベース接続処理
...
//入力バリデーションチェック
...
//トランザクション開始
$mysqli->begin_transaction();
//クエリ実行
...
// トランザクション処理
if (!$mysqli->commit()) {
throw new Exception("トランザクションが失敗しました。");
}
}catch (Exception $e) {
echo $e->getMessage();
$mysqli->rollback();
}
541デフォルトの名無しさん (アウアウアー Sa8b-Gptz)
2023/03/05(日) 17:02:00.95ID:pluyAGbia commit部分のthrowは要らないのでは?
542デフォルトの名無しさん (ワッチョイ 8b63-Qpn1)
2023/03/05(日) 17:44:49.95ID:M62PQQGq0 commitしようとしたら、ファイルが壊れました、とか
543デフォルトの名無しさん (アウアウアー Sa8b-Gptz)
2023/03/05(日) 18:28:19.70ID:pluyAGbia DB壊れたらシステム止まって別のトランザクションも動かないだろうから
全てのトランザクションに書かなくて良いと思う
全てのトランザクションに書かなくて良いと思う
544デフォルトの名無しさん (ワッチョイ e9a7-8P30)
2023/03/05(日) 21:45:08.47ID:GipSGO790 PDOで例外投げるよう設定して
catchすべきなのはPDOExceptionじゃね
catchすべきなのはPDOExceptionじゃね
545デフォルトの名無しさん (ブーイモ MMcb-5TsK)
2023/03/06(月) 10:18:27.62ID:8oxT6MrcM こういうのもchatgptさんに
PHPでDB接続する例文書いて。例外おきたときの対処もよろ。
と言うだけでだいたい書いてくれる。
でもさ、
もしも全員がchatgptさんだけ使って
ブログ記事などが一切なくなった場合は
どこからサンプルソース解析してくるんだろう?
公式リファレンスしか存在しなくても
たくさんサンプルあみだせるんかな?
PHPでDB接続する例文書いて。例外おきたときの対処もよろ。
と言うだけでだいたい書いてくれる。
でもさ、
もしも全員がchatgptさんだけ使って
ブログ記事などが一切なくなった場合は
どこからサンプルソース解析してくるんだろう?
公式リファレンスしか存在しなくても
たくさんサンプルあみだせるんかな?
546デフォルトの名無しさん (オッペケ Sr45-+tQF)
2023/03/06(月) 13:06:49.25ID:UVP5G7/Er chatgptかなりいい加減だぞ
こっちが詳しく聞いてもありえないコードと解説もよくするし
こっちが詳しく聞いてもありえないコードと解説もよくするし
547デフォルトの名無しさん (ワッチョイ d6a7-Cjjx)
2023/03/12(日) 10:28:41.64ID:/WQQIT0F0 PDOStatement::columnCountって
PDOStatement::fetchができる回数を示しているものであってますか?
int(0)を想定したクエリ出しても
どんなクエリでも常にint(n)になってしまってお手上げです
PDOStatement::rowCountはSQLiteのため常に0を返すとのことで使えません
ものすごい古いNAS上に構築された環境なのでそれの影響もあるかもしれませんが
ループ上でfetchがbool返すまでやるしかないでしょうか?
PDOStatement::fetchができる回数を示しているものであってますか?
int(0)を想定したクエリ出しても
どんなクエリでも常にint(n)になってしまってお手上げです
PDOStatement::rowCountはSQLiteのため常に0を返すとのことで使えません
ものすごい古いNAS上に構築された環境なのでそれの影響もあるかもしれませんが
ループ上でfetchがbool返すまでやるしかないでしょうか?
548547 (ワッチョイ d6a7-Cjjx)
2023/03/12(日) 10:29:40.64ID:/WQQIT0F0 どんなクエリでも常にint(n)になってしまってお手上げです
↓
どんなクエリでも常にint(n)になってしまってお手上げです (n>0)
です
↓
どんなクエリでも常にint(n)になってしまってお手上げです (n>0)
です
549デフォルトの名無しさん (ワッチョイ 56bb-EKUa)
2023/03/12(日) 10:33:06.48ID:yWzg52lT0 > PDOStatement::fetchができる回数を示しているものであってますか?
間違ってます。
間違ってます。
550デフォルトの名無しさん (ワッチョイ d6a7-Cjjx)
2023/03/12(日) 11:14:32.05ID:/WQQIT0F0 そうですねすみません
よく読んだら全然違った
久々にPHPいじってるのでこんなこともわからなくなってるとは・・・
*が最大数で1以上になるのは当たり前ですね
よく読んだら全然違った
久々にPHPいじってるのでこんなこともわからなくなってるとは・・・
*が最大数で1以上になるのは当たり前ですね
551デフォルトの名無しさん (ワッチョイ 6610-3g29)
2023/04/24(月) 10:58:21.24ID:JH1evJvp0 みなさんはIF地獄になったときどうしてますか?
最適化するまで試行錯誤しますか?
それとも「できる・動く」を優先して進めますか?
最適化するまで試行錯誤しますか?
それとも「できる・動く」を優先して進めますか?
552デフォルトの名無しさん (ワッチョイ 6663-RykB)
2023/04/24(月) 11:03:45.16ID:CIhFKz1G0 動けば良いってものじゃない
553デフォルトの名無しさん (ワッチョイ 9ee7-RykB)
2023/04/24(月) 11:05:33.74ID:xRkzUvA90 >>551
メソッドか関数にして追い出しておく
あとでリファクタする際にその関数だけでテストできるように下準備だけしておく
未来の自分・他人がやりやすいようにして今は目をつぶる、がコーディングの鉄則
最適化は最初の仕事かつ最後の仕事だが、途中でやるのだけはNG
メソッドか関数にして追い出しておく
あとでリファクタする際にその関数だけでテストできるように下準備だけしておく
未来の自分・他人がやりやすいようにして今は目をつぶる、がコーディングの鉄則
最適化は最初の仕事かつ最後の仕事だが、途中でやるのだけはNG
554デフォルトの名無しさん (ワッチョイ 6610-3g29)
2023/04/24(月) 16:04:38.35ID:JH1evJvp0 >>553
メソッドに追い出してもIFが続きますね。
どちらにしろ「Aがある場合~Aがない場合~」みたいな処理が必要ですし。
綺麗なコードとわかりやすいコードって違うと思うんですよね。
1ファイルにダラーっとコードが記述されると汚いですが、
上から下まで読めば何がしたいかは大体わかります。
しかし、クラスなりメソッドなりに分けると、複数ファイルにまたがって複雑です。
適切な名前を付けてファイルを参照しやすくすれば手間は軽減されますが、
今度は適切な名前を考えるのに時間を消費し、開発に遅れが生じてしまいます。
メソッドに追い出してもIFが続きますね。
どちらにしろ「Aがある場合~Aがない場合~」みたいな処理が必要ですし。
綺麗なコードとわかりやすいコードって違うと思うんですよね。
1ファイルにダラーっとコードが記述されると汚いですが、
上から下まで読めば何がしたいかは大体わかります。
しかし、クラスなりメソッドなりに分けると、複数ファイルにまたがって複雑です。
適切な名前を付けてファイルを参照しやすくすれば手間は軽減されますが、
今度は適切な名前を考えるのに時間を消費し、開発に遅れが生じてしまいます。
555デフォルトの名無しさん (ワッチョイ c5e6-ASru)
2023/04/24(月) 19:55:07.81ID:CirHdNf40 綺麗でもわかりにくいコードはあるが、汚いのにわかりやすいコードというのは無いな
556デフォルトの名無しさん (ワッチョイ e6bb-lTfL)
2023/04/25(火) 07:41:04.47ID:ubLXos3L0 >>554
一度適当なフレームワークでシステム作ってみるといいよ
感想がぜんぜん変わるから
> 今度は適切な名前を考えるのに時間を消費し、開発に遅れが生じてしまいます。
copilotさんとか使うといい
一度適当なフレームワークでシステム作ってみるといいよ
感想がぜんぜん変わるから
> 今度は適切な名前を考えるのに時間を消費し、開発に遅れが生じてしまいます。
copilotさんとか使うといい
557デフォルトの名無しさん (ワッチョイ 6610-3g29)
2023/04/25(火) 08:12:37.51ID:CC33Xm/N0558デフォルトの名無しさん (ワッチョイ e6bb-lTfL)
2023/04/25(火) 13:06:17.18ID:ubLXos3L0 >>557
フレームワーク使用したことがあるのに「クラスなりメソッドなりに分けると、複数ファイルにまたがって複雑です。」とか言っちゃうのはかなりまずい気がするけど、複雑な要件の実装時に十分に責任分解できてないんじゃないかなぁ…
https://github.com/alexeymezenin/laravel-best-practices/blob/master/japanese.md#%E5%8D%98%E4%B8%80%E8%B2%AC%E4%BB%BB%E3%81%AE%E5%8E%9F%E5%89%87
これのGoodがGoodに感じられないってことだよね?
フレームワーク使用したことがあるのに「クラスなりメソッドなりに分けると、複数ファイルにまたがって複雑です。」とか言っちゃうのはかなりまずい気がするけど、複雑な要件の実装時に十分に責任分解できてないんじゃないかなぁ…
https://github.com/alexeymezenin/laravel-best-practices/blob/master/japanese.md#%E5%8D%98%E4%B8%80%E8%B2%AC%E4%BB%BB%E3%81%AE%E5%8E%9F%E5%89%87
これのGoodがGoodに感じられないってことだよね?
559デフォルトの名無しさん (アウアウウー Sa21-PXVT)
2023/04/25(火) 13:27:47.02ID:gJ92KJGfa コミュニティーの議論や歴史を調べること
Ruby on Rails では、コントローラーの肥大化を防ぐために、
Skinny Controller, Fat Model を推奨した。
その結果、モデルが肥大化した
そこで今度は、モデルの処理を減らすために、
Form Object, Service Object へ処理を分けた
また表示処理は、Presenter へ分けた。
それで、Form Presenter, Model Presenter が出来た
Ruby on Rails では、コントローラーの肥大化を防ぐために、
Skinny Controller, Fat Model を推奨した。
その結果、モデルが肥大化した
そこで今度は、モデルの処理を減らすために、
Form Object, Service Object へ処理を分けた
また表示処理は、Presenter へ分けた。
それで、Form Presenter, Model Presenter が出来た
560デフォルトの名無しさん (ワッチョイ e6bb-5x1U)
2023/04/25(火) 13:27:53.51ID:A07qb0io0 こういうのは2つ実際に書いてみて、両者を見比べて良い方を採用する
理屈よりも、自分の目で見て判断するのが良い
理屈よりも、自分の目で見て判断するのが良い
561デフォルトの名無しさん (ワッチョイ 6610-3g29)
2023/04/25(火) 15:25:51.23ID:CC33Xm/N0562デフォルトの名無しさん (ワッチョイ 5e5f-RykB)
2023/04/25(火) 15:27:54.01ID:dvdIAVRA0 古いPHPのシステムを保守するならDockerにぶち込むのが一番?
563デフォルトの名無しさん (スッップ Sd0a-T9f9)
2023/04/26(水) 13:32:18.14ID:oPAFNUffd 結局ifは減らないんだよね
ファイルを分けても分けなくても、オブジェクト指向でもそうでなくとも
Strategy/StateパターンとTemplateパターンの併用にして
スイッチっぽく分岐をわかりやすするのが一番かな
ファイルを分けても分けなくても、オブジェクト指向でもそうでなくとも
Strategy/StateパターンとTemplateパターンの併用にして
スイッチっぽく分岐をわかりやすするのが一番かな
564デフォルトの名無しさん (ワッチョイ aa7c-RykB)
2023/04/26(水) 13:45:21.48ID:DHcVafSS0 ifを無理に減らす必要は無いのでは?
必要なら書かなきゃいけないし
ただ処理が集約出来るとかなら外に追い出したらいいし
パターンが多い場合はswitch()の方が良い場合も確かにあるし
ケースバイケースかと
elseifが並ぶのは個人的に嫌いだがw
必要なら書かなきゃいけないし
ただ処理が集約出来るとかなら外に追い出したらいいし
パターンが多い場合はswitch()の方が良い場合も確かにあるし
ケースバイケースかと
elseifが並ぶのは個人的に嫌いだがw
565デフォルトの名無しさん (スップ Sdea-rwG/)
2023/04/26(水) 13:47:42.93ID:poJ+ClSWd elseif嫌いわかる
elseの中にif書きたい
パターン3つ以上になるならswitchにするな
elseの中にif書きたい
パターン3つ以上になるならswitchにするな
566デフォルトの名無しさん (ワッチョイ 5e5f-RykB)
2023/04/26(水) 13:57:33.29ID:w+qfVGMw0 else if は嫌いというか、あとで取捨選択が面倒なので
if文単独で成り立つようにしておくことが多いな
if文単独で成り立つようにしておくことが多いな
567デフォルトの名無しさん (ワッチョイ 1149-RykB)
2023/04/28(金) 14:22:47.60ID:woDvEBlt0 訊きたいことありましたが自決しました
568デフォルトの名無しさん (ブーイモ MMc9-EW+4)
2023/04/28(金) 14:52:55.46ID:L2hGySASM おお死んでしまうとはなにごとだ
569デフォルトの名無しさん (ワッチョイ 7502-rwG/)
2023/04/28(金) 15:31:57.97ID:4N/b4mKa0 盆には帰ってこいよ
570デフォルトの名無しさん (ワッチョイ b77c-6bRy)
2023/04/30(日) 00:40:31.69ID:z7x3mWoF0 PHP7.2.24をインストールしました。Composerもインストールしました。
次のようなExtensionも使えるようにしたいのですが、つまっています。
ext-bcmath,ext-ctype,ext-curl,・・・
ネット上でみたところ、PHPの用語でモジュールとExtension、ライブラリとあるようですが、
それぞれ違うものなのですか?
次のようなExtensionも使えるようにしたいのですが、つまっています。
ext-bcmath,ext-ctype,ext-curl,・・・
ネット上でみたところ、PHPの用語でモジュールとExtension、ライブラリとあるようですが、
それぞれ違うものなのですか?
571デフォルトの名無しさん (ワッチョイ 9f7c-fitb)
2023/04/30(日) 01:15:52.37ID:vhG6z0vz0 PHPの拡張ならそれを入れないと使えないのでは・・・
composerはあくまで自分の作るプログラムで使うライブラリを導入するもの
composerはあくまで自分の作るプログラムで使うライブラリを導入するもの
572デフォルトの名無しさん (ワッチョイ efae-KeI6)
2023/05/12(金) 22:24:38.02ID:sJueD97p0 サーバーのバックエンドの*.phpはpost送信などで任意で呼び出して実行されますが
このバックエンドの*.phpで自発的に一定時間ごとにプログラムを駆動させることはできますか?
例えば1時間おきとか1日おきとかに規定プログラムを実行なんていうのは
このバックエンドの*.phpで自発的に一定時間ごとにプログラムを駆動させることはできますか?
例えば1時間おきとか1日おきとかに規定プログラムを実行なんていうのは
573デフォルトの名無しさん (ワッチョイ 527c-KeI6)
2023/05/12(金) 22:30:23.15ID:+3Auf0UC0 cronに登録すればいいだけでは?
PHPをデーモンとして常駐させてその中で定期的に動かす方法もあるだろうけど
PHPをデーモンとして常駐させてその中で定期的に動かす方法もあるだろうけど
574デフォルトの名無しさん (ワッチョイ efa7-vOwS)
2023/05/12(金) 23:50:55.10ID:A3+wmcch0 無限ループとsleep使ったスクリプトを起動させときゃいいけど
自分でコントロール出来ないサーバだと勝手にkillされるかもな
自分でコントロール出来ないサーバだと勝手にkillされるかもな
575デフォルトの名無しさん (ワッチョイ 1349-ELkX)
2023/05/13(土) 09:35:12.10ID:vNstIXFZ0 例えばWindowsならコマンドプロンプトで
「php.exe <そのファイル>」
と打てば実行できる(環境変数に入ってる前提で)
そういうことじゃないの?
あとはWindowsならタスクスケジューラとかLinuxならcronとかで、同じように実行すればいい
「php.exe <そのファイル>」
と打てば実行できる(環境変数に入ってる前提で)
そういうことじゃないの?
あとはWindowsならタスクスケジューラとかLinuxならcronとかで、同じように実行すればいい
576デフォルトの名無しさん (ワッチョイ 835f-+6/9)
2023/05/18(木) 11:36:31.84ID:cerdIEN00 フロントエンドはJS、バックエンドはPHPってできるだけ切り離したい
バックエンドとしてDBからデータ受け取るためだけにPHP使うってありなのかな?
あと現状スクラッチ開発しかしたことがないからバックエンド向けのフレームワークも試してみたい
バックエンドとしてDBからデータ受け取るためだけにPHP使うってありなのかな?
あと現状スクラッチ開発しかしたことがないからバックエンド向けのフレームワークも試してみたい
577デフォルトの名無しさん (ワッチョイ cfbb-ScEU)
2023/05/18(木) 11:39:20.88ID:yxJWp9Lm0 すればいいじゃん
がんばれ
がんばれ
578デフォルトの名無しさん (オッペケ Sr87-9+eW)
2023/05/18(木) 12:33:14.63ID:l6GHSnlrr 言語はなんでもいいならphpなんて選ばない
普通はrubyかJavaかpythonだぞ
phpはやめとけ
普通はrubyかJavaかpythonだぞ
phpはやめとけ
579デフォルトの名無しさん (ワッチョイ 63f9-ZkZz)
2023/05/18(木) 12:43:42.00ID:4rcvRPf10 Pythonは完全に対応しているサーバーが少ないみたい
Pythonとdjangoでバックエンド書く方法が自分にはまだわからない
Pythonとdjangoでバックエンド書く方法が自分にはまだわからない
580デフォルトの名無しさん (ワッチョイ 6fe7-ZkZz)
2023/05/18(木) 15:55:36.70ID:nTE2uard0581デフォルトの名無しさん (ワッチョイ ff7c-ZkZz)
2023/05/18(木) 16:38:05.22ID:BkqgSu2K0582デフォルトの名無しさん (オッペケ Sr87-ELkX)
2023/05/18(木) 16:43:12.95ID:psogGPWLr まあラクなのはphpやろなあ
ケースによって最適は異なるから、便利な言葉「場合による」
ケースによって最適は異なるから、便利な言葉「場合による」
583デフォルトの名無しさん (ワッチョイ cff8-8XTM)
2023/05/18(木) 17:32:55.73ID:7XjO1SKk0 なんでも使える自社サーバーなのか、
レンタルサーバーのつもりかで選択肢かわるもんな
phpはだいたい使えるから仕方ない
レンタルサーバーのつもりかで選択肢かわるもんな
phpはだいたい使えるから仕方ない
584デフォルトの名無しさん (ワッチョイ ff5c-ZkZz)
2023/05/18(木) 19:26:52.18ID:iyBRbBgp0 VPSなら何だって使える
585デフォルトの名無しさん (ワッチョイ 835f-+6/9)
2023/05/19(金) 01:52:10.66ID:TiXR4GEz0 >>583
会社のサーバーがさくらのレンサバだから何でもかんでもPHPなんだよね
ごく小規模だからスクラッチ開発が基本だし
レベル低くて仕事で精一杯だしで何か独学するって余裕もないから、まずPHPの手軽さからわざと離れてJSでDOM操作は分けてみようかなぁと
会社のサーバーがさくらのレンサバだから何でもかんでもPHPなんだよね
ごく小規模だからスクラッチ開発が基本だし
レベル低くて仕事で精一杯だしで何か独学するって余裕もないから、まずPHPの手軽さからわざと離れてJSでDOM操作は分けてみようかなぁと
586デフォルトの名無しさん (ワッチョイ 1ba7-cUXk)
2023/05/22(月) 01:29:49.15ID:6n6FPMUf0587デフォルトの名無しさん (ワッチョイ d1a7-Cr01)
2023/06/10(土) 20:37:19.56ID:TSaFGI4o0 WSL2(ubuntu)にLaravelインスコしてみたけど
メモリ8G程度だときっついですね
docker desktopとかwindowsターミナル入れろとかこの辺は
aptでdocker入れたりubuntu直接起動したりすればおkな感じですか?
とりあえずやってみてその方法でもいけたはいけたんですが(メモリも1Gぐらい減った)
ビルドしてるときの表示がバグったりちょっと不安要素がありました
メモリ8G程度だときっついですね
docker desktopとかwindowsターミナル入れろとかこの辺は
aptでdocker入れたりubuntu直接起動したりすればおkな感じですか?
とりあえずやってみてその方法でもいけたはいけたんですが(メモリも1Gぐらい減った)
ビルドしてるときの表示がバグったりちょっと不安要素がありました
588デフォルトの名無しさん (ワッチョイ 8bbb-hEWj)
2023/06/11(日) 08:50:59.31ID:nugYPewD0 メモリも問題だけど、たぶん最大の問題はファイルを配置した場所だと思うよ
・ソースコードをWSL2ディストリビューション領域内に配置する
で大幅に改善すると思う
・ソースコードをWSL2ディストリビューション領域内に配置する
で大幅に改善すると思う
589デフォルトの名無しさん (テテンテンテン MMeb-+QT+)
2023/06/12(月) 08:08:55.93ID:VNkMF7gVM httpリクエストで動的なサイトからデータ取得するのってやっぱり無理なんですかね?javascriptでhtmlが生成されるよなページんんだけど
590デフォルトの名無しさん (ワッチョイ 7930-2rqm)
2023/06/12(月) 10:00:10.61ID:AjUdrP5R0 無理ではない
curlやDOM操作のライブラリ自体は揃ってるんだから、後はあなたが頑張ってそのJavaScriptの動作を真似るだけ
curlやDOM操作のライブラリ自体は揃ってるんだから、後はあなたが頑張ってそのJavaScriptの動作を真似るだけ
591デフォルトの名無しさん (ワッチョイ 7b5f-2rqm)
2023/06/12(月) 10:25:34.03ID:mHRjcInk0 おれなら生成はブラウザにやらせるかな
出来た頃合いを見計らってデータを盗む
出来た頃合いを見計らってデータを盗む
592デフォルトの名無しさん (テテンテンテン MMeb-+QT+)
2023/06/12(月) 10:27:10.81ID:wQ6JiRj1M 例を示していただけませんか
593デフォルトの名無しさん (テテンテンテン MMeb-+QT+)
2023/06/12(月) 10:29:59.61ID:wQ6JiRj1M javascriptは通常ブラウザが実行します。しかしhttpリクエストではブラウザを介さないためjavascript は実行されません。ヘッドレスブラウザなどを使えば動的なコンテンツを取得できますが、わたしの課題はhttpリクエストで動的ページからデータを取得することです
594デフォルトの名無しさん (テテンテンテン MMeb-+QT+)
2023/06/12(月) 10:34:38.95ID:wQ6JiRj1M レスポンスを取得してからjavascriptを一回実行すればいいのかな?そんなことできるのかな
595デフォルトの名無しさん (ワッチョイ 7b5f-2rqm)
2023/06/12(月) 10:41:43.85ID:mHRjcInk0 大変だね
ブラウザ禁止縛りプレイならまあ自分で頑張るしかないね
ていうかphantomjsって開発停止してんだな 知らんかった
ブラウザ禁止縛りプレイならまあ自分で頑張るしかないね
ていうかphantomjsって開発停止してんだな 知らんかった
596デフォルトの名無しさん (テテンテンテン MMeb-+QT+)
2023/06/12(月) 21:30:39.08ID:DY0b1d5xM httpリクエストで動的なサイトからデータ取得するのってやっぱり無理なんですかね?javascriptでhtmlが生成されるよなページんんだけど
597デフォルトの名無しさん (ワッチョイ 8bbb-hEWj)
2023/06/12(月) 21:39:47.58ID:sQEwwMG40 おまえLaravelスレのアラシだろ
うざいよ
うざいよ
598デフォルトの名無しさん (ワッチョイ 7b5f-2rqm)
2023/06/12(月) 22:12:16.13ID:mHRjcInk0 >>596
puppeteerがいいんじゃない?
おれは使ったことないけど、phantomjsのメンテナが
「puppeteerあるならもうphantomjsなんかいらんわ」
って言いだして開発終了したらしいし、確かみてみろ
puppeteerがいいんじゃない?
おれは使ったことないけど、phantomjsのメンテナが
「puppeteerあるならもうphantomjsなんかいらんわ」
って言いだして開発終了したらしいし、確かみてみろ
599デフォルトの名無しさん (テテンテンテン MMeb-+QT+)
2023/06/12(月) 22:24:27.56ID:kqdcKHtBM puppetterというものはヘッドレスブラウザを使えるようにしたライブラリであり、わたしはスクレイピングをしたいわけではありません。わたしの課題はhttpリクエストで動的なサイトからデータを取得することであり、ヘッドレスブラウザを使用してスクレイピングをしたいわけではありません
600デフォルトの名無しさん (テテンテンテン MMeb-+QT+)
2023/06/12(月) 22:37:29.16ID:kqdcKHtBM わたしがヘッドレスブラウザを使わない理由はデータの取得時間がかかるからです。またわたしはデータベースを使用しないことを前提としているので、取得したデータを保持することはありません。つまり度々データを取得することになる場合に都度ヘッドレスブラウザーを走らせる設計は現実的ではありません
601デフォルトの名無しさん (ワッチョイ fbe7-2rqm)
2023/06/13(火) 11:41:46.36ID:zJMyBjWC0 >>600
これが各行ごとに良くわからないな
>データの取得時間がかかるからです
何が原因で取得時間がかかるようになるのか
実測してそんなに差異が出たってコト?
>データベースを使用しないことを前提としているので
DBなんか使わなきゃいいんじゃない?
>度々データを取得することになる
同一データを扱うならキャッシュすればいいんじゃない?
PHPでだってアホに作れば度々データ取得しに行っちゃうと思うよ
>現実的でありません
面倒くささ的にも自前でDOM構築する方が非現実的だよね
これが各行ごとに良くわからないな
>データの取得時間がかかるからです
何が原因で取得時間がかかるようになるのか
実測してそんなに差異が出たってコト?
>データベースを使用しないことを前提としているので
DBなんか使わなきゃいいんじゃない?
>度々データを取得することになる
同一データを扱うならキャッシュすればいいんじゃない?
PHPでだってアホに作れば度々データ取得しに行っちゃうと思うよ
>現実的でありません
面倒くささ的にも自前でDOM構築する方が非現実的だよね
602デフォルトの名無しさん (アウアウアー Sa8b-Seme)
2023/06/13(火) 16:08:55.26ID:Oj3crCHea async awaitとfetch使ってデータ取得すれば良いじゃん
603デフォルトの名無しさん (テテンテンテン MMeb-+QT+)
2023/06/13(火) 18:49:37.74ID:r31gUBK2M httpリクエストとスクレイピングでデータ取得の速度を比較する場合一般的にはhttpリクエストのほうが高速です。またわたしの想定では同一データではなく毎回違うクエリでリクエストすることが予想されます。
604デフォルトの名無しさん (テテンテンテン MMeb-+QT+)
2023/06/13(火) 18:50:18.43ID:r31gUBK2M >>602
具体的にはどのような手順でそれらを使用しますか?
具体的にはどのような手順でそれらを使用しますか?
605デフォルトの名無しさん (テテンテンテン MMeb-+QT+)
2023/06/13(火) 22:21:10.72ID:LrQ+wv81M 単純で簡単なjavascriptでレンダリングされているならいけたかもしれませんがフレームワークを使われていたら解析が困難ですね。やはり無理か
606デフォルトの名無しさん (テテンテンテン MMeb-+QT+)
2023/06/13(火) 22:21:52.68ID:LrQ+wv81M そしてnodejsが使えないのでヘッドレスブラウザも無理と。
607デフォルトの名無しさん (アウアウアー Sa8b-Seme)
2023/06/13(火) 23:39:40.44ID:Oj3crCHea >>604
取得したいサイトのURLとその出力htmlの欲しい部分教えて
取得したいサイトのURLとその出力htmlの欲しい部分教えて
608デフォルトの名無しさん (テテンテンテン MMeb-mVGR)
2023/06/14(水) 02:57:47.74ID:sJAdEXJGM >>607
取得したいサイトは複数ありますがECナビになります。
https://ecnavi.jp/search/?word=%E6%88%91%E3%81%8C%E5%A4%A9%E4%B8%8B
htmlの欲しい部分は表示される案件の部分です。
しかしフレームワークがhtmlをレンダリングされている可能性があり、おそらく解析は困難です。
ajaxからデータを取得するサイトもありましたがcros制限がかかっているため不可です。
ヘッドレスブラウザは環境が構築できないので選択肢には含みません。
わたしはhttpリクエストで動的なサイトのデータを取得するのは無理と判断しました。
取得したいサイトは複数ありますがECナビになります。
https://ecnavi.jp/search/?word=%E6%88%91%E3%81%8C%E5%A4%A9%E4%B8%8B
htmlの欲しい部分は表示される案件の部分です。
しかしフレームワークがhtmlをレンダリングされている可能性があり、おそらく解析は困難です。
ajaxからデータを取得するサイトもありましたがcros制限がかかっているため不可です。
ヘッドレスブラウザは環境が構築できないので選択肢には含みません。
わたしはhttpリクエストで動的なサイトのデータを取得するのは無理と判断しました。
609デフォルトの名無しさん (ワッチョイ 8bbb-hEWj)
2023/06/14(水) 04:20:42.50ID:Jx0dk3g+0 普通に利用規約違反じゃねぇかw
610デフォルトの名無しさん (アウアウウー Sadd-APG/)
2023/06/14(水) 05:35:16.83ID:VFw5jfyla >>587
WSL2, Ubuntu 20/22, VSCode, Windows Terminal, Docker Desktop
VSCodeの拡張機能・Remote Development に、
3つの拡張機能・Remote Container/WSL/SSH が含まれている
日本人が作った、多言語バージョンマネージャーのanyenv。
同様のツールに、asdf もある
Renv, crenv, denv, erlenv, exenv
goenv, hsenv, jenv, jlenv, luaenv
nodenv, phpenv, plenv, pyenv, rbenv
sbtenv, scalaenv, swiftenv, tfenv
漏れは、Ruby on Rails をやっているけど、メモリは32〜64GB ほしい
WSL2, Ubuntu 20/22, VSCode, Windows Terminal, Docker Desktop
VSCodeの拡張機能・Remote Development に、
3つの拡張機能・Remote Container/WSL/SSH が含まれている
日本人が作った、多言語バージョンマネージャーのanyenv。
同様のツールに、asdf もある
Renv, crenv, denv, erlenv, exenv
goenv, hsenv, jenv, jlenv, luaenv
nodenv, phpenv, plenv, pyenv, rbenv
sbtenv, scalaenv, swiftenv, tfenv
漏れは、Ruby on Rails をやっているけど、メモリは32〜64GB ほしい
611デフォルトの名無しさん (アウアウアー Sa8b-Seme)
2023/06/14(水) 06:54:43.13ID:4pmBicBja >>608
案件って「ポイントアップチャレンジ」の部分?
案件って「ポイントアップチャレンジ」の部分?
612デフォルトの名無しさん (テテンテンテン MMeb-+QT+)
2023/06/14(水) 07:38:40.54ID:dOe183t+M >>611
案件の部分はPCで閲覧していると表示されません。ゲームアプリ案件の場合はユーザーエージェントがモバイルOSである必要があります。
案件の部分はPCで閲覧していると表示されません。ゲームアプリ案件の場合はユーザーエージェントがモバイルOSである必要があります。
613デフォルトの名無しさん (ワッチョイ d1a7-Cr01)
2023/06/15(木) 15:12:03.05ID:pNWnTG3Z0 たかだかバックエンドのWeb開発するだけなのに
メモリ32GBとか要求される異常な時代w
メモリ32GBとか要求される異常な時代w
614デフォルトの名無しさん (スッップ Sd33-wNjT)
2023/06/15(木) 17:34:34.40ID:oe0OZOrwd WSL2で2GB
Chromeで2GB
その他諸々で10GB
Chromeで2GB
その他諸々で10GB
615デフォルトの名無しさん (ワッチョイ 8b63-2rqm)
2023/06/15(木) 17:37:28.87ID:KtHE2I/00 脳みそのメモリーが書き込み不可のエラーになってますし
616デフォルトの名無しさん (ワッチョイ d1a7-Cr01)
2023/06/15(木) 17:51:10.48ID:pNWnTG3Z0 各々アプリが肥大化しすぎてしまって…
minimal構成のも用意してくれればいいんだけどね
XPとか32bitOSが主流だった時代は4GBで十分足りただろうに
まあ今メモリ32GBで1万円ぐらいだから文句いうことでもないんだけど
minimal構成のも用意してくれればいいんだけどね
XPとか32bitOSが主流だった時代は4GBで十分足りただろうに
まあ今メモリ32GBで1万円ぐらいだから文句いうことでもないんだけど
617デフォルトの名無しさん (ワッチョイ 135c-2rqm)
2023/06/15(木) 18:17:52.09ID:jjmsD4tb0 32Gも要求されるって何開発してんの?
618デフォルトの名無しさん (ワッチョイ 8bbb-hEWj)
2023/06/15(木) 18:28:28.13ID:W3FATu2P0 616 じゃないけど、docker とブラウザ立ち上げてたら 16 GBをちょいちょい超えるから 32 GBに増設した
快適だぞ
快適だぞ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- ナイツ塙が指摘のローソンコーヒーカップ、ロゴ「L」で誤解生みデザイン変更へ 在庫使い切る3か月後にリニューアル [muffin★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- バービー、 台湾有事の発言の波紋で「たまったもんじゃない」「高市さんに真意は聞きたい」「国民に向けて説明してほしい」 [muffin★]
- 20代の3割が「テレビ見ない」現実…そして静かに広がる「究極のテレビ離れ」とは [muffin★]
- 【悲報】中国→日本行きの航空チケット、高市有事の影響で50万人分がキャンセルされる [834922174]
- 【悲報】早速高市首相のせいで全国の民泊でキャンセルラッシュwwwwwwwwwwww 経営者も嘆き「こんな事は初めてだ…」😲 [871926377]
- んなっしょい🍬禁止🈲のお🏡
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- 高市早苗「……なんて言ってみたw」中国「なんだ、言ってみただけかw」👈これで全部元通りになるという事実 [782460143]
- 【悲報】ガラパゴス島国ジャップ、自分達の容姿が優れてると錯覚してしまう [383063292]
