Следующий код из учебника (http://net.tutsplus.com/php/creating-a-php5-framework-part-1/), а не мой.Дизайн шаблона реестра ... хороший или плохой?
У меня есть несколько вопросов по поводу этого кода ...
- В статье утверждается, что использует «реестр шаблон проектирования»; что универсальное название этого дизайна в отрасли?
- Есть ли другой подобный вариант, который будет лучшим вариантом?
- Является ли эта модель считающейся хорошей практикой для реализации в контексте структуры MVC?
Я просто хочу выяснить, следует ли использовать этот шаблон проектирования в моей реализации структуры MVC. Благодаря!
<?php
/**
* The PCARegistry object
* Implements the Registry and Singleton design patterns
* @version 0.1
* @author Michael Peacock
*/
class PCARegistry {
/**
* Our array of objects
* @access private
*/
private static $objects = array();
/**
* Our array of settings
* @access private
*/
private static $settings = array();
/**
* The frameworks human readable name
* @access private
*/
private static $frameworkName = 'PCA Framework version 0.1';
/**
* The instance of the registry
* @access private
*/
private static $instance;
/**
* Private constructor to prevent it being created directly
* @access private
*/
private function __construct()
{
}
/**
* singleton method used to access the object
* @access public
* @return
*/
public static function singleton()
{
if(!isset(self::$instance))
{
$obj = __CLASS__;
self::$instance = new $obj;
}
return self::$instance;
}
/**
* prevent cloning of the object: issues an E_USER_ERROR if this is attempted
*/
public function __clone()
{
trigger_error('Cloning the registry is not permitted', E_USER_ERROR);
}
/**
* Stores an object in the registry
* @param String $object the name of the object
* @param String $key the key for the array
* @return void
*/
public function storeObject($object, $key)
{
require_once('objects/' . $object . '.class.php');
self::$objects[ $key ] = new $object(self::$instance);
}
/**
* Gets an object from the registry
* @param String $key the array key
* @return object
*/
public function getObject($key)
{
if(is_object (self::$objects[ $key ]))
{
return self::$objects[ $key ];
}
}
/**
* Stores settings in the registry
* @param String $data
* @param String $key the key for the array
* @return void
*/
public function storeSetting($data, $key)
{
self::$settings[ $key ] = $data;
}
/**
* Gets a setting from the registry
* @param String $key the key in the array
* @return void
*/
public function getSetting($key)
{
return self::$settings[ $key ];
}
/**
* Gets the frameworks name
* @return String
*/
public function getFrameworkName()
{
return self::$frameworkName;
}
}
?>
LOL ... Я встал и проголосовал. Думаю, мой вопрос недостаточно хорош для кого-то. – 2009-07-20 02:16:52