ホームページ >バックエンド開発 >PHPチュートリアル >PHPデザインパターンシリーズ - 登録パターン(レジストリ)
登録モード(レジストリ)は、登録ツリーモード、レジスタモードとも呼ばれます。 Registration パターンは、アプリケーションで頻繁に使用されるオブジェクトの中央ストアを作成します。通常は、静的メソッドのみを含む抽象クラスを通じて (または Singleton パターンを通じて)。
Registry.php
<?phpnamespace DesignPatterns\Structural\Registry;/** * class Registry */abstract class Registry{ const LOGGER = 'logger'; /** * @var array */ protected static $storedValues = array(); /** * sets a value * * @param string $key * @param mixed $value * * @static * @return void */ public static function set($key, $value) { self::$storedValues[$key] = $value; } /** * gets a value from the registry * * @param string $key * * @static * @return mixed */ public static function get($key) { return self::$storedValues[$key]; } // typically there would be methods to check if a key has already been registered and so on ...}
Tests/RegistryTest.php
<?phpnamespace DesignPatterns\Structural\Registry\Tests;use DesignPatterns\Structural\Registry\Registry;class RegistryTest extends \PHPUnit_Framework_TestCase{ public function testSetAndGetLogger() { Registry::set(Registry::LOGGER, new \StdClass()); $logger = Registry::get(Registry::LOGGER); $this->assertInstanceOf('StdClass', $logger); }}