PHPでデコレーターパターンする

PHPでデコレーターパターンを簡単に書くためのスクリプトを書きました。

akrfjmt/decorated - Packagist

本来のデコレーターパターンはメソッドごとに挟みたい処理を書くのですが、PHPには__callというマジックメソッドがあり、メソッドを1つ定義すると全てのメソッド呼び出しに対して処理を挟むことができます。

  • インスタンスのメソッド呼び出しの前後で
    • トランザクションを張りたい
    • ログを出力したい
    • 実行時間を計測したい

みたいなときに使えると思います。

テストから抜粋
<?php
$yankeeDecorator = new TailDecorator('!?');
$cat = new Cat();

/** @var Cat|Decorated $decorated */
$decorated = new Decorated($cat, $yankeeDecorator);

/** @var Cat|Decorated $doubleDecorated */
$doubleDecorated = new Decorated($cat, $yankeeDecorator, $yankeeDecorator);

// '111222'
$cat->Concat('111', '222');

// 'abcdef!?'
$decorated->Concat('abc', 'def');

// '114514!?!?'
$doubleDecorated->Concat('114', '514');
デコレーターというよりAOPの出来損ないでは?

はい

マイニングマシンの電源ユニットをCPUクーラーで冷やす

みなさんこんにちは。バーチャルユーチューバーのキズナアイです。

今回はマイニングマシンが安定しない原因のひとつ「電源ユニットの過熱 → 安全装置によるシャットダウン」を解決してみたいと思います。

なんと今回、電源ユニットをCPUクーラーで効果的に冷やせることがわかりました。

続きを読む

VIP Poolでハッシュレートランキング入りする方法

MONAのマイニングプールはいくつか(VIP Pool、温水プール、suprnova、……等々)あります。 これらマイニングプールにはにはシェアランキング・ハッシュレートランキングがあり、ハッシュレート(採掘速度)が高ければランキング入りすることができます。 今回はVIP Poolのハッシュレートランキング入りに挑戦してみたいと思います。

続きを読む