PHP質問・雑談スレ4【初心者お断り(ROM歓迎)】at PHP
PHP質問・雑談スレ4【初心者お断り(ROM歓迎)】 - 暇つぶし2ch362:nobodyさん
18/05/02 16:58:11.13 XHGDuEA2.net
$_POST['name']="';drop table bbs";
とか単行でできなかったっけ?

363:nobodyさん
18/05/04 18:40:21.61 .net
>>353
出来ないはず
少なくともsqliteではできない
"忘れてるからでコメント入れとかないとシンタックスエラーになるわ

364:nobodyさん
18/05/04 19:02:58.13 .net
UNIONすればいいから

365:nobodyさん
18/05/11 21:01:57.13 w2CoFO3p.net
opendir()を使って指定したフォルダ内のファイル名一覧を取得したいのですが、
一つのセッションで何回も opendir()実行すると、その度にディスクにアクセスして
サイトの表示が遅くなりますか?良い方法ありますか?

366:nobodyさん
18/05/12 00:19:20.02 .net
中身かわったときに読み込んでDBなりファイルに書いときゃいい

367:nobodyさん
18/05/12 07:06:28.17 .net
静的データ使うのがベストだがopendirの回数を減らす方向だと
処理ステップが多いopendirをする前に
より単純な方法で比較すればopendirまで行かなくて済む
例えばフォルダのfilemtimeをセッション変数にぶっこんどくとか
ユーザ用のデータで外からの更新がないとか
セッション開始時から終了時まで使いまわして問題がないなら
セッション変数にファイル一覧ぶっこんどきゃいい

368:nobodyさん
18/05/12 11:48:03.93 MPdqrTl4.net
>>357>>358
レスありがとうございました。
>セッション開始時から終了時まで使いまわして問題がないなら
その通りなので
>セッション変数にファイル一覧ぶっこんどきゃいい
そうします。
ちなみにstatic変数を使ってやっても良いですか?

369:nobodyさん
18/05/12 21:11:01.72 .net
ページを表示した時点でプログラムが終了するので
次の動作(ページ遷移とか)をするとstaticじゃ保持されない
だからセッションやhiddenで持ちまわす

370:nobodyさん
18/05/14 12:05:38.71 bg4N3y/B.net
json_encodeで次のようになるデータを
[
{ "国": "アメリカ",
"地域": "ワシントン",
"人口": 19
},
{ "国": "日本",
"地域": "東京",
"人口": 7
},
{ "国": "日本",
"地域": "大阪",
"人口": 3
},
]
次のようにする方法教えて
[
"アメリカ": {
"ワシントン": {
"人口": 19
}
},
"日本": {
"東京": {
"人口": 7
},
"大阪": {
"人口": 3
}
}
]

371:nobodyさん
18/05/14 20:08:43.77 .net
$a = json_decode($encodedData);
foreach ($a as $v) {
 $b[$v->{"国"}][$v->{"地域"}] = $v->{"人口"};
}
var_dump(json_encode($b));
あとは調整しれ
つか>>1

372:nobodyさん
18/05/14 20:14:32.47 .net
$b[$v->{"国"}][$v->{"地域"}] = ["人口" => $v->{"人口"}];
だった

373:nobodyさん
18/05/14 22:20:49.44 .net
ありがとう助かった
スレチだったみたいだなスマソ

374:nobodyさん
18/05/14 22:47:48.22 .net
>>362
このくらいなら問題ないんじゃない?
手とり足とりって感じでもないし
JavaScriptも書く身としてはmapもアリかな
$a = array_map(function ($val) {
 $res[$val->{"国"}][$val->{"地域"}] = ["人口" => $v->{"人口"}];
 return $res;
}, json_decode($encodedData));
と思ったけどJavaScriptほどすっきりかけないからループの方がいいわ

375:nobodyさん
18/05/15 08:08:04.80 .net
$obj->{""}
この表記はあまりなじみがないから
初心者じゃなくても結構悩むかもね

376:nobodyさん
18/05/21 07:51:27.75 .net
phpで二回目にデータを渡すか、ユーザーの入力を待ちたい
////////ページ////////
[続けるボタン]
一回目の出力結果・・・
二回目の出力結果・・・
こんなページが作りたいのですが、
phpに書いたものはボタンを押すとリセットするようで、二回目が作れません
もしくは、while(){ボタン入力まで待機}
こんな書き方をしたいのですが、どちらかの実現方法を教えて下さい

377:nobodyさん
18/05/21 07:58:36.40 .net
sessionがあるみたいなのでやってみます

378:nobodyさん
18/05/21 14:36:19.77 .net
gRPCがPHPでRPCサーバーを作るのには対応していないのって何で?
PHP単体で動く(Apacheやnginxを使わない)まともなHTTPサーバーがないのが原因みたいに言われてたけど
それだけ?
そうだとして何でPHP単体で動いて
テストだけでなく本番でも十分使えるHTTPサーバーが無いのか

379:nobodyさん
18/05/21 14:42:31.54 .net
WEB画面から文字列を入力しDBにInsertすると文字の頭になんか変な文字が入ってました。
そこで、テーブル上のデータをSQLファイルでダウンロードして
サクラエディタで見たところ空白にしかみえないです。
しかし、その空白部分を選択してみると、サクラエディタの右下に
U+30AD となっています。何かの文字を表している様ですが分かりません。
これは一旦何が入っているのでしょうか?

380:nobodyさん
18/05/21 15:29:39.14 .net
>>367
JSONで非同期にしたら?
そんな処理でSessionとかcookie使うもんなの?

381:370
18/05/21 15:47:02.23 .net
SQLで insert文で 'キ' と入力するとなぜか'キ'の左側に
U+FEFF ← が入ってしまっています。

(U+30AD  → 「キ」でありこれは問題ありません。)

BOM??らしいです。なんで'キ'入力の時だけ入るんだろうか。

382:nobodyさん
18/05/26 21:31:37.47 .net
Laravelのドキュメントってどこにありますか?
公式laravel.jpのドキュメントはインストール設定と期待したものじゃないし
いくつか機能の紹介してるリンクはリンク切れだし
URLリンク(laravel4.kore1server.com)
唯一まともなクイックスタートもちょっと少なすぎます
なんか1つテーマにしてサンプルを説明つきで作るようなやつはないんですかね

383:nobodyさん
18/05/27 01:53:43.88 .net
甘えるな小僧

384:nobodyさん
18/05/27 10:33:53.98 .net
PHPはFWが乱立しすぎて首をしめてるな
その点node.jsはどこいってもexpressでいいよだから楽
環境構築でいえばPHPのほうがだいぶ楽だから
サーバエンジニアがいないとどうしてもPHPになってしまうのだろう

385:nobodyさん
18/05/28 11:18:24.32 .net
>>375
他に比べたらオプソFW乱立って程でもない
総じて質が低いのが問題
それに起因するのかオリジナルFWが輪をかけてゴミまき散らしてて首絞めてる

386:nobodyさん
18/05/28 12:20:46.25 .net
このスレで使うFWを統一しよう(名案
そしたら他の死んだスレで一向に答えが来ない独り言しないで済むしな

387:nobodyさん
18/05/31 15:25:27.48 .net
public function foo()
{
  return [
    'a' => 'b',
    'c' => 'd',
  ];
}
FWでこういうコードを入れる必要があるのですが、
何を意図してこんなことをさ


388:せるのですか? $foo = ['a' => 'b', 'c' => 'd']; でよくないですか?



389:nobodyさん
18/05/31 15:47:30.82 7ebU4p49.net
URLリンク(ab-abo.com)

390:nobodyさん
18/06/07 15:40:45.53 .net
ここのイケメン先輩達に質問しようと思って質問内容を整理して文を書いていたら、途中で答えがわかりました
ありがとうございました

391:nobodyさん
18/06/07 16:12:26.53 .net
おう良いってことよ
感謝を忘れるなよ

392:nobodyさん
18/06/07 17:10:31.89 .net
>>380
よくあるやーつ

393:nobodyさん
18/06/16 10:55:24.21 XFveZCTu.net
PHPって1リクエストで1プロセス使うの?
効率悪くね?
1万件コネクションあったら1万プロセス生成するの?
無理じゃね?

394:nobodyさん
18/06/16 11:33:21.06 .net
>>383
その辺はうまく最適化されてるからそこまで考えなくてもいい
実際、動いてるっしょ

395:nobodyさん
18/06/16 12:28:52.66 XsXx5YxH.net
【誘われたら、〝優秀″】 手に、マイクロ・チップ  ←<関/輿水>→  メール、ネットで公開処刑
スレリンク(liveplus板)

396:nobodyさん
18/06/16 12:38:57.88 WL8j0F1D.net
>>384
貧弱なサーバーだと一万もプロセス生成できなくね?
プロセス大量に生成しない他言語の方が有利でしょ

397:nobodyさん
18/06/16 13:48:58.44 .net
WebサーバがPHPを実行する際の仕組みに依存するんだから言語は関係ない
Apache+CGIならリクエスト毎にプロセス立ち上げるし
Apache+mod_phpならApacheのMPM次第だし
Apache/nginx+php-fpmならひとつのプロセスで複数のリクエストを捌くし

398:nobodyさん
18/06/16 14:16:49.57 XFveZCTu.net
>>387
>ひとつのプロセスで複数のリクエストを捌くし
同時には無理でしょ?
1万件接続されても1万プロセスは作らないけど
リクエストが来た時割り当てられるプロセスが無かったら
空きが出るまで待たされるってことだろ
nodeはそもそもApacheモジュールとかFastCGIとか使ってなくて
node単体でもHTTPサーバーとして動作するって話だ
nginxと組み合わせる場合はHTTPで通信する
nodeは非同期I/Oだから前のリクエストが終わらないと一切次のリクエストの処理が開始できないって事も無い
FastCGI自体1996年ぐらいに出てきてから
そんな進歩してないっぽいし

399:nobodyさん
18/06/16 16:23:45.43 .net
>>386
もちろんそう
phpは基本Cのラッパーだから、直接C言語で書けば爆速で動くよ
いつ完成するかは知らないけど頑張って
>>388
言ってる意味がよくわからなi
おそらくリクエストが最多のgoolgleやyahooが重くて仕方ないならその意見はわかるけど、
一体何に対しての意見なの?

400:nobodyさん
18/06/16 17:51:24.35 EG3qtVlZ.net
レストランで喩えると
コース料理を全部出し終わるまで
次の客を待たせるのがPHP
料理を作り終わって
客が食べている間に時間が空いても
他の客の料理は決して作らない

401:nobodyさん
18/06/16 19:20:14.63 m7Q1wvls.net
客一人に一人ウェイターが付くシステムのレストラン=PHP
ウェイターが5人なら注文を聞ける客は5人まで
それでもレストランで食事がしたい客は待つしかない
混雑に対応するにはウェイターの人数をかなり増やす必要がある
しかし常に大人数のウェイターを待機させておくと暇な時の人件費が嵩む
だからって混雑時だけ応援を呼ぶと対応に時間が掛かる
普通のレストラン=Node.js
一人のウェイターが複数の客の注文を取るので遥かに


402:効率的 混雑していても客はとりあえず店に入って注文を出せる 客の人数がウェイターの人数を超えると一切注文を出せず、料理も来ないPHPとは対照的 混雑時もPHPほど大人数のウェイターは必要ない



403:nobodyさん
18/06/16 21:53:50.62 .net
PHPスレで, しかもPHPに限らないことでPHPをディスってもなぁ
nodeが最適な場面は確かにPHPには向いてないだろうけど, それ以上でもそれ以下でもない

404:nobodyさん
18/06/16 22:52:57.98 DoWXS1Yy.net
プロセス生成(prefork)するので
今でも使われてるのってRubyのUnicornぐらいしか知らない

405:nobodyさん
18/06/17 14:49:10.70 .net
知ったかが何人もいるのか。お先真っ暗感

406:nobodyさん
18/06/17 14:52:25.05 .net
phpはそういう言語だからね
大丈夫

407:nobodyさん
18/06/17 15:15:30.67 dwEPgyzc.net
PHPでもnodeみたいな非同期処理を実現するものとして
php-pmとかSwooleがあるけど
本番で使ってる奴なんておらんやろ?

408:nobodyさん
18/06/17 15:47:59.14 .net
結局goの方が早いしな

409:nobodyさん
18/06/17 16:21:08.45 .net
非同期処理でややこしくするよりかはサーバー増やしたほうがよっぽどコストがかからん

410:nobodyさん
18/06/17 17:20:28.95 dwEPgyzc.net
Swoole使うと
最大で30倍近く速くなるらしいのでそれは暴論

411:nobodyさん
18/06/17 23:16:57.06 .net
1万リクエストあるからって1万生成されるわけじゃないし
プロセス生成数なんて気にする必要はない

412:nobodyさん
18/06/18 00:32:48.78 .net
実際Node.jsでそれだけ回すと非同期(笑)状態がよくあるしな

413:nobodyさん
18/06/18 09:00:28.15 vorT3MqW.net
URLリンク(laravel-news.com)
nginx/FPMの一般的な構成だと80.93リクエスト/秒なのが
Swoole仕様では8717リクエスト/秒に増加している
30倍どころか100倍以上
同期(笑)
メモリリークや不具合を起こす危険と引き換えに時間の掛かるPHPやフレームワークの初期化も省略できるからな
そりゃ早いだろ
php-pmはメモリリークを防ぐために一定数のリクエストを処理後に再起動出来たが
Swooleは知らない

414:nobodyさん
18/06/18 09:10:51.86 .net
Swoole自体は面白いと思うけど, FPMのチューンが分からないからその比較に意味は無い
仕組み上捌けるリクエストは増えると思うけども

415:nobodyさん
18/06/18 16:16:03.97 .net
Swooleって何?PHPのアプリケーションサーバー?

416:nobodyさん
18/06/18 16:20:58.89 .net
非同期ネットワークIOの拡張モジュール written by C

417:nobodyさん
18/06/18 16:41:14.62 .net
reactphpとはちがうのん?よくわからん・・・

418:nobodyさん
18/06/18 17:07:22.53 .net
使ったことないからアレだけど, 機能的には重複すると思う
Cで書かれた拡張かPHPで書かれたライブラリかの違い

419:nobodyさん
18/06/18 17:15:36.91 .net
なるほど、じゃSwoolのほうがよさそうだね
日本語資料少ないけどちょっと使ってみよう

420:nobodyさん
18/06/18 19:07:53.58 .net
Falconみたく中身弄れる人限定とかじゃないの?

421:nobodyさん
18/06/19 01:56:57.10 .net
従来PHPですべてやってたことを
PHP+AngularJSで開発しようとおもってます。
この場合PHPが行うことはWebAPIとして入力値からCRUDして
JSONなどAngularJS側で使うデータの出力でいいんですよね?

422:nobodyさん
18/06/19 23:28:58.36 sZEZNTYu.net
認証も必要

423:nobodyさん
18/06/20 08:19:33.32 .net
>>411
どうもありがとうございます。
作ったことはないのですが、確か最近の応用情報かなんかの過去問見たとき、
WebAPI作る問題出てて、そこでも確かにHTTPSでBasic認証してました。
ちゃんとWebAPIの作り方調べてやってみたいと思います。

424:nobodyさん
18/06/20 09:14:44.17 Xst2QP85.net
>>412
何で例に出すのがBASIC認証なのか
APIならOAuthとかじゃねえの

425:nobodyさん
18/06/20 09:26:37.65 Xst2QP85.net
自分一人が個人的に使うシステムでも無い限り
OpenAPIやSwaggerで仕様を明確化した方がよい
あるいは昔ながらのREST APIではなくGraphQLでも良いかもしれない
RESTは自分でも作れるかもしれないが
GraphQLは割と複雑な仕様なのでライブラリーが必須
OAuthはOAuthで難しい
変な実装をすれば車が通れる程の大穴セキュリティホールが開く
URLリンク(www.sakimura.org)

426:nobodyさん
18/06/20 09:52:37.08 .net
URLリンク(www.jitec.ipa.go.jp)
この問4か

427:nobodyさん
18/06/20 20:32:46.35 UnZq46Ab.net
プログラミングを誰でも習得できる方法は、「前場アキドルのプログラミングマスター方法」というブログで見られるらしいよ。ネットで調べると見られるらしいです。
5648W

428:nobodyさん
18/06/21 04:46:25.17 joNehjCV.net
掲示板が作りたくてデータベースとのやり取りをするPHPとそれのインターフェイスとなるHTMLを作りました
投稿時の想定は「まずHTMLにアクセスしてそこで項目を入力してPHPを通してデータベースにデータを入力」です
これはAjaxやPDOを使うことで作ることが出来ました
しかしHTML(JavaScript)のソースコードからPHPのファイル名を見つけてPHPを直接叩くことで簡単に荒らしが出来てしまいます
この問題を解決したいと思い、PHPをドキュメントルートから外したのですがそれはアクセスが出来ず失敗に終わりました
皆さんはこのような問題に対してどのような対策を施しているのでしょうか?

429:nobodyさん
18/06/21 05:56:58.20 .net
相手が荒らすのに苦労する仕組みを作るといい
1文字 同じ文字のみ 英数字のみ URLとかスパムに使われそうなものを制限する
連投制限の仕組み作る(IPベース、クッキーベース、セッションベース、それら組み合わせ)
若干面倒な登録を経て登録者のみ投稿できる会員制にする
ログと投稿をつきあわせて類似度を比較する(処理は遅くなる)
AIで意味のある文章か判断する(PHPerには難易度が高すぎる)

430:nobodyさん
18/06/21 06:50:01.75 .net
ワンタイムトークン

431:nobodyさん
18/06/21 11:05:43.80 .net
CSRF

432:nobodyさん
18/06/21 17:51:48.90 .net
直接PHP叩くのと、フォームから入力するのと、
マクロにとっては荒らしのしやすさになんの差もないと思うのだけど。

433:nobodyさん
18/06/21 22:09:54.17 p4z3zI1o.net
reCAPTCHA v3ではユーザーのアクションなしに相手がロボットがどうか
判別できるようになるらしい

434:nobodyさん
18/06/22 06:56:12.83 0CbeJ1vw.net
回答ありがとうございます
>>418-420
ワンタイムトークンが良さそうだと思いました
>>421
マクロだと確かにそうですね
IPアドレスで連投を規制したりすることも検討してみます

435:nobodyさん
18/06/22 14:11:43.65 HDxTbLco.net
PeachPieって言う.NETでPHP動かす環境あるらしいけど
どうなの?
そもそも使い物になる?

436:nobodyさん
18/06/22 21:01:21.02 .net
検索したらエロい店ばっかりでてきて吹いた

437:nobodyさん
18/06/22 21:02:21.49 .net
>>424
使ったこと無いけど、ASP.NET Webサーバー使ってるなら良さそう
ってかそれ意外になにもメリットなさそう

438:nobodyさん
18/06/22 21:16:34.26 .net
力技すぎて面白い

439:nobodyさん
18/06/23 09:41:34.58 ArmcQI4m.net
PeachPieはtechempowersのPlainTextのベンチマークでは99位
それでもFramework Overhead


440:でPHPより1.87倍ぐらい速い https://www.techempower.com/benchmarks/#section=data-r16&hw=ph&test=plaintext



441:nobodyさん
18/06/23 11:55:24.07 .net
CILにコンパイルされてから実行されるわけだからパフォーマンスは向上するわな(Phalangerと同じ)
あとはエクステンションがどのくらい互換性持って提供されるかだと思う
使い物になるかで言えば公式が「まだexperimentalだよ」って言ってる以上は(productionでは)全く使えない
>>428
plaintextのベンチとか意味あるの?

442:nobodyさん
18/06/23 12:38:28.80 JGE8gBSU.net
単なるプレーンテキストの送信でも言語やフレームワークによってかなり差が出るのは分かる
PeachPie自体はまだ実験的な物ではあるが
WordPressは既に動かせるらしい

443:nobodyさん
18/06/26 00:02:49.58 vSUzM4yv.net
composerってメモリ使い過ぎじゃね?
サーバーの利用可能なメモリが少ないとSymfony4のインストールすら完了しない
composerのロックファイルは
十分メモリのあるローカル環境で作り
メモリーの少ないサーバーではロックファイルからcomposer installするのがオヌヌメらしい
とは言えもう少し少なく出来ないのか?

444:nobodyさん
18/06/26 00:09:23.99 .net
プルリクあく

445:nobodyさん
18/06/26 00:10:24.54 R+4nVO22.net
あくってなに?

446:nobodyさん
18/06/26 07:56:36.12 .net


447:nobodyさん
18/06/28 16:38:17.84 .net
早くしろよ

あくしろよ

あく

448:nobodyさん
18/06/28 20:03:07.10 .net
汚ねえスレだなあ

449:nobodyさん
18/06/29 00:44:22.34 .net
>>410あたりを見て気になったんだけど
API作るというだけでは認証機構入れる必要これっぽっちもないよね?
BASIC含め簡単なものや固定のものは投げてる要求確認すれば丸わかり
バッチ等からのアクセスが主だったり他サイトに利用させるとかが絡むなら
事前認証してtoken吐いて……って機構が必要かもしれないけど>>410はブラウザ経由
認証つけるにしても、もしAPI以外でログイン認証してるならそっちのセッションをそのまま使える

450:nobodyさん
18/06/29 08:59:46.28 .net
いろんなところから利用可能にするためにWebAPI使うんじゃないのか

451:nobodyさん
18/06/29 09:31:29.33 .net
そらTwitterみたいに本家がユーザ認証前提の仕組みで他所でも認証してあーだこーだって話なら、な
例えばYahooのルビ振りWebAPIなんかは認証なんてない

452:nobodyさん
18/06/29 10:47:32.20 .net
appidってのがそうなんじゃないの

453:nobodyさん
18/06/29 12:09:11.00 .net
事前登録したIDを送るのは認証とはちょっと違くね

454:nobodyさん
18/06/30 13:16:02.58 HFlHS16J.net
composerはなぜかパッケージのダウンロードが一個ずつって特徴もある
並列化する非公式プラグインはあるが
何で公式は並列ダウンロードしないのか
URLリンク(github.com)

455:nobodyさん
18/06/30 13:23:07.35 .net
なぜかって普通だし
さして重要じゃないだろそれ

456:nobodyさん
18/06/30 14:09:23.84 HFlHS16J.net
並列ダウンロードが当たり前の他のパッケージマネージャに慣れていると
遅く感じる
プラグイン作者によるプルリクエストがcomposerにあったが
マージされるのはいつか分からない

457:nobodyさん
18/06/30 14:13:48.30 .net
composer使うのやめればいいじゃん

458:nobodyさん
18/06/30 15:02:10.11 TwF5k2FW.net
PHPもやめます

459:nobodyさん
18/06/30 17:48:37.84 .net
そもそもcomposerってなんで出てきたの?
必要なのこれ
composerじゃなきゃダメなことなんかあるの

460:nobodyさん
18/06/30 18:04:13.84 grfnyPlf.net
知らないのに使わなければ良いとか言ってんの?

461:nobodyさん
18/06/30 18:11:10.91 .net
フレームワーク使いたい奴には必須かもしれないけど
それ以外は別に使わなくても問題ない�


462:@っていうイメージ つか何故公式が云々って公式の気持ちなんか知るか国語のテストかよ



463:nobodyさん
18/06/30 18:44:02.99 grfnyPlf.net
composerの中の人は忙しいので
並列ダウンロードは皆があったら便利だと思う機能とは知っているが
優先度を低くしている
そんな感じでプルリク作成から2年経った

464:nobodyさん
18/07/01 01:30:55.83 .net
あれから2年、君は成長できただろうか

465:nobodyさん
18/07/01 12:23:54.18 .net
composerは車輪の再発明が嫌いな
再利用大好人間たちがコードを持ち寄って使いあったり
そこから新しいのを作るためのなれ合いツール

466:nobodyさん
18/07/01 12:49:01.19 .net
pear/peclが要らなくなるわけじゃないんだよな

467:nobodyさん
18/07/01 13:49:42.07 .net
peclはともかくpearはいらないだろ

468:nobodyさん
18/07/02 09:37:25.47 .net
composerにあるライブラリって全部PHPでしょ?
pearを進化させたようなもんだよねたぶん

469:nobodyさん
18/07/03 16:36:16.92 4gji1WrU.net
これどう作るの?
URLリンク(goo.gl)

470:nobodyさん
18/07/03 19:57:52.06 .net
最近必死すぎだろw
飢え死ねアフィカスwww

471:nobodyさん
18/07/03 20:05:02.85 .net
ComposerのロゴはGo以来のイラッと感を覚えるわけよ

472:nobodyさん
18/07/03 22:45:29.42 nJxIsGZ6.net
PHPの拡張ってプロジェクト毎にはインストール出来ない?
拡張を実行時に動的に読むdlって関数が昔あったらしいが
削除されてるし
dlは使い物にならなかったのか
他言語ではC拡張のあるライブラリも
他のライブラリと同じ様に
そのプロジェクトだけのインストールができるのが普通

473:nobodyさん
18/07/04 00:27:41.45 .net
URLリンク(php.net)
普通にextension_loaded()でいいんじゃないの

474:nobodyさん
18/07/04 00:54:24.18 .net
>>459
現状出来ない
実行時に拡張をロードする機能自体が存在しないのでどうにもならない
やりようがあるとすれば実行時ロード機能を提供するPHP拡張を作成することくらい
PECLに登録して最終的に本体にバンドルされるところまで至らないとエコシステムには取り込まれないだろうなぁ
rasmusとかandiとかzeevとかの基幹メンバーがとんでもなく保守的だし正直何やっても絶望的だと思う
この辺は割とマジで根本的に設計上の欠陥だと思うわ

475:nobodyさん
18/07/04 02:12:15.23 .net
.phpから拡張を読み込むことができるようになると
セキュリティホールが量産されそうな気がするが
その辺、大丈夫なのか?

476:nobodyさん
18/07/04 03:09:24.37 .net
何となくそういう懸念が浮かぶのは分かる
ただ他言語, 具体的にはPythonとかRuby, Nodeなんかでは頻繁に使われてる
system系の関数使って実行ファイルを叩くのとどう違ってくるのかと考えると別に実行時に拡張ロード出来ても良かろう(dlが削除されたのは安定性が理由だと書いてあるし)

477:nobodyさん
18/07/04 03:49:54.33 .net
PHPの用途で動的に読み込めると何が嬉しいのか、
まともな理由がないから削られちゃったんだろ

478:nobodyさん
18/07/04 06:31:20.45 .net
プロジェクト毎にPHPインストールすりゃいいんじゃね

479:nobodyさん
18/07/04 07:52:00.71 .net
>system系の関数使って実行ファイルを叩くのとどう違ってくるのかと考えると
systemやexecは、php.iniで包括的に設定するしか手がない disable_functions 設定で禁止できる
かなり違うんじゃないかね
URLリンク(php.net)
>このディレクティブは、Apacheモジュール版のPHPを使用した場合にのみ 有用です。
>PHPの動的ロード拡張機能をdl()で 仮想サーバー毎またはディレクトリ毎にオンまたはオフに変更することが できます。
>
>動的ロード機能をオフにするのは主としてセキュリティ上の理由によります。
>動的ロード機能により、 open_basedir の拘束を全て 無視することが可能になります。

480:nobodyさん
18/07/04 09:59:47.40 VNkVp5lL.net
そもそもdlって最近は削除されて使えないんじゃなかったの?

481:nobodyさん
18/07/04 20:40:21.34 .net
exec使える状態って
アホなアップローダとか置いてた日にはopen_basedirの拘束なんて無視して好き放題されちゃうよね

482:nobodyさん
18/07/05 04:15:11.30 .net
>>466
いや, php.iniだけで動的モジュールロードの可否を与える(php.iniのみで設定可能な)ディレクティブがあれば一緒だろ
自分でdlの例出してるじゃん
mod_phpで実行する場合は権限がWebサーバになるからそれが嫌だというのはよく分かるが

483:nobodyさん
18/07/05 04:17:30.15 .net
変なところにペーストしちゃったけどまぁいいや

484:nobodyさん
18/07/05 08:10:38.44 6vNW6Lds.net
dlは安定性に問題があるから削除したって言うけど
他の言語で出来ていることが何で出来ない?
PHPはリクエストの度にメモリの内容破棄するから?

485:nobodyさん
18/07/05 16:56:15.00 .net
extensionの動的ロードしたいってどんなとき

486:nobodyさん
18/07/05 17:14:15.92 .net
劇的ロードなら

487:nobodyさん
18/07/06 12:54:55.48 .net
age

488:nobodyさん
18/07/06 13:03:04.29 .net
hage

489:nobodyさん
18/07/06 14:57:23.38 P0O2iWzc.net
PHPは巨大化し過ぎた
山ほどあるビルトイン関数を削除して
プログラミング言語に最低限必要なライブラリだけをOOPで作り
使うかどうか分からない機能は動的ロードするようにすべきだ
そんな事したらもうPHPじゃない?
そんなの知るか

490:nobodyさん
18/07/06 15:48:38.10 g8pVEt14.net
そこまでするならフォークして別言語にしろ
QIQとかかっこいい名前付けてもいいぞ

491:nobodyさん
18/07/06 15:51:08.89 .net
>>477のセンスを向上させるにはどうしたらいいですか

492:nobodyさん
18/07/06 17:09:27.76 .net
ビルトイン関数なんて削っても
PHP本体のソースコードがすっきりするだけで
別に劇的に早くなるわけじゃないしユーザ側が受けるメリットなんて大してないだろ

493:nobodyさん
18/07/06 20:02:27.67 AtnEoX2L.net
すっきりしたら
ごちゃごちゃの状態よりバグが少なくなったり
本体が小さくなるとかのメリットはある
配列とか文字列がプリミティブ型みたいな扱いなのも
なんとかしる
array_系の関数が重ねて適用しようとしたら使いづらいったらありゃしない

494:nobodyさん
18/07/06 20:52:45.52 .net
デフォルトでなんでもアリだからこそ受けてると思うんだけどな
今の時代で多少軽くなってもたかが知れている。ってかそもそもそんなに重くないだろう
そんなに重いならsmartyでも使えばphpの負荷は大きく下がる

495:nobodyさん
18/07/06 21:03:08.11 .net
smartyでphpの負荷が下がるってどゆこと

496:nobodyさん
18/07/06 21:30:44.60 YHCASoUv.net
ビルトイン関数使ってたら
テストを書く時モックするのが難しい
time()とかrand()とか
名前空間使ったハック(\timeのように書いてると不可)やPHP拡張を使う方法もあるが
他の言語だとそんなの必要ないじゃん
キモい
テストを全く書いてない奴はお帰りください

497:nobodyさん
18/07/06 22:22:39.57 .net
rubyのnokogiriみたくネイティブライブラリをラップするライブラリって使えれば需要あると思うけど
特にcomposerが普及した今なら更に

498:nobodyさん
18/07/06 23:05:33.81 wqmurizE.net
今どきsmartyって…w

499:nobodyさん
18/07/07 07:12:24.91 .net
php4時代のコードでも少しの変更でphp7で動くようにできるというのがphpのメリットで
何するにしても後方互換の問題があるわけで
pythonのような英断をしなければphpが変わることはないし
成熟してしまって時期的にそのチャンスはもう逃した
お前らがforkして新php作ればいいよ
まあオリジナルの差分をコミットする作業が面倒で3日で匙投げるだろうが

500:nobodyさん
18/07/07 12:18:10.37 y8vJRkpl.net
既にHackで爆死経験済みだろ。

501:nobodyさん
18/07/07 14:07:12.63 .net
pythonはpythonで2と3が両立していた時期があってあれはハチャメチャだった

502:nobodyさん
18/07/07 14:21:17.62 .net
php++の前段階として既存の糞ビルトイン関数のラッパークラスをphpで作ればいいよ

503:nobodyさん
18/07/07 14:39:31.14 .net
namespace php\lang;
class String extends Object
{
 public function __construct($_str)
 {
  if (is_string($_str)) $this->str = $_str;
 }
 public function htmlEscape()
 {
  $this->str = htmlspecialchars($this->str, ENT_QUOTES | ENT_HTML5, 'UTF-8');
  return $this;
 }
}

504:nobodyさん
18/07/07 15:39:21.40 2YJkuak7.net
あらゆるライブラリがそのラッパークラスとやらに対応してくれないと
何度も変換する必要があって使いづらい

505:nobodyさん
18/07/07 16:24:29.33 .net
言語ごとラッパー作るなんてできるのか?

506:nobodyさん
18/07/07 19:39:28.88 .net
イメージ的にはJavaScriptに対するjQuery
jQueryの書き方に慣れてきたころにjQueryの構文やオブジェクトを実装したJavaScript2登場みたいな

507:nobodyさん
18/07/07 20:28:57.57 2YJkuak7.net
PHPの言語仕様が嫌だが
PHPのライブラリや既存コードも使う必要があるってなら
他の言語で書いてPHPに変換出来るAltJSならぬAltPHPを使えば良いかも
ただ、PHPの場合それが出来て
ある程度人気があるのはHaxeだけだと思う
JSは本当に色々あるのに
URLリンク(stackoverflow.com)

508:nobodyさん
18/07/07 20:35:32.20 2YJkuak7.net
HackはPHPと互換性があるがVMも違うやつ使う必要があるから
AltPHPでは無いよね

509:nobodyさん
18/07/07 20:43:49.76 .net
糞だと思うなら使わなけりゃいいじゃん

510:nobodyさん
18/07/07 20:53:26.11 .net
JSはPHP以上にカオスだと思うんだけどな

511:nobodyさん
18/07/07 20:55:25.59 .net
JSはundifendeの辺りが怖すぎる

512:nobodyさん
18/07/08 14:20:25.97 .net
そんなにjsがいいならjsの子になっちゃいなさい!

513:nobodyさん
18/07/08 15:23:04.10 4WOWpkJq.net
JSはブラウザで動くのがJSしか無いから
AltJSみたいのが生まれたけど
サーバーサイドは別に代わりがいくらでもあるしね

514:nobodyさん
18/07/08 15:34:54.96 .net
ブラウザで動くのがjsしかないのが異常というか
jsだけとはいえブラウザで動かせること事態が本来異常というか

515:nobodyさん
18/07/08 15:47:47.44 .net
jsで、任意のファイルを読み書きできるの?
出来てしまうとセキュリティ上やばい気がするのだが。。。

516:nobodyさん
18/07/08 16:18:42.43 4WOWpkJq.net
>>502
なんの話?
ブラウザのJSは勝手に他サイトやファイルシステムの内容を読めるAPIは無いし
脆弱性を利用してブラウザのセキュリティを突破しようにも
サンドボックスがあったりして難しい

517:nobodyさん
18/07/08 17:48:47.31 .net
サーバサイドプログラムでjsを使う場合の話です。
任意のファイルの読み書きはできるのでしょうか?

518:nobodyさん
18/07/08 18:08:13.66 .net
node.jsならできるよ。
require('fs');

519:nobodyさん
18/07/08 21:06:37.76 .net
jsだからどうという話ではないな。nodeがそうだというだけで。

520:nobodyさん
18/07/08 22:18:37.29 .net
nudeなら

521:nobodyさん
18/07/09 01:54:41.35 .net
他所でしてくれ

522:nobodyさん
18/07/09 14:38:37.47 .net
>>502=>>504なら
なぜPHPならセキュリティ上問題ないと思った?ていう
まぁ多分本人が考えてることと他のやつが考えてることが違うのだろうけど

523:nobodyさん
18/07/09 14:59:42.48 .net
まあお茶でも飲んで落ち着けよハゲ

524:nobodyさん
18/07/09 19:52:51.86 .net
これが落ち着いていられるか!

525:nobodyさん
18/07/14 17:07:18.88 8nY3xhKd.net
このスレであってるかな…?
掲示板を作れるようになりたいんだが、正直マジでCSSとHTMLと少しのPHPの知識(スクレイピングなど)ぐらいしか知識がなくてどういう仕組みなのかわからない。
PHPで掲示板って作れる?
理想としてはガールズちゃんねるそのまんまなのが作れたら最高

526:nobodyさん
18/07/14 17:24:51.99 .net
掲示板と言っても、DBを使う/使わないで難易度が大きく変わる
作らなくてもその辺にサンプルどころかそのまま使えるものが山程落ちてるよ
それを改造するところから初めてみては

527:nobodyさん
18/07/14 17:37:27.52 8nY3xhKd.net
>>513
DBを使わないPHPの簡易掲示板はコピペしたり改造したりしてなんとか作れた。
ただ、txtファイルに書き込みデータを保存する方法だと簡易的すぎるかなと。
理想はガルちゃんみたいにユーザーが自由にトピックを立てられる形にしたいから、DBを使ってやりたい…
どっかにわかりやすい雛形でもあればいいんだけど、何から手をつければいいかすらわからない…

528:nobodyさん
18/07/14 17:46:54.13 .net
>>514
俺も昔やろうとしたんだけど、掲示板はセキュリティに気をつけないとあっという間に終わる
更にセキュリティ的に問題なくても、連投や巨大投稿、大量の改行コードだけの投稿などをどう取り扱うかで永久に終わらない
トピックというかスレでいいなら
「2ch風掲示板 cgi」
「2ch風掲示板 php」
この辺で検索してみてはどうかな

529:nobodyさん
18/07/14 17:48:37.61 .net
要求仕様を実現するのに最低限必要なことと、そうでないことを切り分けられる頭がないと無理
ガルch形式のbbsも2ch形式のbbsもc, perl, php, その他わりとどんな言語でも作れる
それとtxt方式かDB利用かは直接関係ないし
どちらにしてもどのようにデータを読み書きするかという設計を自分で出来ないと話にならない
コピペと改造でなんとか、ってレベルで何が簡易的なのか判断しようとしてる時点でおかしいことに気付け

530:nobodyさん
18/07/14 17:50:06.34 .net
まぁこういうアドバイスはガン無視して、結局自分で作ってから気づくんだよね
俺の時もそうだった
とりあえずDBは使わない形がいいよ、セキュリティと言う名の闇が待っている

531:nobodyさん
18/07/14 17:54:21.71 .net
技術がなにで出来てるのか勘違いしてるパターン

532:nobodyさん
18/07/14 17:55:49.32 .net
cgi拾ってきてcssとjs設定すれば終わりなのに、何でそんなに難しくしたがるんだろう

533:nobodyさん
18/07/14 18:23:17.42 .net
テキストかデータベースかは、見た目や運用上の設計には関係ないから、とりあえずテキストでいいと思うよ。
書き込みや読み込みの処理の部分をあちこちでやらずに1箇所で行うように設計すれば、あとでデータベース式に変更するのも修正箇所が少なくて済む。
テキストファイルは拡張子をphpとかplとかにして、直接アクセスされたら実行エラーになるようにしておけばよいかと。

534:nobodyさん
18/07/14 18:24:08.65 .net
BBS {
 int createThread(string $title);
 bool deleteThread(int $threadId);
 Gererator readThread($threadId);
 bool writeThread($threadId);
 bool saveHTML(string $template);
}

535:nobodyさん
18/07/14 18:37:57.75 8nY3xhKd.net
>>515
っぽいねー。
実はtxt自動生成して書き込み保存する簡単な掲示板を設置して見たことがあるんだが、放置してたら謎の大量文字化け(スクリプト?)の投稿で荒らされまくってダメだった…

536:nobodyさん
18/07/14 18:39:40.35 8nY3xhKd.net
>>516
ありがとう。
txtかDBってとこがポ


537:イントではないんだね。 txtファイルでも書き込み内容の分類やら保管やらをしっかり設計できれば運営していけるってことか…。 なんとなく通常のサービスはDBを利用してるからDBが正義だと思ってたわ。



538:nobodyさん
18/07/14 18:44:13.44 .net
まぁ最初から完璧なものなんて作れるわけないしまずはウダウダ言ってないで動くものを作れと

539:nobodyさん
18/07/14 19:21:07.65 .net
>>522
海外アクセス弾くだけでほぼ無くなる。「htaccess 海外 拒否」などで検索
もしくはNGワードの処理をかます。
これは書き込み後にテキトーに判定してdie()するだけでいい。めんどくさい事は後で考えて、生産的な事をまずやろう

540:nobodyさん
18/07/14 20:48:13.31 .net
>>525
私は書き込み文字の中に全角文字がひとつも無かったら、「全角文字を含めてね」ってメッセージを出して弾くようにしたら、海外のスパム書き込みは100%排除できました。

541:nobodyさん
18/07/14 21:12:36.64 .net
>526
頭いいな、いろんな意味で完璧な対策と思う
素直にすごい

542:nobodyさん
18/07/14 21:25:53.98 .net
中国弾けなさそう

543:nobodyさん
18/07/14 21:46:15.25 .net
>>528
確かに中国語だと弾けないですね笑
でも今まで中国語の書き込みは無いです。
てか、もし私が中国のスパム業者なら、日本や欧米の掲示板に中国語で書き込んだりせず、書くならやっぱり英語だと思います。

544:nobodyさん
18/07/14 23:27:28.81 .net
ジェレレーターw

545:nobodyさん
18/07/15 14:57:05.88 OQU8pbJ/.net
考える人より手を動かした人の方が早く覚えるよ
まずは本買うなりサイト見るなりして作ってみればいい

546:nobodyさん
18/07/15 18:25:13.91 .net
外部設計と内部設計の違いもわからないような奴が
いくら本を読んでも手を動かしても100%無理
既存のサービスやプログラムをとっかかりにして
仕様も機能もひとつひとつなぜ存在するのかなぜこうなってるのか学ぶしかない

547:nobodyさん
18/07/15 18:40:30.19 .net
公開されてるの?

548:nobodyさん
18/07/16 01:05:08.50 .net
公開されてるのもある
公開されてないものも設計を考える力を養うにはもってこいの材料

549:nobodyさん
18/07/16 21:26:48.20 .net
!omikujiみたいな公開しないとわからん機能じゃなくて
使ってて目に見える部分であれば
たいていどういう風に作るかイメージが沸く
このスレの人はtwitterだろうがfacebookだろうが作ろうと思えば作れるんじゃないか?
気力がない 作っても流行らない うっかり流行ったら500との闘い 解消するためにサーバ月何十万
PHPerの限界とは経済力と時間の限界なのである

550:nobodyさん
18/07/16 21:30:35.61 Jh/2B4in.net
AWSもLinuxもそこそこ扱えるし作ろうと思えば作れるけど、
レッドオーシャンに飛び込むような元気はない

551:nobodyさん
18/07/16 22:29:54.30 .net
このぐらいだったら作れる
URLリンク(stdput.com)

552:nobodyさん
18/07/16 22:36:10.37 .net
機能それぞれ単体なら比較的容易
全部まとめて、さらにセキュリティ、速度、……となると設計だけでも
かなり複雑になってくるから時間がかかるようになる
ただ、10年前の自分じゃ機能単体もおぼつかなかったと思う

553:nobodyさん
18/07/17 20:43:36.89 .net
>>536
今の知識もったまま20年前にタイムスリップしたいよな

554:nobodyさん
18/07/18 12:47:15.98 B1Xdglk2.net
【放射能の影響か?】 道路の真ん中で直立不動で失神しているトンビ、多発している認知症事故と関連!?
http://


555:rosie.5ch.net/test/read.cgi/liveplus/1531880720/l50 動物まで意識障害?



556:nobodyさん
18/07/20 17:25:59.13 .net
JSのように
$a = 10;
$b = $a || 20;
echo $b; //20
にならんかなあ
これ糞便利なんだけど
論理演算子はorだけでもいいよねえ

557:nobodyさん
18/07/20 17:26:34.38 .net
$a = 10;
$b = $a || 20;
echo $b; //20
ごめんこれ10だわw
$a = 0って書いたつもり

558:nobodyさん
18/07/20 17:50:29.12 .net
null合体演算子(??)を使え
短絡評価した結果何を返すのかなんて後から変えられるわけねぇだろ

559:nobodyさん
18/07/20 19:43:58.83 .net
型ってもんがあるからtrue/falseで返してくれないと怖い

560:nobodyさん
18/07/20 23:00:07.46 .net
>>543
Python3 呼んだ?

561:nobodyさん
18/07/20 23:26:40.30 .net
>>545
いっそそこまで覚悟出来るならやればいいとは思う
混乱はあったけど結果としてPythonの決断は正しかったのだろう
とは言え短絡評価を結果をbooleanにするのも最終評価値にするのも良し悪しだからなぁ

562:nobodyさん
18/07/20 23:57:25.93 .net
何が入るかわからないのがな
最悪を想定するなら短絡評価の前に中身の判別を入れなきゃならない
想定した型かどうか事前に判別するなら短絡評価要らない

563:nobodyさん
18/07/21 17:38:08.88 gWhxLgcg.net
$b = (!empty($a)) ? $a : 20;
NULL合体演算子はissetだからだめだな

564:nobodyさん
18/07/21 19:13:06.04 .net
JavaScriptも三項演算子使えるんだからそれでよくね
短絡評価は言語ごとに差があるからあんまり使いたくない

565:nobodyさん
18/07/21 19:16:09.41 .net
愚直でもわかりやすい判断分岐で書かれてると読む人間にはありがたい

566:nobodyさん
18/07/21 19:18:20.55 .net
なんでも短絡や三項にすれば短いだろってより
素朴にIF文使って書いてある方が
読みやすい場合が多々あるな

567:nobodyさん
18/07/21 19:25:35.94 .net
ネストしてないに限れば三項演算子は読みやすいな
条件部分を>>548のようにちゃんと()で囲ってればif文の変化形にも見えるし
コーディング規約で禁止してるとこは結構あるし賛否両論なのは確かだが

568:nobodyさん
18/07/21 19:33:59.72 .net
phpで三項演算子のネスト書く奴は頭からカレーかけられても文句言えない
ネスト階層が深けりゃコーンスープ付き

569:nobodyさん
18/07/22 05:26:38.13 .net
ifだとクロージャー使って即時実行したくならない?
if (!!$a) {
 $b = $a;
} else {
 $b = 20;
}
$b = (function() use ($a) {
 if (!!$a) {
  return $a;
 } else {
  return 20;
 }
})();
上だとなんか感覚的にいやだ

570:nobodyさん
18/07/22 05:45:59.43 .net
何に代入しているのかを特に明示したいならそれでいんじゃね
単純な代入ならインデントで即わかるとは思うが
読みやすさわかりやすさを理由に(if等で)わかりやすい分岐を・・・って話の流れで
if使いながら$aそのまま(のbool変換値)ifに流すだけなところと
ifに渡すだけの箇所で!!$aってやってるところが意味不明だが

571:nobodyさん
18/07/22 06:26:18.55 .net
> !!$a
これ、 $a == true と等価だよな?
数文字タイプする手間を惜しんで2回反転させる計算コストを発生させてる?

572:554
18/07/22 06:58:19.63 .net
booleanキャストのつもりで使ったが
確かにいらんな

573:nobodyさん
18/07/22 07:54:39.39 .net
素直メンはイケメン

574:nobodyさん
18/07/22 08:21:29.99 .net
!!って書けることを知らなかったw
!!!もできる?

575:nobodyさん
18/07/22 08:32:08.34 .net
やってどうすんのよ

576:nobodyさん
18/07/22 09:22:46.00 .net
エントロピーを増


577:大させるのだ



578:nobodyさん
18/07/22 10:22:27.72 .net
>>560
その発想がなかったから、そんな事できるんだって目から鱗なだけ。

579:nobodyさん
18/07/22 10:39:15.79 .net
!!!$varは!$varと等価だろ

580:nobodyさん
18/07/22 11:57:10.28 .net
いやだからさ、そんな事もできるんだ!
すごい面白い!
じゃあ何個まで重ねられるんだろう?って話だよ。
どこかでエラーにされて怒られるとは思うけどさ。

581:nobodyさん
18/07/22 13:15:13.80 .net
eval()あんだから自分で試してみりゃいいじゃん

582:nobodyさん
18/07/22 13:35:16.79 .net
>>554
下はJavaScriptが好きそうだな
「名前空間が汚れる」とか言って
でも上のシンプルな方が読みやすい
>>556
>$a == true
これもこの素朴な方が分かりやすい
「!!$a」とか多用すると読みにくい
トリッキーな書き方より
それを抑えて読みやすくする方が大事

583:nobodyさん
18/07/22 15:58:11.39 .net
unless (!!$a || !$b)

584:nobodyさん
18/07/22 17:01:30.11 .net
>>550
>>551
同意
書く方は短い方が書きやすいんどろうけど

585:nobodyさん
18/07/22 19:17:55.24 .net
短く書くことが目的化してるコードはバグ出やすい上にデバッグし難いんだよなあ

586:nobodyさん
18/07/22 19:19:38.87 .net
でもさすがにisset($_POST/$_GET)は三項演算子使うでしょ?

587:nobodyさん
18/07/22 19:23:07.08 .net
>>570
filter_input 使うから、使わない

588:nobodyさん
18/07/22 19:35:16.04 .net
まとめて初期化、まとめて確認って手もあるしなあ
スタンダードというわけじゃなし

589:nobodyさん
18/07/22 19:40:11.51 .net
filter_inputってバリデーションでしょ?
issetしたあとに使うものだよね?

590:nobodyさん
18/07/22 19:56:43.65 .net
転載アフィか何かなの?

591:nobodyさん
18/07/22 20:01:42.81 .net
その辺の処理は各々好きにしろとしか
・NOTICEが出ない
・その後の処理でバグを生まないようにする(デフォルト値設定、検証除去etc)
これが出来てれば良いわけで

592:nobodyさん
18/07/22 20:10:17.68 .net
>>573
マニュアル読んでみ。幸せになれる。スーパーグローバルから開放されるぞw

593:nobodyさん
18/07/22 20:36:58.12 .net
>>554
elseまでいかんでも
$b = $a;
if (!$b) $b = 20;

594:nobodyさん
18/07/22 20:41:29.86 .net
>>575
後々、それが出来てるかどうか、バグを生んだのがそこかどうか確認するのに
文字数少ない代わりにわかりにくい書き方とか最悪だろって話

595:nobodyさん
18/07/22 20:47:50.31 .net
$aの型が例えばintなどと保証されてるのか?
保証されてるなら!$aなんてint(0)の判別にしかならないのに直感的じゃない
保証されてないなら'abc'やarray(0)が来た時どうすんの

596:nobodyさん
18/07/22 20:52:50.72 .net
三項演算子の何がわかりにくいのか理解に苦しむな
ワンライナーで書けるってだけでif-elseと変わらんのに
(condition)
?
 when-true
:
 when-false
;

597:nobodyさん
18/07/22 21:18:33.98 .net
プログラム書く上で1行で書けるかどうかってなんか価値があるの?
コードゴルファーphp?

598:nobodyさん
18/07/22 21:22:28.39 .net
if( ~~~~ ) ~~~~; else ~~~~;
三項演算子の特権じゃないじゃん

599:nobodyさん
18/07/22 21:25:51.63 .net
>>581
1行だ短いだなんだじゃなくて、何がわかりにくいのか理解不能

600:nobodyさん
18/07/22 21:34:23.08 .net
ワンライナーって見ただけで私アホですと脳内変換されるわ

601:nobodyさん
18/07/22 21:36:59.50 .net
>>584
ぺちぱーってバカにされんぞ

602:nobodyさん
18/07/22 21:39:59.36 .net
>>585
ワンライナー
-rオプション使いまくってる人?えっ違うのですか?
ぺちぱー
吠えてるだけ

603:nobodyさん
18/07/22 21:42:00.36 .net
関数型言語で発狂してこいよ

604:nobodyさん
18/07/22 21:42:30.07 .net
価値はある
行数ベースで費用計算してるとき安くなる

605:nobodyさん
18/07/22 21:43:56.87 .net
三項演算子は短く書くためのものじゃないが。
その程度の理解なのなら自分で言ってるように使わないのが無難だな。
無駄にマウント取ってるのは笑えるがw
ifelseは組み込み制御構文で三項演算子のように式が要求されるところには置けない(評価されて値になれない)

606:nobodyさん
18/07/22 22:05:07.77 .net
同じことが実現できる場合の書き方の比較であって
誰もそんな当たり前の話しとらんのだが

607:nobodyさん
18/07/22 22:06:35.91 .net
嘘乙w

608:nobodyさん
18/07/22 22:09:52.68 .net
ドヤ顔マウンターぺちぱー(笑)

609:nobodyさん
18/07/22 22:25:04.60 .net
で、1行でかけることになにか価値あるの?

610:nobodyさん
18/07/22 22:29:44.80 .net
ないよ。正確にいうと関係ない。
一行で書くためにあるものじゃないからね。三項演算子は。

611:nobodyさん
18/07/22 22:34:07.28 .net
なんで話の流れと関係ないのに、三項演算子だけの特権でもないのに、ワンライナーで書けるってことをわざわざ書いたの?

612:580
18/07/22 22:39:48.38 .net
ん?俺がワンライナーとか言ったのがまずかったのか?
普通三項演算子はワンライナーで書くもんだからそう言っただけなのだが
別にそこはメインじゃないし主題ではない
?:という2つの演算子しか使っておらず、間違い探しをするようなものでもなく
何がわかりづらいのか理解できないって話をしただけ
ちなみに会話してんの俺じゃないぞ・・・

613:nobodyさん
18/07/22 22:40:24.80 .net
少ない行がいいなら最期に¥rと¥nを置き換えて1行にすればいいやんm

614:nobodyさん
18/07/22 22:44:10.15 .net
>普通三項演算子はワンライナーで書くもんだから
俺ルール広めようとしないでくれない?

615:580
18/07/22 22:49:21.00 .net
主観ではあるけど
googleで画像検索したりしても、実際ワンライナーが多数派じゃない?
そもそもネストするようなケースじゃほとんど使われないし
これも主観だけど感覚的に正しいと思う

616:nobodyさん
18/07/22 22:53:20.12 .net
改行とインデントで整えないなら1層ですら可読性低いんだけど
しかし、なんで一行・1行などと書かないでワンライナーって書くのかね
文字数多いじゃん検索用ってか

617:nobodyさん
18/07/22 23:10:04.34 .net
if (age < 18) {
  if (gender == 'male') {
    title = 'Master';
  } else {
    title = 'Miss';
  }
} else {
  if (gender == 'male') {
    title = 'Mr';
} else {
  title = 'Ms';
}
if (age < 18) {
  title = (gender == 'male') ? 'Master' : 'Miss';
} else {
  title = (gender == 'male') ? 'Mr' : 'Ms';
}
title = (age < 18) ? (gender == 'male') ? 'Master' : 'Miss' : (gender == 'male') ? 'Mr' : 'Ms'

618:580
18/07/22 23:14:53.52 .net
可読性の定義は人によってさまざまだけど
長ったらしいのはかえって可読性が下がると俺は思う
>>601では真ん中が一番読みやすい

619:nobodyさん
18/07/22 23:16:56.10 .net
ビットにしてswitchしよう

620:580
18/07/22 23:19:58.63 .net
一番上がおかしかった
if (age < 18) {
  if (gender == 'male') {
    title = 'Master';
  } else {
    title = 'Miss';
  }
} else {
  if (gender == 'male') {
    title = 'Mr';
  } else {
    title = 'Ms';
  }
}
やっぱこれは俺にはあってないな

621:nobodyさん
18/07/22 23:20:56.62 .net
一番下もおかしいんだが
php書けないのか

622:580
18/07/22 23:25:42.57 .net
>>605
これPHPじゃないし
三項演算子の可読性について、stackoverflowで引き合いに出されてたコード
PHPは評価の仕方が他の言語と違うので
そもそも一番下のようなコードは書いたことがない

623:nobodyさん
18/07/22 23:33:07.26 .net
>>602
同意
ネストしないなら3項演算子がシンプルでよいがネストさせるヤツは死ねと思ってしまう

624:nobodyさん
18/07/22 23:37:49.88 .net
俺Pythonistaだけど、{}が読みづらい原因だから、こうするといいよ。
if ($age < 18)
  if ($gender == 'male')
    $title = 'Master';
  else
    $title = 'Miss';
else
  if ($gender == 'male')
    $title = 'Mr';
  else
    $title = 'Ms';

625:nobodyさん
18/07/22 23:43:15.32 .net
PSR-2>呼んだ?

626:nobodyさん
18/07/22 23:59:30.06 .net
$titles = [
 'male'  => [ 'u18' => 'Master', 'other' => 'Mr' ],
 'female' => [ 'u18' => 'Miss',  'other' => 'Ms' ],
];
$age_category = ( $age < 18 ) ? 'u18' : 'other' ;
// もしくは
if( $age < 18 )
 $age_category = 'u18';
else
 $age_category = 'other';
$title = $titles[ $gender ][ $age_category ];
一定以上複雑なときはこうしておくかな
判断が増えたとき処理構造を大変更したくないから
というか、性別やu18かどうかをフラグで持っておくのが普通だと思うが
三項演算子だとすごく短い2つの文字列どちらか選択とかならまだいいけど
関数や式が絡むと : の区切りがわかりづらくなるんだよな

627:nobodyさん
18/07/23 00:00:45.23 .net
実務的にはそれぞれ属性を自分のobjectに聞いて、って感じのが多いかな

628:nobodyさん
18/07/23 00:14:43.72 .net
stackoverflow探してみたけどそれっぽいのが見つからないわ

629:nobodyさん
18/07/23 00:48:54.19 .net
URLリンク(www.quora.com)
stackoverflowではないな

630:nobodyさん
18/07/23 01:16:15.86 .net
echo 'こんにちは、' . ($name && strlen($name) > 0) ? trim($name) : "anonymous" . "さん";
$name = ($name && strlen($name) > 0) ? trim($name) : "anonymous";
echo "こんにちは、{$name}さん";
var = a ? b : c;を徹底して、
それ以外を組み込んだ、上のような使い方をしなければ問題ないと思う。
Viewには処理済み変数のみを埋め込むのを徹底すればいい。

631:nobodyさん
18/07/23 01:22:26.76 .net
表示名の場合はだいたい
$nameを先に'anonymous'で初期化しておいて
セッションがあってDBから取ってくる等の時に$nameを上書きする
ってやるよね

632:nobodyさん
18/07/23 01:27:12.91 .net
そだねー

633:nobodyさん
18/07/23 01:27:21.03 .net
条件2つ処理する2x2の構図でも
条件1の結果によって条件2の式自体が変わる場合は
Balancedケースでも可読性落ちるよね

634:nobodyさん
18/07/23 01:44:19.98 .net
三項演算子を使うときに可読性が落ちない条件を突き詰めていくと
一重であることと
代入される部分が簡潔で統一されてることのほかに
条件部分が簡潔で統一されてることも必要だと思うんだ
18<=ageのときは性別にunknownやnewhalfが追加されたら、途端に難解になるし
age<18ではgender==='male'だけど18<=ageではchecktitle(age,gender)の戻り値だったりすると、わりとめちゃくちゃ

でもそうするとvar=(a)?a:20;みたいな条件になりがちになって
短絡評価のわかりにくさの話に戻るんだよね
$var = (expr) ?
  value1 :
  value2 ;
みたいな書き方だったら多少複雑でもいい

635:nobodyさん
18/07/23 01:46:11.40 .net
簡潔じゃないと1重なのか2重3重になってるのかパッと見てわからないからな
その辺ifでは迷ったことがあまりない

636:nobodyさん
18/07/23 06:55:36.75 .net
> 18<=ageのときは性別にunknownやnewhalfが追加されたら
そこまでくると>>603が良さそう
1(under18)
2(over18)
4(male)
8(female)
16(unknown)
32(newhalf)
ちなみにnewhalfじゃなくて
shemaleとかladyboyが正しいおっぱいおちんちんMAN

637:nobodyさん
18/07/23 07:10:51.79 .net
なんだそれは
ageもgenderも1つに閉じ込めてbit演算するならunder18/over18は下位1bit、genderは以降上位bit、ってとこだろう
maleやfemaleを両方選択可能の並存状態にしてどうするんだよ
2値が1種、4値が1種なら3bitで済むだろう

638:nobodyさん
18/07/23 07:29:32.52 .net
そもそも話題が>>618の趣旨とは離れることだが、1点付け加えると
条件がどう動くかわからず拡張性を考えるのであれば
愚直にifやswitchで構造化するか
>>610のように1つ1つ条件を絞れば引き当てられるtableを作るのが筋だろう
ageの判定処理は完全固定と断定できないだろうし
age自体を現在日付とユーザ誕生日設定によって動的に取得させることになる可能性がある
フラグ化してのbit演算では柔軟性・拡張性に乏しい、全然良さそうじゃない

639:nobodyさん
18/07/23 09:03:36.27 .net
えせグラマ

640:nobodyさん
18/07/23 10:47:42.67 .net
$age+$genderでやれば拡張も容易

641:nobodyさん
18/07/23 11:17:26.62 .net
elseifを使えばネストなく簡略化できる
sql のselect case見たいな表記できる
if ($age < 18 and $gender == 'male') {
 $title = 'Master';
} elseif ($age < 18){
 $title = 'Miss';
} elseif ($gender == 'male') {
 $title = 'Mr';
} else {
 $title = 'Ms'
}

642:nobodyさん
18/07/23 11:34:04.40 .net
$title = [
 5=>'Mr', 6=>'Master',
 9=>'Ms', 10=>'Miss',
 17=>'Mr/Ms', 18=>'Master/Miss',
 33=>'Mx', 34=>'Mx'
];
switchは伸びがちになるしテーブル作るより遅くなるけど
可読性の面では
case GENDER_TS+AGE_UNDER18:
case GENDER_TS+AGE_OVER18:
 $title = 'Mx';
みたいに出来るから考えようによってはいいかもね

643:nobodyさん
18/07/23 11:39:51.37 .net

配列も出来るらしい
$title = [GENDER_TS+AGE_UNDER18 => 'Mx'];
みたいに
知らなかった

644:nobodyさん
18/07/23 11:43:37.99 .net
>>610と比較して1次元になるだけでメリットはないな

645:nobodyさん
18/07/23 11:48:06.16 .net
条件使わなくて済むよ
下準備も大変になるけど

646:nobodyさん
18/07/23 12:06:46.43 .net
>>625
ぱっと見何やってるのかよくわからない
三項演算子もそうだけど結局読む人のレベル次第だな

647:nobodyさん
18/07/23 14:58:02.10 .net
>>629
三項演算子だと処理が煩雑になるほど記述が鬱陶しくなるか難しいかのトレードオフじゃん

648:nobodyさん
18/07/23 15:11:43.17 ci3EIyjd.net
Pythonにすれば良い
$bar = $fooVal == 10 ? $trueVal : $falseVal
の代わりに
$bar = $trueVal if $fooVal == 10 else $falseVal
みたいに書けてちょー分かりやすい

649:nobodyさん
18/07/23 15:14:29.70 .net
ちょー(笑)

650:nobodyさん
18/07/23 15:19:01.63 .net
phpどころかビット演算というプログラムの基本すら知らない奴が居付いている

651:nobodyさん
18/07/23 15:21:44.19 KYWJiLD7.net
関数型言語では同じ変数に何度も代入するって事は基本やらない
明示的に値を変更可能な変数にすれば再代入可能だが
乱用すると関数型使う意味が無くなる
なぜ再代入を避けるかって言ったら
理由は色々あるが
一番はバグの原因になるから
ScalaにもPythonのような式扱いのif文があったり
switchが無く代わりにmatchを使うのもそれが理由

652:nobodyさん
18/07/23 17:34:07.95 .net
ビットフラグ立ててるだけでビット演算をしてるわけじゃないからな

653:nobodyさん
18/07/23 18:00:32.66 .net
初見のわかりやすさってのはシンボルか単語かの違いってのが大きいのだろうけど
みんな大嫌い正規表現だって慣れれば大したことはない
三項演算子はネスト出来ることが問題なのであってネストしなければ問題はないのである

654:nobodyさん
18/07/23 18:05:34.79 .net
正規表現わけわかんないよ
慣れるしかないんだろうね

655:nobodyさん
18/07/23 18:17:28.84 .net
どこまでが条件部かどこが区切りか
誰が見ても即座にわかる単純明快なケース限定ならいいかもね
それかキッチリ改行入れること

656:nobodyさん
18/07/23 19:16:40.02 .net
改行が減る=行数ベースの料金が下がる
文字数が減る=文字数ベースの料金が下がる

657:nobodyさん
18/07/23 19:38:29.41 .net
プログラムがより単純化するのは流れであって
コード単価あげるか 成果物に対して報酬をもらえば�


658:ィk



659:nobodyさん
18/07/23 20:20:18.09 .net
正規表現はperl時代に超覚えてマスターした気になっていたが、
PHPやJavaScriptだと微妙に違ったり後方参照も違ったり、
なんか1日中悩んでたりする。

660:nobodyさん
18/07/23 21:10:25.52 .net
>>642
言語で微妙に違うんですね
苦手です

661:nobodyさん
18/07/23 21:41:55.31 .net
>>643
慣れの問題だと思います。
PCREなのに使いこなせない自分が情けない…
preg_matchすら悩むw

662:nobodyさん
18/07/25 20:02:42.21 .net
parse_ini_fileの結果を取得するときに、
セクション名そのものを取得したい場合はどう書いたら良いでしょう?

663:nobodyさん
18/07/25 20:27:43.62 .net
2番目の引数にtrue設定すればいいんじゃね

664:nobodyさん
18/07/25 21:42:20.18 .net
ありがとうございます。
それは知っていたんですが、そういう次元じゃなかったです。
変数名をtypoしていただけでしたw
お騒がせしました…

665:nobodyさん
18/08/01 15:19:07.84 .net
typo typer

666:nobodyさん
18/08/01 16:33:29.44 .net
ペチペスト

667:nobodyさん
18/08/02 09:21:17.41 .net
ペチパン

668:nobodyさん
18/08/03 08:21:39.65 .net
Windows版のPHP7(XAMPP)で、posix関数を使うにはどうしたら良いですか?
今は特に何もせずにデフォルトインストール状態で、
関数がundefinedエラーになってしまいます。

669:nobodyさん
18/08/03 08:30:42.36 .net
URLリンク(php.net)
>注意: この拡張モジュールは Windows 環境では利用できません。
どうしたら良いかというと、VirtualBoxでWindowsの上にLinuxを乗っける、などしか手はないかと

670:nobodyさん
18/08/03 09:00:23.87 .net
了解です。ありがとうございました!
OS判定して、Windows版の時はその処理はスルーして目を瞑ることにします。
PHPはやっぱりLinuxの方がいいですね。

671:nobodyさん
18/08/04 14:46:44.62 .net
URLリンク(php.net)
この辺使ったりshell_exec系使ってcmd叩けば似たようなことはできるんでないの

672:nobodyさん
18/08/05 09:24:57.34 .net
ActiveRecodeのORMはたくさんありますけど
パフォーマンスが特に優れてるおすすめのものありますか?
処理性能重視したらPDOでSQLゴリゴリ書いたほうがいいのでしょうけど
いまいち自分のSQLに自信がもてないのでSQL書くのは減らしていこうと思っています

673:nobodyさん
18/08/05 10:18:40.81 .net
早過ぎる最適化

674:nobodyさん
18/08/05 13:09:36.79 .net
どれでも大差ないんじゃね?
一番メジャーなのを使っておくのが後々のため…

675:nobodyさん
18/08/05 15:07:22.88 .net
DB設計を確認したほうがパフォーマンス改善効果見込めるのでは

676:nobodyさん
18/08/05 15:07:42.32 .net
俺がそうなんだけど、抽象化がたりないとSQLベタ書きDAOパターンになるよね。

677:nobodyさん
18/08/05 22:12:43.12 .net
元DB屋的にはORMで結合グチュグチュやるより
出来るところはビュー作っといた方がいい希ガス

678:nobodyさん
18/08/05 22:36:24.70 .net
DB担当に流せる仕事は最大限DB担当に流してしまえという風潮
合理的だと思う

679:nobodyさん
18/08/06 19:58:51.12 .net
composerってなんでjsonわざわざ書くの?それが主流みたいだけど
installコマンドは一応用意されてるんだよね?
なんか理由あるんですか?

680:662
18/08/06 20:00:59.88 .net
installじゃなくてrequireか
composer require 'namespace/some_package.3.2.1'

681:nobodyさん
18/08/06 20:38:35.03 .net
流行り
かっこいい気がする
OSSのフロントエンドはこんなノリ

682:nobodyさん
18/08/07 09:57:45.32 spyDBr61.net
どっちもできることにこしたことはないと思うが

683:nobodyさん
18/08/07 10:39:10.39 .net
質問失礼します。
2つサーバーを試行錯誤しながら立てました。
サーバー①には Environment で USER と HOME の設定がありません。
サーバー②には phpinfo で Environment の USER と HOME が設定されているようでした。
--------
USER hoge
HOME /home/hoge
--------
Environment の設定している場所を特定したいのですが、どこを見たら良いでしょうか?
/etc/httpd/conf/httpd.conf
/etc/sysconfig/php-fpm
/etc/sysconfig/httpd
上記のファイルは調査しましたが hoge が見当たりませんでした。
よろしくお願いします。

684:nobodyさん
18/08/07 10:44:03.07 .net
そのapacheを起動した人が手順を知らないか間違えてるんだと思うぞ。
環境変数が付いてる方の起動方法を間違えてる。 
個人のプロセスじゃないのに、個人の環境変数を引き継いでどうすんだよw
serviceコマンドとか使わずに、いきなりhttpdを起動したんじゃないかと。

685:nobodyさん
18/08/07 11:11:49.87 .net
> Environment の設定している場所を特定したいのですが、どこを見たら良いでしょうか?
hogeユーザのHOMEディレクトリ指定はApache httpd側ではなくOS側
/etc/passw d
たぶんLinuxだと思うけど、ならここに書かれてる
ただし、わかってるなら直接編集してもいいけど通常はコマンド経由で変えるもんだと思う

686:nobodyさん
18/08/07 11:17:25.39 .net
>>667
>環境変数が付いてる方の起動方法を間違えてる。 
>個人のプロセスじゃないのに、個人の環境変数を引き継いでどうすんだよw
別に$HOMEが設定されてること自体はあんまり問題じゃないかも
個人の環境変数を引き継ぐ、というのも……じゃあ誰権限で実行すんの?ってことだし
"service httpd"等で起動していても、誰かの権限で動くのだから
※Windowsだとサービス化してればlocalService権限だっけ
んなことよりデーモン起動ユーザのシェルを/sbin/nologinにしとこう

687:nobodyさん
18/08/07 11:26:09.24 .net
どんなユーザ権限で実行しているか等は基礎の基礎
起動ユーザ権限のことを知りたければhttpd.confのUserとGroupの説明をよく嫁そして100%理解しろ

688:nobodyさん
18/08/07 11:38:33.77 .net
かの有名なqmailの作者であるdjb様は、
env - /path/to/bin
のような起動方法を推奨してたぞ。
って今時そんな人知らんかw

689:nobodyさん
18/08/07 11:43:59.63 .net
Linux serviceコマンド 環境変数
これでググっておけよ。
環境変数を意識してないと超レアだが意図しない結果に繋がる可能性はある。

690:nobodyさん
18/08/07 11:48:30.16 .net
単純にchkconfig/serviceで動かすようにしたところ意図せずroot権限で動かしてしまってて書いた.phpの穴突っつかれて以下略
こわいこわい

691:nobodyさん
18/08/07 11:55:14.18 .net
httpdをrootで動かすにはコンパイルオプションが必要…

692:nobodyさん
18/08/07 12:00:18.77 .net
phpのコンパイル直後のmake testに疑問を感じて早数年
でも毎回ちゃんとやってちゃんと結果確認してる

693:nobodyさん
18/08/07 12:03:09.00 .net
>>668 >>669
ワロタ

694:nobodyさん
18/08/07 12:04:52.52 baYuORhx.net
>んなことよりデーモン起動ユーザのシェルを/sbin/nologinにしとこう
なんで?
起動ユーザはrootで、nologinにするのはWorkerプロセスのユーザでしょ。
ApacheにしろNginxにしろ、そういう風に作られてるわけで。
単一で動くタイプとごっちゃにしたらいかんよ。

695:nobodyさん
18/08/07 12:13:53.51 .net
>>677
全面的にすまんかった
> nologinにするのはWorkerプロセスのユーザ
こっちを意図して「デーモン起動ユーザ」と書いてた

696:nobodyさん
18/08/07 12:39:41.49 .net
chsh -s /sbin/nologin root

697:nobodyさん
18/08/07 12:44:15.65 .net
root router

698:nobodyさん
18/08/07 14:28:42.07 .net
突然思い出したが、
むかーしのFre


699:eBSDってnologinの中身がexitって書かれてるシェルスクリプトだったなw



700:nobodyさん
18/08/07 14:33:20.67 .net
それで機能しちゃうもんなのか

701:nobodyさん
18/08/07 17:00:47.53 7Qa/G72W.net
/bin/falseとかでもええんやで。

702:nobodyさん
18/08/07 17:39:43.15 .net
特に理由もなく/dev/nullが好きだった時期があった

703:nobodyさん
18/08/07 19:04:34.22 .net
UNIXアカウント=メアドという古き良き安全なインターネットの時代は、
/usr/bin/passwdをログインシェルに設定して、
パスワード変更はtelnetで繋ぐとかもあったな。

704:nobodyさん
18/08/07 22:31:33.33 .net
>>666
php-fpmならpool.dは見たのかな
php-cgiでsuexecやmod_suphpならユーザー権限になって当然だし
>>667
あなたの環境では非特権ユーザーがポート80をバインドできるようにlibcapを使っているんですね
それはあまり普通じゃないので、人と話すときの前提にしない方がいいですよ
>>671
バーンスタイン先生はEd25519でSSHやTLS界隈じゃバリ現役

705:nobodyさん
18/08/08 01:27:35.83 .net
phpで、 $var = 'text'; // ←これ、この代入を検知して代入直後に何らかの処理を自動発動させる、ってこと、できる?
ループ中で逐一$varをチェックする、というようなのではなく

706:nobodyさん
18/08/08 01:38:57.92 .net
その代入文の次の行に処理書けばいいだけでは?

707:nobodyさん
18/08/08 03:47:12.65 .net
オブジェクトにしてセッター通す

708:nobodyさん
18/08/08 07:06:46.06 .net
>>686
無理してるなあ

709:nobodyさん
18/08/08 10:39:23.28 8EBBnoJ7.net
>>686
qmailとかなんとかdnsとかdaemontoolsとか見事に全部放り投げたなw
あんだけ他攻撃してたくせに。

710:nobodyさん
18/08/08 15:42:04.42 .net
PHPマニュアルってすげー優秀だなー
セキュリティーで嫌煙されてるがCHMが用意されてるのがでかい
これでネットもつながらない山の中でもPHPならスムーズに開発ができるわ

711:nobodyさん
18/08/08 15:53:58.68 .net
CHMってなんだと思いかけたけど
あれかhtmlヘルプファイルの.chmか
用意されてるの知らんかったサンキュー兄貴

712:nobodyさん
18/08/08 16:53:50.96 .net
>>693
おうよブラザー
ダウンロードしたCHMはセキュリティ厳しくなっててそのままじゃ見れないから
プロパティ開いてブロック解除忘れずにね

713:nobodyさん
18/08/08 17:11:31.35 .net
>>691
しかし、あの考え方はその後に大きな影響を与えたと思う。
Postfixなんてのが良い例かと…
攻撃という意味では、日本のqmaiサイトを運営してた某教授の方が酷かったw

714:nobodyさん
18/08/08 19:06:25.42 .net
>>691
public domainにしてくれたのはありがたかった
qmailはまだまだ現役で運用してるとこ結構ある
djbdnsはパッチなしだと来年死ぬけどね
>>695
大岡山かw

715:nobodyさん
18/08/09 02:14:42.91 .net
djbdns使ってないからdjbdnsが来年ってなんだろうと思って 2019年 djbdns ぐぐった
2番目に出てきたURLのタイトルが「2019年入籍日おすすめランキング」だった
終わってんな

716:nobodyさん
18/08/09 02:42:28.01 .net
わたしもqmailまだ使ってる

717:nobodyさん
18/08/09 08:04:46.57 .net
daemontoolsってCD/DVD/BDとかの仮想ソフトじゃなかったっけ
って思ったら全く関係なかったでござる

718:nobodyさん
18/08/10 17:13:37.72 .net
ドラえもん道具?

719:nobodyさん
18/08/10 20:47:


720:36.56 ID:???.net



721:nobodyさん
18/08/11 19:13:48.05 .net
djbphp

722:nobodyさん
18/08/11 19:58:51.69 .net
>>695
M野先生?准教授止まりじゃなかった?

723:nobodyさん
18/08/11 22:30:59.56 .net
net-qmail

724:nobodyさん
18/08/12 04:37:30.63 .net
>>695
あの人ちょっとゴリホーモ入っとるよな

725:nobodyさん
18/08/12 12:00:04.80 .net
PHPのネタないの?

726:nobodyさん
18/08/12 16:05:25.58 .net
ネタは無いがphpとシェルや他言語とのバッチの書きやすさの違いを聞いてみたい

727:nobodyさん
18/08/12 16:48:11.26 .net
>>707
慣れとしか言えないと思う
バッチファイルはphpで書いて、シェルからアクセスするというやり方にしてるわ

728:nobodyさん
18/08/12 17:55:27.72 .net
#!/sbin/php

729:nobodyさん
18/08/12 20:32:52.06 .net
正直マオリ語か何かにしか思えないperlで書かれたバッチも、慣れれば都なのだろうか

730:nobodyさん
18/08/12 20:36:16.09 .net
そうではないから廃れたんやぞ

731:nobodyさん
18/08/12 21:12:13.44 .net
prelは正直、割とマジでキツイ
文法が違いすぎるから、しばらく離れてるとどう読んで良いのかがわからない

732:nobodyさん
18/08/12 21:27:47.32 .net
perlはプリミティブなんだよな。
やりたい事を細かく制御して書かないといけない。
でも文字列処理だけは感心する。

733:nobodyさん
18/08/12 21:51:00.56 .net
phpの話じゃなくてperlの話になってるじゃないですか!

734:nobodyさん
18/08/12 21:56:40.87 .net
個人的にはPHPの方が気楽に書けて好きなんだけど, 現実的にはPythonで書くのがいいんだろうなぁ
PHPとPythonの共通点はbattery includedなあたりか

735:nobodyさん
18/08/12 22:33:57.36 .net
phpとperl、cgiは一昔前は選択性みたいな感じだったのにね
いつの間にやらphp一辺倒になってた
>>715
一度pythonでサイト作ってみたけど本気でめんどくさかった
phpがもてはやされる理由がよくわかった

736:nobodyさん
18/08/12 22:40:19.13 .net
ちょっと離れるけどバッチもWebもnodeであれこれやってみたことがあった
くそめんどかった

737:nobodyさん
18/08/13 00:07:08.75 .net
>>710
鯖管あたりは配列とループ使うのにシェルスクリプト代わりにperlって人多い

738:nobodyさん
18/08/13 07:03:51.93 .net
言語的な扱いやすさを取るか環境的な扱いやすさを取るかの天秤
そういう意味ではperlはありでもpyは意味がわからないo

739:nobodyさん
18/08/13 13:44:45.42 .net
なぜPythonはダメ?
いずれ何でもかんでもPythonになる可能性すら秘めているのに…
まあ、互換性は不安あるけど。
Perlは下位互換が優秀だったからなあ…

740:nobodyさん
18/08/13 14:25:38.56 sZ92TvgJ.net
配列とループw
PerlもPHPもPython他の足元にも及ばんだろ。
ちょっとしたデータ処理しようと思ったときに、絶対に選ばない2大言語。

741:nobodyさん
18/08/13 15:45:58.02 zFMgiLTA.net
適材適所だし、どっちが上とかないしょ
PHPが未だにこれだけ使われてるしね

742:nobodyさん
18/08/13 16:08:50.29 .net
>ちょっとしたデータ処理
環境構築を考えれば、こんなもん普段使ってる言語一択だろ
バカか

743:nobodyさん
18/08/13 16:41:01.31 .net
自分のとこだけで動かすなら普段使いの言語だが, 他環境で動かす可能性があるならLSBに入ってるPerlかPythonだなー

744:nobodyさん
18/08/14 01:01:33.04 .net
>>721
わかってないねぇ
標準インストールで入ってる可能性がダントツで高いのがperlなんだよ

745:nobodyさん
18/08/14 05:00:24.02 .net
連想配列をjson_encodeでjsonにした際、「/」が、エスケープ処理されておらず困っているのですが
対処法はありますか?
オプションにJSON_UNESCAPED_SLASHESを指定しなければ、エスケープされるような記載を見掛けるのですが・・・
PHPバージョンは7.1です

746:nobodyさん
18/08/14 06:07:12.85 .net
手元の7.2.1でjson_encode('test/test')とすると、test\/testが返ってくる
json_encodeの第二引数を明示的に 0 にしてみるとか
事前に(必要に応じて再帰的に)自分で/を\/にするとか

747:nobodyさん
18/08/15 08:05:27.87 qP4cYvWG.net
デフォルトがエスケープありになってるのか。

748:nobodyさん
18/08/17 14:43:40.86 .net
ログインシェルをPHPにしたらオワタ

749:nobodyさん
18/08/17 14:54:08.54 .net
お前の頭がインタラクティブ

750:nobodyさん
18/08/17 22:51:59.09 .net
マルチメディアに対応したかったんだよ…

751:nobodyさん
18/08/18 01:34:32.30 .net
>>727
すみません。勘違いしていました。
「/」ではなく、U+2044というFRACTION SLASHを記載して、
それに対してエスケープされないと嘆いてました。

752:nobodyさん
18/08/18 19:23:26.94 .net
言われてるほどシェル言語としてだめなわけじゃない
あきらかにshやbashよりは使いやすいだろう

753:nobodyさん
18/08/19 12:23:47.75 .net
win10のie11で外部pcの共有フォルダに置いてるpdfをphp関数で表示したいのですがどうすればいいでしょうか?
fopenのハンドルも取れず、readfileでも無反応です
ブラウザからファイルパス入力だと表示できます

754:nobodyさん
18/08/19 12:25:45.74 .net
ブラウザ関係なくね?
他のブラウザなら思った通りになるの?

755:nobodyさん
18/08/19 12:32:11.81 Il2RNG8O.net
何やりたいかさっぱり分からん
質問するなら他人にちゃんと伝わるように書け

756:nobodyさん
18/08/19 12:36:15.56 .net
NASみたいな共有フォルダにあるファイルにアクセスしたいってことでしょ…
PDFかどうか以前に、他のファイルも試してみろと。
PHPはなにのサーバーで動いていて、
バージョンはいくつなのかとか環境を書けよ。
ブラウザとかどうでもいいしw

757:734
18/08/19 12:37:22.17 .net
vistaのie9だとできてたんですが
最新環境だとできないのです

758:734
18/08/19 12:38:27.17 .net
apache2.2 php4.3です

759:nobodyさん
18/08/19 12:38:35.98 .net
ふーん…

760:nobodyさん
18/08/19 12:40:22.71 .net
最新って何?
XAMPPとか使っててPHP 7.2.xとか?

761:734
18/08/19 12:42:00.39 .net
最新と言うのはOSとブラウザがってことです 64bitです vistaは32bitです
phpとapacheはそのままです

762:nobodyさん
18/08/19 12:47:01.68 .net
ここまでのやりとりで、教えるのは無理とわかったから他に行きな。
まともに質問すらできないんだから教えようがない。

763:nobodyさん
18/08/19 13:01:24.89 .net
初心者お断りスレだしなー

764:nobodyさん
18/08/19 14:34:59.94 Il2RNG8O.net
まずはログとか見ろよ
ログに何も出てないなら何か根本的に間違ってるってこと

765:nobodyさん
18/08/19 14:49:41.25 .net
俺の頭髪も根本が根本的に間違ってる

766:nobodyさん
18/08/19 17:12:58.11 kRBINjI+.net
PHPのsystem()でmysqldumpを使ってテーブルごとのsqlファイルを出力して、
それを圧縮して保存するプログラムを作った。
直接ブラウザでアクセスしてプログラムを動かすと正常に圧縮ファイルが保存される。
しかしcronで動かすと、全く空欄のsqlファイルを圧縮したものが保存される。
私には、全く原因が分からず修正できません。
原因はどういったものが考えられますでしょうか?

767:nobodyさん
18/08/19 17:17:02.88 .net
cronでやらないで、CLIで一度実行してみたらいい
権限関係でねーのと思う

768:!ninja
18/08/19 17:18:09.56 .net
ブラウザの裏で動いているPHPのユーザー権限や、
crontabのユーザー権限や、
ファイル類のパス、
実行カレントディレクトリ等は一致してますかね?

769:nobodyさん
18/08/19 18:18:48.73 Il2RNG8O.net
cronでありがちなのはファイルパスの指定ミス
実行プログラムやファイルの指定を相対パスで書くと事故ること多し
簡単に対応するなら全部絶対パスで書け

770:747
18/08/19 19:28:59.75 kRBINjI+.net
皆さん、ありがとう御座います。
まだ解決は出来てないのですが、調べるべき方向は見えてきました。

771:nobodyさん
18/08/19 19:31:32.86 .net
実行権限の違いじゃね
webサーバはapache で
cron はcrontab -eで登録したユーザー
とか

772:nobodyさん
18/08/19 21:13:04.70 .net
id > /tmp/log
pwd >> /tmp/log
env >> /tmp/log

773:nobodyさん
18/08/25 11:11:15.78 mbihd+U1.net
composerのclassmap-authorativeの最適化
場合によっては遅くなるってマジ?
速くなる場合もあるが以下の条件では遅くなるって
・依存ライブラリが多い
・リクエストで実際には使わないクラスが多い
・ファイルシステムからの検索が速い
最適化を有効にすると
読み込めるクラスを全部PHPの配列に入れるから
逆に速度が落ちる場合もある
opcacheが有効だとファイルシステムが遅くても緩和されるし
PHPファイルが更新されないならタイムスタンプのチェックも無効にすれば
PHPファイルを見る必要無くなるね
URLリンク(blobfolio.com)
APCU使った最適化については書いてない

774:nobodyさん
18/08/25 18:38:08.55 .net
真実かどうか聞きたいのか、それとも自分で確認した事実を書きたいのか

775:nobodyさん
18/08/25 19:07:29.36 yUon0wwz.net
どうしても知りたいなら自分でベンチ取ってみるしかないだろう

776:nobodyさん
18/08/25 19:26:31.29 .net
環境のせいで多少遅ってるかもしれない可能性を確認するよりも
コードを見直したほうがずっと早く改善できそう

777:nobodyさん
18/08/26 09:42:55.24 nAEEME22.net
こちらで質問させてください
classの必要性がいまいちわからないんですが、普通に自作関数を使うのとどう違うんでしょうか?

778:nobodyさん
18/08/26 10:00:36.02 .net
classと同じようなことの実現は関数・objectを駆使すればたぶん無理ではない
けど非常にめんどい
継承とか再利用なんかはどうしようと悩む

779:nobodyさん
18/08/26 10:00:45.66 .net
>>758
一人で作るプロジェクト、しかも関数だけだと特に変わらないね
消費税の計算するだけなら別にどっちでもいい。関数にもしなくて良い

今はまだ分からないかもしれないけど、
コンストラクタ、ガベージコレクション、トレイトなど便利な機能が山程ある
其内色々な機能を使うようになると思うので、とりあえずclassに慣れておいた方が良い・・・としか言えない

780:nobodyさん
18/08/26 10:01:30.69 .net
>>759
継承の場合は丸ごとコピーになるね
で、一箇所かえたら両方変更する必要があり・・・とどんどん煩雑になる

781:nobodyさん
18/08/26 10:06:53.90 .net
>>761
コードをコピペしたらもうそれは継承ではなくなってしまうな
関数名を扱うことでコールバック的にやろうとすれば、そこはもう地獄
うーむ

782:nobodyさん
18/08/26 10:10:44.53 .net
とりあえずGCはclassに限った話じゃなくね?
関数内でも一応無関係ではないはず
インスタンスに対するGCは
関数主体の場合だと関数内の変数や関数外の変数に対するGCが当てはまるわけで

783:nobodyさん
18/08/26 10:25:52.22 .net
あまりclassがうんぬんを意識しないで使ってるものを考えたらわかりやすいかも
PDOとかExceptionとか

784:758
18/08/26 11:12:05.68 nAEEME22.net
独学で基礎的なことだけ覚えたんですが、わりと小規模な会員機能付きのブログエンジンやデータベース系のサイト程度なら作れるようになったんですが(プロから見たら多分穴だらけ)、クラスの必要性が分からず全て関数作ってやってました
コードの使い回しにしても関数にしておいて1度呼び出しておけば何度も使えるし、継承にしても関数内で別の関数を呼び出したりして
直感的にも使いやすかったのでそうしてるんですが、今後もっと複雑な事をやろうとするとやっぱりクラスに慣れて使った方がいいんですかね
関係ない話ですが、人のコードとか見ると多次元配列の回し方とか他にもいろいろ人と違うし自分の脳の作りを疑ってしまう。。

785:nobodyさん
18/08/26 11:43:42.77 .net
>>765
その場合は「状態」を誰が持っているのかってのが一つのポイントだと思う
状態をグローバル変数に持つのは嫌だし, 関数に持たせるのも良くない

786:nobodyさん
18/08/26 15:35:20.70 .net
コードの書き方は設計にもつながるからなあ
DB使ってるならPDOがまさにインスタンスごとに別のコネクションを保持できて
class=インスタンスの中に関係関数がまとまってて
classの利点がわかりやすい

787:nobodyさん
18/08/26 15:36:42.57 .net
名前空間が分かれるだけでもありがたいよ

788:nobodyさん
18/08/26 18:00:16.90 .net
標準クラスの名前空間って\だよね?

789:nobodyさん
18/08/26 22:34:08.74 .net
>わりと小規模な会員機能付きのブログエンジンやデータベース系のサイト程度
ここら辺に何かを感じる

790:nobodyさん
18/08/27 00:48:28.21 .net
そこはいいの。お節介するところじゃない。

791:nobodyさん
18/08/27 01:47:28.99 .net
まあ怪しいな

792:nobodyさん
18/08/27 12:57:27.44 .net
file_get_contentsで他サーバーのデータを取得した際、
データが途中までしか入って無い場合があり、困ってるのですが対処方法はありますか?
$http_response_headerに載っているContent-Lengthに比べても少ない
file_get_contentsの戻り値が、falseではないがデータが半分くらいしか入ってない状態で、エラーも何もなくそのまま処理が継続してしまう形です。
そのタイミングでリトライしても結果は変わらず、時間置くくらいしか正常に動作しません。
ただ発生するときは、file_get_contentsで他サーバーのデータを17ファイル連続で取りに行く場合などで、
その場合、3ファイル程データがおかしくなっているという感じです。
1ファイル処理する分には正常に動作し、再現しません。

環境はLinux / apache2-api-20120211 / PHP 7.1.18です。

793:nobodyさん
18/08/27 13:10:26.40 .net
>$http_response_headerに載っているContent-Lengthに比べても少ない
>そのタイミングでリトライしても結果は変わらず
比べてみて、少なかったら
成功するまでリトライすればいいじゃない
contextつきでもfile_get_contentsで問題があって、しかしcurlを使うと問題が出なくなるということもある(※実話)

794:nobodyさん
18/08/27 14:00:52.82 .net
自分の場合どっちもだめでfsockopenでようやくいけたなんてことがあったな
一番詳細なこと出来るのはfsockopenだからねえ

795:nobodyさん
18/08/27 14:23:18.31 .net
自前でソケット通信考えたらredirectとかkeepaliveとかくっそ面倒だった記憶がある

796:nobodyさん
18/08/27 14:56:47.44 .net
>>774
>成功するまでリトライすればいいじゃない
同プロセスでは何度やっても一度も正しく取得できないんです…
別プロセスで起動し直すと正しく取得できるときもあるのですが、
それは使用リソース的な問題であまりやりたくないというか…
curlを試してみるしかないですかね
>>775
どっちもだめ…curlの勝算も低いですかね…
fsockopen使うくらいなら別言語を検討してしまいそうだ

797:nobodyさん
18/08/27 15:20:54.44 MKVYhJ6R.net
ググったら1番上の記事(公式マニュアル除く)にあるじゃん。

798:nobodyさん
18/08/27 15:46:07.23 .net
具体的に何回やったのか
そのうち本当に通信が発生してるのは何回か
調査と試験どっちもしないの

799:nobodyさん
18/09/01 14:57:08.37 xLd9eNnQ.net
APCuキャッシュを使っている。
管理画面apc.phpに表示されるFragmentationが日々上がっていっている。
現在10%ぐらいだが、まだまだ上がりそう。
この断片化率が上がると何か問題があるのか?
何%ぐらだと問題で、対策はどうすればいいのか?

800:nobodyさん
18/09/01 15:32:43.35 .net
APCuって自分でなんとかできる人が使うもんじゃなかったっけ
ほかの選択肢あるっしょ

801:nobodyさん
18/09/01 15:45:20.23 .net
ググってわからなかったら、
夜中とか定期的に完全削除しちゃえ。
キャッシュなんてすぐ育つから。

802:780
18/09/01 16:19:01.86 xLd9eNnQ.net
俺は、自分で調べないわけじゃないぜ。ただ少なくとも日本語の情報は殆どない。
「apcu 断片化」では20件程度、「apcu Fragmentation」なら沢山ヒットするが、対象を日本語ページに絞ると10件程度しかない。
これらは全部読んだが「Fragmentationが高くなったら、キャッシュをクリアしろ」ということが書いてあっただけで、
何%だと問題なのか、そもそもどのような問題が発生するのか分からない。
英語が読めないわけじゃないけど、英語で検索して必要な情報を調べるのは苦労するよ。

803:nobodyさん
18/09/01 16:28:38.69 .net
自分でベンチマーク取って検証するんだ。
そして報告すれば誰かの役に立つ。
ちなみに俺は何も知らない。すまん…w

804:nobodyさん
18/09/01 16:30:11.58 .net
いっそのことソース読んだら

805:nobodyさん
18/09/01 16:30:52.08 .net
ソース読んで効果がわかる部分じゃないだろ…

806:nobodyさん
18/09/01 16:44:49.29 .net
ソース読めば全部わかるだろ

807:nobodyさん
18/09/01 16:52:55.17 .net
ソース読んで、何%断片化すると悪影響が出るかわかる?
キャッシュの実装方法がわかっても測定しないとわからないことだよ。

808:nobodyさん
18/09/01 16:58:46.78 .net
APCuって
オペコードキャッシュ部分がなくなって、cookieみたいなkey-valueのデータを自前で自サーバのメモリに共有するだけに単純化されたもんでねえの
DISKにcsvで持ったりDB使ったりで共有するんじゃなくてメモリに持って共有しましょう的な
だとすると、キャッシュクリア=メモリ上の情報破棄だから気軽にやっちゃあかんし
fragmentになってるっていうなら、
それがメモリ上にあるというだけで他はDISKにおけるfragmentと同じでしょ?同じように考えりゃいいじゃん

809:nobodyさん
18/09/01 17:03:03.50 .net
>>788
メモリにどういう配置してどう読み書きしてるかがわからないと
断片化を操作する検証も度合いごとに断片化が及ぼす影響の調査もできなくない?
ことが断片化だから、意図的に特定の断片化状態を作るのって
内部知らないと相当難しいように思うんだけど

810:nobodyさん
18/09/01 17:04:43.00 .net
突き詰めるとメモリ領域の話になってくるんけ?

811:nobodyさん
18/09/01 17:17:23.22 .net
ソースだけ見れば分かるならプロファイラ何か要らないんだよなー

812:nobodyさん
18/09/01 18:19:46.16 .net
Fragmentationが100%に達してても
キャッシュヒット率が高ければ問題ないらしい
(書き込みは遅くなるが読み取りは遅くならない)
URLリンク(serverfault.com)
とは言っても書き込みは遅くなるわけで
実際パフォーマンスにどれくらい影響が出るかは使用状況によるので一概に言えない
本番環境のパフォーマンスを見るには
New Relic APMがおすすめらしいけど
自分は使ったこと無い

813:nobodyさん
18/09/01 18:45:33.01 .net
JavaのGCだとコンパクションとか
断片化を防ぐ仕組みはあったけど
多分apcuにはそんな仕組みはないと思われ
動的に確保するから更新・削除を何度も行うと細切れになる
断片化率は5MB以下のブロックが全体に占める割合みたいなことが書いてある
解放されたブロックが隣接してたらマージして1つのブロックにする、とも書いてあるが
これだけだと完全に断片化は防げないとか?
URLリンク(github.com)
NewRelic使えとかはこの辺で見た
URLリンク(medium.com)

814:nobodyさん
18/09/01 18:52:38.08 .net
Symfonyも
書き込みや削除が多い用途にAPCUを使うと断片化しやすいから使うなって言ってる
多分それをやるとAPCUの管理するブロックの数がどんどん増えていって
新しいブロックの確保が遅くなるんだろう
代わりにRedisとかmemcachedとか使えば?
遅延があるとかで場合によっては使えないかもしれないが
Use of this adapter is discouraged in write/delete heavy workloads, as these operations cause memory fragmentation that results in significantly degraded performance.
URLリンク(symfony.com)

815:780
18/09/01 21:31:23.17 xLd9eNnQ.net
ありがとう。少し分かってきた。
英語での情報収集が必要とかレベルが上ってきた感じがしていいね。

816:nobodyさん
18/09/02 06:36:05.35 .net
クソッ、話が高度すぎる・・・
今日からPHPUnit使うなんて言い出せないじゃないか。

817:nobodyさん
18/09/02 09:08:26.43 .net
APCuってしらんが
セッションにDBのハンドラ入れても使えなかったのを
使えるようになるような代物かね?

818:nobodyさん
18/09/02 09:36:09.10 .net
>>798
言ってる意味がわからない
DBの接続はリクエスト終わったら切られるだろ

819:nobodyさん
18/09/02 10:26:34.63 .net
>>799
いやわかるけど
で、sessionで使えなかったのを使えるようになるような代物ではない
serializeできないものは無理、sessionも共有メモリもそう
リソース型と一部のオブジェクトは無理

820:nobodyさん
18/09/02 10:35:20.45 .net
DB接続やファイルハンドラが処理終了時に自動的に切られるのは、
そういう扱いをされるべきリソース型であって確実にデストラクタが呼ばれてるからという理由であって、
処理終了時にシンボルテーブルにある全変数が解放されるのとは無関係、
よって、変数の格納先が異なるだけの$_SESSIONや共有メモリでもこの事情は変わらない、
と理解している
json化できないものは入れられないwebStorageみたいな感覚

821:nobodyさん
18/09/02 20:02:16.35 .net
Dockerで
nginxコンテナとphpfpmコンテナを分けてコンテナで分けて作った時
nginxの方はphpファイル入ってなくてもディレクトリさえあれば普通に動くな
開発する時はDockerボリュームを2つのコンテナにマウントしてたが
本番用イメージをCIで作る時は・・・?2つのイメージに同じphpファイルを入れなくちゃいけないのか?って思って調べたらこのような方法が見つかった
画像やCSSとかの静的ファイルは・・・nginxの方だけに入れるか

822:nobodyさん
18/09/02 20:04:53.11 .net
phpMyAdminの公式Dockerイメージはnginxとphpが一つのコンテナになってたけど
あれって面倒?
php:7.2-fpmをベースイメージとしてそのまま使うのは出来なくなるよな
それだけでめんどそう

823:nobodyさん
18/09/03 07:53:52.79 .net
速度重視じゃないから構わないのでは…

824:nobodyさん
18/09/03 14:47:55.71 .net
というかホスト側ポートに繋げて直接外に晒すなりのホストのhttpdからリバースプロキシして使うもんだろ?
nginxコンテナとphp-fpmコンテナに静的コンテンツと動的コンテンツを分けて入れてnginxコンテナからphp-fpmコンテナを見えるようにしてとか, そんな細かい粒度にする必要を感じない

825:nobodyさん
18/09/03 19:59:04.77 .net
phpMyAdminのDockerイメージが使ってるのはsupervisordだった
ベースイメージはphpで、supervisordやnginxを別途インストールしている
意外と難しくない?

826:734
18/09/03 20:04:21.13 .net
遅ればせながら自己解決

827:nobodyさん
18/09/04 11:02:04.45 .net
supervisordは落とし穴が多い
使わなくて済むなら使いたくない

828:nobodyさん
18/09/05 07:35:09.46 .net
俺なんかhttpdはinetdの下でいいやと思うことすらある。
ただし、apapche 1みたないのよりずっと軽いやつね。

829:nobodyさん
18/09/05 08:52:13.09 WQzBx9At.net
どうしても一つにしたいならApacheでいいじゃん。
docker-composeとかあって分けるのが大した面倒でもないのに、一つに拘る理由がわからんけど。

830:nobodyさん
18/09/05 08:58:29.76 .net
Dockerが使えれば女の子にモテモテ

831:nobodyさん
18/09/05 11:51:33.55 .net
どっか行きたい

832:nobodyさん
18/09/05 12:09:37.13 .net
Docker使えるならいいと思うよ

833:nobodyさん
18/09/05 13:10:38.80 .net
>>812
オヤジギャグかよ…

834:nobodyさん
18/09/05 17:00:56.76 .net
dockerってぶっちゃけそこまで便利というか必須?

835:nobodyさん
18/09/05 17:21:02.69 .net
Dockerの誤解と神話。識者が語るDockerの使いどころとは? Docker座談会(前編)
URLリンク(thinkit.co.jp)
下手したらバズワードで終わる…ほど酷くはないな。
大昔のフロッピー起動みたいに
ガチャガチャ差し替えて使うようなもんかね。

836:nobodyさん
18/09/05 17:47:40.73 .net
コンテナでアプリケーション作るならDocker-ComposeないしはDocker単体でいいけどサービス作るならKunernetesくらいは知っとけよって感じ

837:nobodyさん
18/09/05 18:02:18.87 .net
え?なんだって?

838:nobodyさん
18/09/05 18:07:56.14 .net
DevOpsってさあ…
昔やってた開発と運用のいっしょくたに戻しただけだよね。
理想は違うんだろうが現実は(笑)
10年後はまた分業とか言ってんだぜ、どうせ…

839:nobodyさん
18/09/05 18:13:01.00 .net
10年後には地球がなくなってるよ
絶対だよ

840:nobodyさん
18/09/05 19:43:49.28 lhQCR9Kb.net
URLリンク(m-fetishism.com)

841:nobodyさん
18/09/05 22:49:42.31 .net
なんかPHPって覚えるスキルRubyやPythonよりおおくね?

842:nobodyさん
18/09/05 23:46:31.60 .net
かわんないだろ

843:nobodyさん
18/09/06 07:11:57.58 .net
バッドノウハウと関数がね

844:nobodyさん
18/09/06 12:33:18.54 .net
PHPはWebProg言語としては登場時期は早かったが
いかんせん類友なのか開発陣が無能なもんでいつもどこかの後追い
PHPerだからといって覚えることが特に多いわけではなく
他言語にはあるがPHPにはないから作ろう
そんな車輪の再発明まがいのことを続けてきた結果であって
一言で言えばご苦労なだけなのである

845:nobodyさん
18/09/06 13:44:51.41 .net
別に先陣切って何かを実装してくれとは思わないからいいよ。
それに、他はできるのにPHPはできないってのも良くないだろw

846:nobodyさん
18/09/06 15:12:11.31 .net
俺はもうDockerが無いと生きていけない体にされてしまった
必要なプログラムが全て入ったイメージが作れるので
実際に本番環境にアップロードしたら動かなかったけど、
ローカルの開発環境では動いたんだよ!
みたいな事が起こるリスクを下げる
各開発者の開発環境の構築も簡単
docker-composeのファイルとか配ればいい

847:nobodyさん
18/09/06 15:57:43.54 .net
そんでもってテスト用のまま間違って本番稼働させるんだろう?
知ってるよ

848:nobodyさん
18/09/06 17:52:35.05 .net
仮想化は楽だろうしDockerはGoogleのハードな使い方にも耐えてるほど
耐久性も信頼性も高いのだろうけど
やっぱり専用サーバで環境作るのが俺は好きなんだよ!

849:nobodyさん
18/09/06 18:26:07.22 .net
手段と目的を間違えて無ければ何でもいいよ。
Dockerはもちろん良い物だけど必須ではない。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch