奇特なブログ

「殊勝に値する行いや心掛け」を意味する、奇特な人になる為のブログです

PHP

PHPのコーディングにおけるベストプラクティスを考える:in_array関数

PHPのコーディングにおけるベストプラクティスを考える準備記事 - 奇特なブログしばらく間隔が空きましたが、第三段です。 これは、以下の記事とかもあるので、結構有名な気もしますが、 でも、ちょいちょい第三引数未指定に起因したバグを見聞きするので、…

PHPのコーディングにおけるベストプラクティスを考える:is_numeric関数

PHPのコーディングにおけるベストプラクティスを考える準備記事 - 奇特なブログさて、今回は上記の記事の「第二弾」ですね。 以下の、前回のempty()に続き、結構使用頻度の多い関数だと思います。 そして、emptyと同じぐらいかそれ以上に、取り扱い注意な関…

PHPのコーディングにおけるベストプラクティスを考える:empty関数

PHPのコーディングにおけるベストプラクティスを考える準備記事 - 奇特なブログ さて、今回は上記の記事の「第一弾」です。 しばらくは、「微妙な関数シリーズ」になると思います。 で、やっぱり最初は、この企画を考えるきっかけになった「empty関数(厳密…

PHPのコーディングにおけるベストプラクティスを考える準備記事

もう、PHPの仕事は色々な顧客としてきています(10〜15顧客ぐらい?)が、 まあ、案件(正確には、書いた人)によってコードも色々ですし、 で、ルールも色々(PSRが多いといえば多いですが、守られていたりそうじゃなかったり)ですし、 混迷を極めてい…

SQLで行う処理をプログラムで行う検証

詳しくは、以下のREADMEを参照して頂くとして。 other/sql_to_programming_performance_test at master · kitoku-magic/other · GitHub 時々あるんですよね、こういう時が。 で、今回比較して、「どこまでをSQLに書いて、どこからをプログラムに書くか」が、…

色々な言語でユーザー登録フォームを作る(PHP版)

ちょっと、Pythonでプログラムを書くにあたって、何か作った方が良いなと思いまして。それで、昔PHPで書いていた「ユーザー登録フォーム」が良いんじゃないかと思い、それを書き切ってみました。github.comしかし、思ったよりも考える事が多かったという(苦…

サーバー側で全部HTMLエスケープする(CakePHP3の場合)

昔、Phalconで実装したことがありましたが、 Cakeだと、どうやれば良いのかと。 デフォルトで対応してくれれば良いのにと、昔から思ってるんですけどね。 あと、以下の様にプラグインを書いてる方もいらっしゃる様ですが、 プラグインなので、導入できない場…

この正規表現は、どんな文字がマッチするのか調べたい時など

※PHP7.2以上じゃないと動かない関数を使ってます 主目的としては、タイトルの通りですが「この正規表現って、どんな文字ならマッチするの?」って初見で思う様な、パッと見複雑な正規表現を見る時が、ちょいちょいあるわけですよ。だから、そういう時に使え…

小さな技術ネタ8つ

一つ一つが小さいので、まとめましたよ。 1.switchの分岐もう、すっかりお約束かと思うんですが、「switch($data)」と書いた時に、「==」で比較されますよっていうやつ。で、以下の様な解決策が、提示されてますと。ケースごとに異なる処理を、ポリモーフ…

続・MVCのMのクラス設計草案など

前回記事: MVCのMのクラス設計草案など - 奇特なブログ前回の草案ソースとの差分(ちょっと多過ぎますが): モデルクラスの設計草案を作成(一旦完成) · kitoku-magic/other@f89baf7 · GitHubもう、そんなに書く事も浮かばないんですけどね。とりあえず、…

traitに期待し過ぎ?(笑)

ピンと来て、出来てからにしようかと思ったんですが、まぁ良いかなと(笑)「ログの出力をしたいけど、クラス毎にログの出力先を変えたい」という仕様があったとして、↓のコード(PHP5.2というか、traitが無い状況の場合)を書いたんですが。 set_log_save_p…

MVCのMのクラス設計草案など

いや~、一時期どこでも「DDD」の話題が出たり、また、実際に現場で導入していたりということで、ちょっと、考えてみますかねと思いまして。DDDといっても、範囲が広すぎるので、今回はタイトル付近の話ですが。 まずは、参考元だったり、引用元だったりを。…

続・ダブルブッキングを防ぐ予約追加プログラムを考えた

前回: kitoku-magic.hatenablog.comさぁ、思ったよりも早く、再開の時期がやってきました。今回は、以下の差分を載っけました。github.comで、まず今回の差分で、特記しておきたい所を。 $retry_count = 5;このリトライ回数なんですけど、これが特に1回だ…

ダブルブッキングを防ぐ予約追加プログラムを考えた

以下に書いてみたんですけどね。other/reservation_double_booking_check at master · kitoku-magic/other · GitHubいや~これは、やっぱり予約レコードが「無い」時が厄介なのと、 あと、ダブルブッキングを「何処でチェックするか」というのが・・・ ダブ…

SMTPプロトコルで直接サーバーと対話するメール送信ライブラリをPHPで書いた件

GitHub対象ファイル(以下のmail~で始まる4つのファイル) github.com えっと、まずこの話は、実は2010年頃に社内案件(というのとは、また違うか)でこのプログラムを書いていた(ただ、業務では結局使っていない)んですけど、その後すっかり忘れまして…

任意のPHPファイルをサーバー上をアップロードする際のセキュリティ上の懸念点

PHP

追記(普通は末尾に書くんでしょうけど)以下の質問ですが、リンク先のPHPプロの方でも打ち切らせて頂いたので、 こちらでも、打ち切らせていただきます。 ご意見頂いた方々、どうもありがとうございました。結論だけ書いておきますと、「サーバーに任意のPH…

リファクタリング手法その1

PHP

さて、たまには技術系の記事でも。PHPは、関数の引数を可変にすることが出来るのを利用した手法です。 まず、以下の様なコードがありました。-----------------------------------------------------------------------------------------

foreachの挙動

PHP

滝打ち1日目。う〜ん、こいつはビックリだ。 いや、以下の記事のプログラムを、動かしてみて思ったんですけどね。これなぁ… http://d.hatena.ne.jp/gallu/20130201/p1foraechって、思想として、 「配列の"全要素"を出力する」っていうのがあると思ってまし…

文字列連結、どれが最適?

PHP

えっと、先日某所より 「ループ内では、「.=」で文字列連結しないでarrayの要素に一つずつ値を突っ込んで、ループ抜けた後にimpludeせよ」 的なお話をいただいたのですが、 「確かに速いかもしれないけど、メモリ的にはどうよ?」とも思いましたので、 これ…

値渡しと参照渡しの速度比較

PHP

今回の内容は、先月書いた値渡しで値を変えると処理速度が激遅になる時があるの続きなんですけど、 それについて、先日とある勉強会で話をして来ました。 で今回は、話をした内容をテキストにしたもの(自己紹介とかは除外してるけど)を書きたいと思います。 …

値渡しで値を変えると処理速度が激遅になる時がある

PHP

久々の技術ネタです。 いや、ネタは沢山あるんですけど、書くのが難しいのが多くて(苦笑) あと、この記事は特になんですけど、 ハッキリしない点が多いので、識者からのツッコミ大歓迎です。 よろしくお願いします。では本題に入りますが、先に結論です。 …

PHPのセッションの保存先と関数群について

PHP

php.iniの「session.save_handler」のデフォルト値って「files」だと思うのですが。 以下の様な事をしたい場合に、filesである事が問題になる様です。Webサーバのクラスタリングじゃあどうするの?って話になると思うのですが、PHPのセッションを考えるにあ…

パフォーマンスが上がるfor文の書き方

PHP

以下の様な2つの書き方、皆さんしていませんか?1.for(i = 0; i 2.for(i = 0; i strlen(マニュアル)は文字列のバイト数(文字数ではない)をint型で返す関数で、 count(マニュアル)は配列の要素数などをint型で返す関数です。 詳細はマニュアルを参照し…