[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2ch.scのread.cgiへ]
Update time : 02/23 23:57 / Filesize : 381 KB / Number-of Response : 998
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【PHP】下らねぇ質問はここに書き込みやがれ 14



1 名前:デフォルトの名無しさん [2022/09/20(火) 16:46:23.39 ID:Sb2Kpzh+0.net]
!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

496 名前:デフォルトの名無しさん mailto:sage [2023/02/16(木) 16:20:52.89 ID:ZhDpu7bI0.net]
IDEはEclipseで十分

497 名前:デフォルトの名無しさん mailto:sage [2023/02/16(木) 17:17:33.60 ID:U29SVQBb0.net]
>>495
ありがとうございます。

498 名前:デフォルトの名無しさん mailto:sage [2023/02/17(金) 00:53:37.37 ID:VY6wNZlY0.net]
PHPのシンタックスハイライトぐらいしか出来ないエディタで
5MBほどの社内用プログラムをかきあげたことがあるぞ(゚A゚;)

499 名前:デフォルトの名無しさん mailto:sage [2023/02/17(金) 01:00:09.42 ID:O/H37gNs0.net]
メモ帳野郎が湧くぞ

500 名前:デフォルトの名無しさん mailto:sage [2023/02/18(土) 16:21:45.50 ID:wTUF9m4P0.net]
cd ~/.ssh


の ~ ってどういう意味なのでしょうか?

cd .ssh だと確かにこのディレクトリに入れません。決まり文句と覚えておけばよいでしょうか?

501 名前:デフォルトの名無しさん mailto:sage [2023/02/18(土) 17:00:32.72 ID:zhx+QJQI0.net]
>>500
スレチ

502 名前:デフォルトの名無しさん mailto:sage [2023/02/25(土) 19:20:55.02 ID:L/ecqLAZ0.net]
>>496
ホームディレクトリの略だよ

503 名前:デフォルトの名無しさん mailto:sage [2023/02/26(日) 23:08:14.21 ID:yz/O0wFra.net]
requireとextendsはどう違うの?
requireはclassだけ呼ぶのかと思ったらプロパティも呼ぶし混乱する
この2つ重なってない?

504 名前:デフォルトの名無しさん mailto:sage [2023/02/27(月) 00:20:33.97 ID:sow/rINj0.net]
includeとrequireを混同するのは微笑ましいあるあるだけど
extendsは初めて見るパターンで困惑する



505 名前:デフォルトの名無しさん mailto:sage [2023/02/27(月) 01:15:02.38 ID:BPjGYXVma.net]
無能なんだな俺

でも分かった
requireは親のクラスを使ってインスタンスが作れる。だから呼び出し元でclass Hoge { しなくていい
requireは更に親のphpファイルで作った変数が使える
requireは更に親のphpファイルで作ったコンストラクタを使える
つまりclass内が使える

一方のextendsはclass Hoge { の外にあるメソッドとかを継承する

↑この理解はどうかな?

506 名前:デフォルトの名無しさん mailto:sage [2023/02/27(月) 01:24:44.70 ID:BPjGYXVma.net]
メソッドもclass Hoge {の中にあるのか。やっぱ被ってるように思うけど

507 名前:デフォルトの名無しさん mailto:sage [2023/02/27(月) 04:20:55.93 ID:ocW3Jac80.net]
requireはあくまでも外部のPHPファイルを読み込んでるだけ
そこに記載されたクラスを継承して新たにクラスを作ることとは何の関連もない
ポリモーフィズムの概念やらオブジェクト指向がなんたるかを勉強してきたほうがいい

508 名前:デフォルトの名無しさん mailto:sage [2023/02/27(月) 04:22:36.00 ID:ocW3Jac80.net]
ちなみにネコがワンと鳴くみたいな説明してるとこは見ない方がいい

509 名前:デフォルトの名無しさん mailto:sage [2023/02/27(月) 04:37:15.50 ID:iRiTYulC0.net]
俺はPHPだけじゃなくて、Windowsアプリ開発もできる

510 名前:デフォルトの名無しさん mailto:sage [2023/02/27(月) 08:40:23.44 ID:TElJ4lxXa.net]
>>507
You Tubeいくつか見てみるよ

511 名前:デフォルトの名無しさん mailto:sage [2023/02/27(月) 13:52:10.05 ID:OQAydld20.net]
初心者なんだけど他人のコード見てたら

if(true){
・・・
}

if(false){
・・・
}

とかあるんだが、これはどういう条件式なの?
ifの中に変数名が入っていたりしたら入ってるかどうかぐらいなのはわかるんだけど、
不思議な書き方なのでよくわからんです

512 名前:デフォルトの名無しさん mailto:sage [2023/02/27(月) 13:59:57.21 ID:sow/rINj0.net]
>>511
・もともとはif文の中に条件判定が入ってたが、削除したときに横着した
・実験でコメントアウトしたり戻したりを頻繁にしてたときのなごり雪
ふざけすぎたコーディングの跡で

513 名前:デフォルトの名無しさん mailto:sage [2023/02/28(火) 01:30:55.97 ID:YvnM6/8va.net]
やっぱrequireよく分からんな
とあるwebページ作ってて、管理しやすくするためにphpファイルをiedex.php、data.php、hoge.php、hogehoge.phpみたいに分ける
data.phpにインスタンスまとめる。この場合data.phpは各クラスをrequireする
index.phpはHTMLとして表示される。この場合ここはdata.phpをrequireする
hoge.phpとhogehoge.phpはclassだけど、他のクラスから継承しないならrequireしたりしない

extendsは分かったかも
とあるクラスからインスタンスを作る。このインスタンスをタイプは同じだけど性質によって分けたいならextendsする

アニマルクラスを作る。プロパティは
種族
年齢
吠える
そのクラスから犬クラスと猫クラスに分けてからインスタンス作りたい場合、extendsでアニマルクラスを継承する(プロパティは共通だから)

これでどうかな。requireせずにextendsだけする事あるのだろうか?必ずrequireやincludeとかのファイル読み込みをセットで使う?
それと皆は本当にハッキリとrequireするかしないか分かるの?

514 名前:デフォルトの名無しさん mailto:sage [2023/02/28(火) 01:34:20.21 ID:YvnM6/8va.net]
それと、クラスメソッドやクラスプロパティ使う時も皆は明白に判断つくの?
インスタンス作成回数とかid作成はクラスメソッドとかみたいのは分かるけど俺はハッキリと判断つかないな



515 名前:デフォルトの名無しさん mailto:sage [2023/02/28(火) 01:50:28.85 ID:YvnM6/8va.net]
HTMLに変換されるindex.php上で他のphpファイル上で定義されたメソッドを実行する場合、requireしなくてもいいのはなぜ?
requireはインスタンス作成時にのみ行うのかと思わせて他のケースもあるみたいで分からなくなる

516 名前:デフォルトの名無しさん mailto:sage [2023/02/28(火) 02:32:15.26 ID:RiJyC4pT0.net]
requireで読み込むファイルはクラスや関数が書かれたライブラリだったり
定数や共通の設定事項を記載したファイルだったり
単にhtmlを出力してるだけのファイルならその内容が読み込んだ側で出力されるし用途は様々
C言語で書かれたPHPコアライブラリに含まれてる関数群やPDOなんかのクラスは
使用するにあたってrequireなんて書いたりしないけど
PHPで作られてるものはrequireしないと使えない
インスタンスだの継承だのそんな次元の話じゃない

517 名前:デフォルトの名無しさん mailto:sage [2023/02/28(火) 07:09:43.47 ID:3WmX3+jc0.net]
基礎的なところからすれ違ってんだから体系的に学習できる本でも読めよ
phpは基礎が学べればあとはマニュアルでなんとかなるくらいマニュアルが優秀だけど、そもそもの基礎がズレてたらマニュアルも読めん

518 名前:デフォルトの名無しさん mailto:sage [2023/02/28(火) 08:28:11.46 ID:xmhsjsFza.net]
基礎がおかしいか。Progateで勉強したけどrequireするしないの差が曖昧だった
何で勉強しようと思ったかというと、今使ってるブログサービスで不具合あって、そこがWordPressだから直せないかなと思った
である程度勉強してブログ設定見たらユーザーが触れる部分はHTMLで勉強の意味無かった
意味無かったけど途中までやったから全部終わらせた
PHPかなり難しかったよ。でもCやってたら楽々なんだろうな

519 名前:デフォルトの名無しさん mailto:sage [2023/02/28(火) 09:06:04.41 ID:3WmX3+jc0.net]
WordPressはphpとはまた別物
多分、両方エキスパートって人はいないと思う

そもそも一般的なphp開発だと、requireとかほぼ使わなくなってる
composerのautoloadがメジャーだよ

WordPressがやりたいんだったら、一般的なphpじゃなくてそれ用の本読んだほうがいいかなぁ

520 名前:デフォルトの名無しさん mailto:sage [2023/02/28(火) 09:19:48.98 ID:95tx/KzW0.net]
>>513
まず言語仕様として1ファイル1クラスじゃなくてもいい。1ファイルに複数クラス定義を書いてもいい。
(ただし作法としては1ファイル1クラスにするのが望ましい)

そしてrequireは別のファイルからコードを挿入してくるだけの機能
例えばecho文が書かれたPHPファイルをrequireしたらその時に実行される。

521 名前:デフォルトの名無しさん mailto:sage [2023/02/28(火) 12:09:34.54 ID:K5lzl+NyF.net]
ファイルには関数やクラスの定義だけしておくパターンが多いかな

522 名前:デフォルトの名無しさん mailto:sage [2023/02/28(火) 16:54:00.06 ID:E6p/DZkf0.net]
そんなに違いが気になるなら、Ruby の逆引き本を読んだ方が早い

Ruby on Rails が良い

523 名前:デフォルトの名無しさん mailto:sage [2023/02/28(火) 18:14:11.17 ID:qVVLPrT9r.net]
Rubyって読みづらくね?
波括弧ないしif~endとかダサい

524 名前:デフォルトの名無しさん mailto:sage [2023/03/01(水) 01:33:59.12 ID:UTDLtYqT0.net]
>>523
そういうのをかっこいいと思ってる人たちが使っているんです



525 名前:デフォルトの名無しさん mailto:sage [2023/03/01(水) 03:49:41.82 ID:QN9phVrM0.net]
file_put_contentsでjsonにデータを書き込みたいんだけど、jsonに
[ ]
を予め用意しておいて その中にデータ書き込むって出来ないかなあ?

526 名前:デフォルトの名無しさん mailto:sage [2023/03/01(水) 08:43:06.85 ID:UTDLtYqT0.net]
>>525
オブジェクトに[ ]を用意してその中にデータを書き込んで
最後にjsonにしてfile_put_contentsで書き込むと良いよ

527 名前:デフォルトの名無しさん mailto:sage [2023/03/01(水) 10:36:45.89 ID:QN9phVrM0.net]
>>526
データ入れる場所指定できるんですね
試してみます!

528 名前:デフォルトの名無しさん mailto:sage [2023/03/01(水) 10:37:24.79 ID:QN9phVrM0.net]
ちがうか、先に違うオブジェクトにしておくのか

529 名前:デフォルトの名無しさん mailto:sage [2023/03/01(水) 11:19:20.74 ID:90jK5EfG0.net]
何で出来ない奴はこうも説明が下手なんだ・・・
何を言っているか分からんよw

530 名前:デフォルトの名無しさん mailto:sage [2023/03/01(水) 17:28:10.18 ID:XGVF9QRc0.net]
>>525
動的に書き込みたい部分以外はJSONのテンプレートとして事前に用意しておきたいってことだろうか
そう仮定すると考えるのはこの3通りくらい

1) テンプレートを一度jsonオブジェクトとして読み込んで、目的の階層にデータを代入して、まとめて書き出す
2) テンプレート側にデータとして存在しえない文字列を用意しておいて、文字列として読み込んだjsonから文字列置換する
3) JSONを読み取る側を改修して、固定部分と動的部分を別ファイルから読み取るようにする

531 名前:デフォルトの名無しさん mailto:sage [2023/03/01(水) 20:41:59.79 ID:QN9phVrM0.net]
>>530
ああ、一旦オブジェクトなり配列にして、未登録のデータだった時にオブジェクト一個追加してJSON全部上書きしちゃうのは自分でもできそう

データの数も3桁行かない程度だし、データ読み出して書くのもそんな重くならないか

後は動的にデータおる部分の見直しですね

532 名前:デフォルトの名無しさん mailto:sage [2023/03/05(日) 11:24:39.77 ID:QdgOL0Oo0.net]
どちらが適正ですか?

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();
}

533 名前:デフォルトの名無しさん mailto:sage [2023/03/05(日) 12:02:39.82 ID:A2ppgH2U0.net]
>>532


534 名前:デフォルトの名無しさん mailto:sage [2023/03/05(日) 13:31:58.17 ID:QdgOL0Oo0.net]
>>533ありがとうございます。



535 名前:デフォルトの名無しさん [2023/03/05(日) 15:15:03.70 ID:QdgOL0Oo0.net]
phpの実行を3つに区分したとして、
「データベースのmysqli接続」
「POST送信データバリデーションチェック」
「クエリ実行」
try-catch文、トランザクション処理を記述する場所
って以下であっていますか?


try{
//データベース接続処理
...
//入力バリデーションチェック
...

//トランザクション開始
$mysqli->begin_transaction();
//クエリ実行
...
// トランザクション処理
if (!$mysqli->commit()) {
throw new Exception("トランザクションが失敗しました。");
}
}catch (Exception $e) {
echo $e->getMessage();
$mysqli->rollback();
}

536 名前:デフォルトの名無しさん mailto:sage [2023/03/05(日) 17:02:00.95 ID:pluyAGbia.net]
commit部分のthrowは要らないのでは?

537 名前:デフォルトの名無しさん mailto:sage [2023/03/05(日) 17:44:49.95 ID:M62PQQGq0.net]
commitしようとしたら、ファイルが壊れました、とか

538 名前:デフォルトの名無しさん mailto:sage [2023/03/05(日) 18:28:19.70 ID:pluyAGbia.net]
DB壊れたらシステム止まって別のトランザクションも動かないだろうから
全てのトランザクションに書かなくて良いと思う

539 名前:デフォルトの名無しさん mailto:sage [2023/03/05(日) 21:45:08.47 ID:GipSGO790.net]
PDOで例外投げるよう設定して
catchすべきなのはPDOExceptionじゃね

540 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 10:18:27.62 ID:8oxT6MrcM.net]
こういうのもchatgptさんに
PHPでDB接続する例文書いて。例外おきたときの対処もよろ。
と言うだけでだいたい書いてくれる。

でもさ、
もしも全員がchatgptさんだけ使って
ブログ記事などが一切なくなった場合は
どこからサンプルソース解析してくるんだろう?
公式リファレンスしか存在しなくても
たくさんサンプルあみだせるんかな?

541 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 13:06:49.25 ID:UVP5G7/Er.net]
chatgptかなりいい加減だぞ
こっちが詳しく聞いてもありえないコードと解説もよくするし

542 名前:デフォルトの名無しさん mailto:sage [2023/03/12(日) 10:28:41.64 ID:/WQQIT0F0.net]
PDOStatement::columnCountって
PDOStatement::fetchができる回数を示しているものであってますか?
int(0)を想定したクエリ出しても
どんなクエリでも常にint(n)になってしまってお手上げです
PDOStatement::rowCountはSQLiteのため常に0を返すとのことで使えません
ものすごい古いNAS上に構築された環境なのでそれの影響もあるかもしれませんが
ループ上でfetchがbool返すまでやるしかないでしょうか?

543 名前:547 mailto:sage [2023/03/12(日) 10:29:40.64 ID:/WQQIT0F0.net]
どんなクエリでも常にint(n)になってしまってお手上げです

どんなクエリでも常にint(n)になってしまってお手上げです (n>0)
です

544 名前:デフォルトの名無しさん mailto:sage [2023/03/12(日) 10:33:06.48 ID:yWzg52lT0.net]
> PDOStatement::fetchができる回数を示しているものであってますか?
間違ってます。



545 名前:デフォルトの名無しさん mailto:sage [2023/03/12(日) 11:14:32.05 ID:/WQQIT0F0.net]
そうですねすみません
よく読んだら全然違った
久々にPHPいじってるのでこんなこともわからなくなってるとは・・・
*が最大数で1以上になるのは当たり前ですね

546 名前:デフォルトの名無しさん (ワッチョイ 6610-3g29) mailto:sage [2023/04/24(月) 10:58:21.24 ID:JH1evJvp0.net]
みなさんはIF地獄になったときどうしてますか?
最適化するまで試行錯誤しますか?
それとも「できる・動く」を優先して進めますか?

547 名前:デフォルトの名無しさん (ワッチョイ 6663-RykB) mailto:sage [2023/04/24(月) 11:03:45.16 ID:CIhFKz1G0.net]
動けば良いってものじゃない

548 名前:デフォルトの名無しさん (ワッチョイ 9ee7-RykB) [2023/04/24(月) 11:05:33.74 ID:xRkzUvA90.net]
>>546
メソッドか関数にして追い出しておく
あとでリファクタする際にその関数だけでテストできるように下準備だけしておく

未来の自分・他人がやりやすいようにして今は目をつぶる、がコーディングの鉄則
最適化は最初の仕事かつ最後の仕事だが、途中でやるのだけはNG

549 名前:デフォルトの名無しさん (ワッチョイ 6610-3g29) mailto:sage [2023/04/24(月) 16:04:38.35 ID:JH1evJvp0.net]
>>548
メソッドに追い出してもIFが続きますね。
どちらにしろ「Aがある場合~Aがない場合~」みたいな処理が必要ですし。

綺麗なコードとわかりやすいコードって違うと思うんですよね。
1ファイルにダラーっとコードが記述されると汚いですが、
上から下まで読めば何がしたいかは大体わかります。

しかし、クラスなりメソッドなりに分けると、複数ファイルにまたがって複雑です。
適切な名前を付けてファイルを参照しやすくすれば手間は軽減されますが、
今度は適切な名前を考えるのに時間を消費し、開発に遅れが生じてしまいます。

550 名前:デフォルトの名無しさん (ワッチョイ c5e6-ASru) mailto:sage [2023/04/24(月) 19:55:07.81 ID:CirHdNf40.net]
綺麗でもわかりにくいコードはあるが、汚いのにわかりやすいコードというのは無いな

551 名前:デフォルトの名無しさん mailto:sage [2023/04/25(火) 07:41:04.47 ID:ubLXos3L0.net]
>>549
一度適当なフレームワークでシステム作ってみるといいよ
感想がぜんぜん変わるから

> 今度は適切な名前を考えるのに時間を消費し、開発に遅れが生じてしまいます。

copilotさんとか使うといい

552 名前:デフォルトの名無しさん mailto:sage [2023/04/25(火) 08:12:37.51 ID:CC33Xm/N0.net]
>>551
一応、CakePHP→Laravelと通ってます。

単純なシステムなら綺麗でわかりやすいコードになりますが、
複雑な要件になると、力技の部分がどうしてもでてきます。

553 名前:デフォルトの名無しさん mailto:sage [2023/04/25(火) 13:06:17.18 ID:ubLXos3L0.net]
>>552
フレームワーク使用したことがあるのに「クラスなりメソッドなりに分けると、複数ファイルにまたがって複雑です。」とか言っちゃうのはかなりまずい気がするけど、複雑な要件の実装時に十分に責任分解できてないんじゃないかなぁ…

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に感じられないってことだよね?

554 名前:デフォルトの名無しさん mailto:sage [2023/04/25(火) 13:27:47.02 ID:gJ92KJGfa.net]
コミュニティーの議論や歴史を調べること

Ruby on Rails では、コントローラーの肥大化を防ぐために、
Skinny Controller, Fat Model を推奨した。
その結果、モデルが肥大化した

そこで今度は、モデルの処理を減らすために、
Form Object, Service Object へ処理を分けた

また表示処理は、Presenter へ分けた。
それで、Form Presenter, Model Presenter が出来た



555 名前:デフォルトの名無しさん mailto:sage [2023/04/25(火) 13:27:53.51 ID:A07qb0io0.net]
こういうのは2つ実際に書いてみて、両者を見比べて良い方を採用する
理屈よりも、自分の目で見て判断するのが良い

556 名前:デフォルトの名無しさん mailto:sage [2023/04/25(火) 15:25:51.23 ID:CC33Xm/N0.net]
>>553
いえ、これはGoodです。理想です。
しかし、システムの規模が大きくなると処理が増えるんです。
複数のメソッドを役割ごとに用意し、コントローラから指示を与えなければいけません。

>>555
今の自分はそうしてますね。
PHPに限らず、Javascriptなんかも最初はそのまま書いて、
後からjQueryにしたり、Vueに変更したりします。

結果、倍時間がかかって効率が悪くなります。
同じことをしているとモチベが下がり、開発意欲は失われます。

557 名前:デフォルトの名無しさん mailto:sage [2023/04/25(火) 15:27:54.01 ID:dvdIAVRA0.net]
古いPHPのシステムを保守するならDockerにぶち込むのが一番?

558 名前:デフォルトの名無しさん (スッップ Sd0a-T9f9) mailto:sage [2023/04/26(水) 13:32:18.14 ID:oPAFNUffd.net]
結局ifは減らないんだよね
ファイルを分けても分けなくても、オブジェクト指向でもそうでなくとも

Strategy/StateパターンとTemplateパターンの併用にして
スイッチっぽく分岐をわかりやすするのが一番かな

559 名前:デフォルトの名無しさん (ワッチョイ aa7c-RykB) mailto:sage [2023/04/26(水) 13:45:21.48 ID:DHcVafSS0.net]
ifを無理に減らす必要は無いのでは?
必要なら書かなきゃいけないし
ただ処理が集約出来るとかなら外に追い出したらいいし
パターンが多い場合はswitch()の方が良い場合も確かにあるし
ケースバイケースかと

elseifが並ぶのは個人的に嫌いだがw

560 名前:デフォルトの名無しさん (スップ Sdea-rwG/) mailto:sage [2023/04/26(水) 13:47:42.93 ID:poJ+ClSWd.net]
elseif嫌いわかる
elseの中にif書きたい

パターン3つ以上になるならswitchにするな

561 名前:デフォルトの名無しさん (ワッチョイ 5e5f-RykB) mailto:sage [2023/04/26(水) 13:57:33.29 ID:w+qfVGMw0.net]
else if は嫌いというか、あとで取捨選択が面倒なので
if文単独で成り立つようにしておくことが多いな

562 名前:デフォルトの名無しさん mailto:sage [2023/04/28(金) 14:22:47.60 ID:woDvEBlt0.net]
訊きたいことありましたが自決しました

563 名前:デフォルトの名無しさん (ブーイモ MMc9-EW+4) [2023/04/28(金) 14:52:55.46 ID:L2hGySASM.net]
おお死んでしまうとはなにごとだ

564 名前:デフォルトの名無しさん (ワッチョイ 7502-rwG/) mailto:sage [2023/04/28(金) 15:31:57.97 ID:4N/b4mKa0.net]
盆には帰ってこいよ



565 名前:デフォルトの名無しさん (ワッチョイ b77c-6bRy) [2023/04/30(日) 00:40:31.69 ID:z7x3mWoF0.net]
PHP7.2.24をインストールしました。Composerもインストールしました。
次のようなExtensionも使えるようにしたいのですが、つまっています。
ext-bcmath,ext-ctype,ext-curl,・・・

ネット上でみたところ、PHPの用語でモジュールとExtension、ライブラリとあるようですが、
それぞれ違うものなのですか?

566 名前:デフォルトの名無しさん (ワッチョイ 9f7c-fitb) mailto:sage [2023/04/30(日) 01:15:52.37 ID:vhG6z0vz0.net]
PHPの拡張ならそれを入れないと使えないのでは・・・
composerはあくまで自分の作るプログラムで使うライブラリを導入するもの

567 名前:デフォルトの名無しさん (ワッチョイ efae-KeI6) mailto:sage [2023/05/12(金) 22:24:38.02 ID:sJueD97p0.net]
サーバーのバックエンドの*.phpはpost送信などで任意で呼び出して実行されますが
このバックエンドの*.phpで自発的に一定時間ごとにプログラムを駆動させることはできますか?
例えば1時間おきとか1日おきとかに規定プログラムを実行なんていうのは

568 名前:デフォルトの名無しさん (ワッチョイ 527c-KeI6) mailto:sage [2023/05/12(金) 22:30:23.15 ID:+3Auf0UC0.net]
cronに登録すればいいだけでは?
PHPをデーモンとして常駐させてその中で定期的に動かす方法もあるだろうけど

569 名前:デフォルトの名無しさん mailto:sage [2023/05/12(金) 23:50:55.10 ID:A3+wmcch0.net]
無限ループとsleep使ったスクリプトを起動させときゃいいけど
自分でコントロール出来ないサーバだと勝手にkillされるかもな

570 名前:デフォルトの名無しさん (ワッチョイ 1349-ELkX) mailto:sage [2023/05/13(土) 09:35:12.10 ID:vNstIXFZ0.net]
例えばWindowsならコマンドプロンプトで
「php.exe <そのファイル>」
と打てば実行できる(環境変数に入ってる前提で)

そういうことじゃないの?
あとはWindowsならタスクスケジューラとかLinuxならcronとかで、同じように実行すればいい

571 名前:デフォルトの名無しさん (ワッチョイ 835f-+6/9) mailto:sage [2023/05/18(木) 11:36:31.84 ID:cerdIEN00.net]
フロントエンドはJS、バックエンドはPHPってできるだけ切り離したい

バックエンドとしてDBからデータ受け取るためだけにPHP使うってありなのかな?
あと現状スクラッチ開発しかしたことがないからバックエンド向けのフレームワークも試してみたい

572 名前:デフォルトの名無しさん (ワッチョイ cfbb-ScEU) mailto:sage [2023/05/18(木) 11:39:20.88 ID:yxJWp9Lm0.net]
すればいいじゃん
がんばれ

573 名前:デフォルトの名無しさん mailto:sage [2023/05/18(木) 12:33:14.63 ID:l6GHSnlrr.net]
言語はなんでもいいならphpなんて選ばない
普通はrubyかJavaかpythonだぞ
phpはやめとけ

574 名前:デフォルトの名無しさん mailto:sage [2023/05/18(木) 12:43:42.00 ID:4rcvRPf10.net]
Pythonは完全に対応しているサーバーが少ないみたい
Pythonとdjangoでバックエンド書く方法が自分にはまだわからない



575 名前:デフォルトの名無しさん mailto:sage [2023/05/18(木) 15:55:36.70 ID:nTE2uard0.net]
>>571
バックエンドには通常PHPを使用するのでアリ
フレームワークはFuelPHPが良いね
フロントエンドのフレームワークはjQueryを使う

576 名前:デフォルトの名無しさん mailto:sage [2023/05/18(木) 16:38:05.22 ID:BkqgSu2K0.net]
>>573
その3つの方が選ばないわw
PHPが一番楽だろw
それにPHPのスレでその返答はないわ
ゴミは消えろ

577 名前:デフォルトの名無しさん mailto:sage [2023/05/18(木) 16:43:12.95 ID:psogGPWLr.net]
まあラクなのはphpやろなあ
ケースによって最適は異なるから、便利な言葉「場合による」

578 名前:デフォルトの名無しさん mailto:sage [2023/05/18(木) 17:32:55.73 ID:7XjO1SKk0.net]
なんでも使える自社サーバーなのか、
レンタルサーバーのつもりかで選択肢かわるもんな

phpはだいたい使えるから仕方ない

579 名前:デフォルトの名無しさん mailto:sage [2023/05/18(木) 19:26:52.18 ID:iyBRbBgp0.net]
VPSなら何だって使える

580 名前:デフォルトの名無しさん mailto:sage [2023/05/19(金) 01:52:10.66 ID:TiXR4GEz0.net]
>>578
会社のサーバーがさくらのレンサバだから何でもかんでもPHPなんだよね

ごく小規模だからスクラッチ開発が基本だし
レベル低くて仕事で精一杯だしで何か独学するって余裕もないから、まずPHPの手軽さからわざと離れてJSでDOM操作は分けてみようかなぁと

581 名前:デフォルトの名無しさん mailto:sage [2023/05/22(月) 01:29:49.15 ID:6n6FPMUf0.net]
別に言語はなんでもいいけど
クライアントJSから直接サーバのDBにはアクセスできないし
非同期でやる場合、だいたい>>571のようになるんじゃね

582 名前:デフォルトの名無しさん mailto:sage [2023/06/10(土) 20:37:19.56 ID:TSaFGI4o0.net]
WSL2(ubuntu)にLaravelインスコしてみたけど
メモリ8G程度だときっついですね
docker desktopとかwindowsターミナル入れろとかこの辺は
aptでdocker入れたりubuntu直接起動したりすればおkな感じですか?
とりあえずやってみてその方法でもいけたはいけたんですが(メモリも1Gぐらい減った)
ビルドしてるときの表示がバグったりちょっと不安要素がありました

583 名前:デフォルトの名無しさん mailto:sage [2023/06/11(日) 08:50:59.31 ID:nugYPewD0.net]
メモリも問題だけど、たぶん最大の問題はファイルを配置した場所だと思うよ
・ソースコードをWSL2ディストリビューション領域内に配置する
で大幅に改善すると思う

584 名前:デフォルトの名無しさん mailto:sage [2023/06/12(月) 08:08:55.93 ID:VNkMF7gVM.net]
httpリクエストで動的なサイトからデータ取得するのってやっぱり無理なんですかね?javascriptでhtmlが生成されるよなページんんだけど



585 名前:デフォルトの名無しさん mailto:sage [2023/06/12(月) 10:00:10.61 ID:AjUdrP5R0.net]
無理ではない
curlやDOM操作のライブラリ自体は揃ってるんだから、後はあなたが頑張ってそのJavaScriptの動作を真似るだけ

586 名前:デフォルトの名無しさん mailto:sage [2023/06/12(月) 10:25:34.03 ID:mHRjcInk0.net]
おれなら生成はブラウザにやらせるかな
出来た頃合いを見計らってデータを盗む

587 名前:デフォルトの名無しさん mailto:sage [2023/06/12(月) 10:27:10.81 ID:wQ6JiRj1M.net]
例を示していただけませんか

588 名前:デフォルトの名無しさん mailto:sage [2023/06/12(月) 10:29:59.61 ID:wQ6JiRj1M.net]
javascriptは通常ブラウザが実行します。しかしhttpリクエストではブラウザを介さないためjavascript は実行されません。ヘッドレスブラウザなどを使えば動的なコンテンツを取得できますが、わたしの課題はhttpリクエストで動的ページからデータを取得することです

589 名前:デフォルトの名無しさん mailto:sage [2023/06/12(月) 10:34:38.95 ID:wQ6JiRj1M.net]
レスポンスを取得してからjavascriptを一回実行すればいいのかな?そんなことできるのかな

590 名前:デフォルトの名無しさん (ワッチョイ 7b5f-2rqm) mailto:sage [2023/06/12(月) 10:41:43.85 ID:mHRjcInk0.net]
大変だね
ブラウザ禁止縛りプレイならまあ自分で頑張るしかないね

ていうかphantomjsって開発停止してんだな 知らんかった

591 名前:デフォルトの名無しさん (テテンテンテン MMeb-+QT+) mailto:sage [2023/06/12(月) 21:30:39.08 ID:DY0b1d5xM.net]
httpリクエストで動的なサイトからデータ取得するのってやっぱり無理なんですかね?javascriptでhtmlが生成されるよなページんんだけど

592 名前:デフォルトの名無しさん (ワッチョイ 8bbb-hEWj) mailto:sage [2023/06/12(月) 21:39:47.58 ID:sQEwwMG40.net]
おまえLaravelスレのアラシだろ
うざいよ

593 名前:デフォルトの名無しさん mailto:sage [2023/06/12(月) 22:12:16.13 ID:mHRjcInk0.net]
>>591
puppeteerがいいんじゃない?

おれは使ったことないけど、phantomjsのメンテナが
「puppeteerあるならもうphantomjsなんかいらんわ」
って言いだして開発終了したらしいし、確かみてみろ

594 名前:デフォルトの名無しさん mailto:sage [2023/06/12(月) 22:24:27.56 ID:kqdcKHtBM.net]
puppetterというものはヘッドレスブラウザを使えるようにしたライブラリであり、わたしはスクレイピングをしたいわけではありません。わたしの課題はhttpリクエストで動的なサイトからデータを取得することであり、ヘッドレスブラウザを使用してスクレイピングをしたいわけではありません



595 名前:デフォルトの名無しさん (テテンテンテン MMeb-+QT+) mailto:sage [2023/06/12(月) 22:37:29.16 ID:kqdcKHtBM.net]
わたしがヘッドレスブラウザを使わない理由はデータの取得時間がかかるからです。またわたしはデータベースを使用しないことを前提としているので、取得したデータを保持することはありません。つまり度々データを取得することになる場合に都度ヘッドレスブラウザーを走らせる設計は現実的ではありません

596 名前:デフォルトの名無しさん mailto:sage [2023/06/13(火) 11:41:46.36 ID:zJMyBjWC0.net]
>>595
これが各行ごとに良くわからないな

>データの取得時間がかかるからです
何が原因で取得時間がかかるようになるのか
実測してそんなに差異が出たってコト?

>データベースを使用しないことを前提としているので
DBなんか使わなきゃいいんじゃない?

>度々データを取得することになる
同一データを扱うならキャッシュすればいいんじゃない?
PHPでだってアホに作れば度々データ取得しに行っちゃうと思うよ

>現実的でありません
面倒くささ的にも自前でDOM構築する方が非現実的だよね






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<381KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef