PHP

NullObjectパターンを覚えた

出品者のデータにフィルタをかけて該当する出品者のSellerオブジェクトを返すメソッドがあるとします。 サンプルコード data = $data; } /** * 出品者の価格 * @return int */ public function price(): int { return $this->…

ValueObjectっぽいものを導入したらいい感じになってきた

今までAPIで取得した値を加工・計算したい場合とりあえず連想配列に入れてゴニョゴニョしていた。 連想配列にいろいろなデータ詰め込みすぎると何入ってるのかわかんなくなるし、面倒なのがある条件のときだけ存在しないキーがあったりしたら、isset()とかem…

PHP+msmtpとMailCatcherをDockerで動かす

PHP+msmtpとMailCatcherをDockerで動かす 今までPHP+ssmtpとMailCatcherを使用していた。 WSL2にしてDockerを動かそうとしたら Package 'ssmtp' has no installation candidate と出てインストールできなかった。 ssmtpはメンテされていないことを知ったので…

PHP プロセスの多重起動を防ぐやり方

PHP

cronでPHPのタスクを定期的に起動したいが、すでにプロセスが動いている場合に起動しないようにしたい。 PHPのタスクを実行する前に確認するタイプ

Strategyパターン

Strategyパターン 目的 様々なアルゴリズムを、それが発生するコンテキストに応じて使い分けられるようにする。 問題 要求を行うクライアントや操作対象データによって、適用するアルゴリズムを選択する。 解決策 該当アルゴリズムの実装からアルゴリズムを個別…

Adapterパターン

Adapterパターン 目的 修正することのできない既存オブジェクトを、特定のインターフェースに適合させる。 既存のクラスを修正することなく、適切なインターフェース(メソッド)を追加することができる。 問題 使用したいデータや振る舞いが既存システム内に存在…

『良いコードを書く技術』を読んだ

良いコードを書く技術 ?読みやすく保守しやすいプログラミング作法 (WEB+DB PRESS plus)作者: 縣俊貴出版社/メーカー: 技術評論社発売日: 2011/04/09メディア: 単行本(ソフトカバー)購入: 46人 クリック: 2,459回この商品を含むブログ (68件) を見る 良い…

PHPで『テスト駆動開発』

今更感はありますけど、『テスト駆動開発』をコツコツ写経しています。PHPを使いたいのでPHPで書いているんですけど、本ではJavaで実装されていて12章あたりからちょっとつまづいてます。Javaではクラスをキャストしたり、プロパティに型書いたり、HashMapのキーに…