以下是一个简单的 PHP 注册模式的示例:
<?php
class Registry {
private static $objects = [];
// 注册对象
public static function set($key, $object) {
self::$objects[$key] = $object;
}
// 获取对象
public static function get($key) {
return isset(self::$objects[$key]) ? self::$objects[$key] : null;
}
// 删除对象
public static function remove($key) {
if (isset(self::$objects[$key])) {
unset(self::$objects[$key]);
}
}
}
// 示例类
class Database {
private $name;
public function __construct($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
// 在注册表中注册一个数据库对象
Registry::set('db', new Database('MySQL'));
// 在其他地方获取注册表中的对象
$db = Registry::get('db');
if ($db instanceof Database) {
echo "Database Name: " . $db->getName() . "\n";
} else {
echo "Database not found in the registry.\n";
}
在这个例子中,Registry 类是注册表,负责存储和提供对其他对象的访问。通过 set 方法注册对象,通过 get 方法获取对象。Database 类是一个示例类,表示数据库对象。通过注册表,可以在不直接传递对象引用的情况下,全局共享和访问这个数据库对象。
需要注意的是,注册模式可能会引入全局状态,因此在使用时需要小心,确保合理使用并避免滥用。
转载请注明出处:http://www.pingtaimeng.com/article/detail/11950/PHP