明滅するプログラマの思索

WEBエンジニアとして勤務している一介の男が、日々気づいたことをまとめるブログです

MySQL で既存テーブルに JSON 型カラムを追加すると、デフォルトで null が入る

MySQL5.7以降で追加された JSON 型ですが、仕様を把握していないとハマるポイントがあります。 たとえば、テーブルに NOT NULL でJSON型のカラムを追加をすると、既存レコードには null が入ります。 この null は MySQL の NULL ではなく(NOT NULL で追加し…

HTTPレスポンスを返した後も処理を続ける方法

PHP

HTTPリクエストを受け取ったWEBサーバは、そのプロセスで処理をすべて実行した後にレスポンスを返却します。 この処理に時間がかかることが予想されるとき(たとえば30秒でタイムアウトするリクエストで40秒かかるとか)、プロセス内で別のプロセスを起動し…

クラスにメソッドを動的に追加する trait

PHP

実装済みのクラスに、あとからメソッドを動的に追加することができるようにします。 実装環境 ソフトウェア バージョン PHP 5.6.30 ※ ただし trait 自体は PHP5.4 以降で利用可能