navegando por
www.phpclasses.org en el grupo de diseño de patrones, encontre un ejemplo de registry en un framework que es asi:
Código PHP:
Ver originalclass registry
{
# vars that will be available globally
public function __set($index, $value)
{
$this->vars[$index] = $value;
}
public function __get($index)
{
return $this->vars[$index];
}
}
Es tan simple como eso?
después lo crea en el index.php de la aplicacion
Código PHP:
Ver original# include the config file
require 'config.php';
# include the core files
require __SITE_PATH . '/core/' . 'controller.class.php';
require __SITE_PATH . '/core/' . 'registry.class.php';
require __SITE_PATH . '/core/' . 'router.class.php';
require __SITE_PATH . '/core/' . 'template.class.php';
require __SITE_PATH . '/core/' . 'model.class.php';
require __SITE_PATH . '/core/' . 'quickdb.class.php';
# create new registry object
$registry = new registry;
# create the database registry object
$registry->db = new QuickDB($__host, $__user, $__password, $__database);
# load the router
$registry->router = new router($registry);
# load the model
$registry->model = new model($registry->db, $registry->router->getFile());
# load up the template
$registry->template = new template($registry);
# load the controller
$registry->router->dispatch();
### end of the index file ###
y en la clase para los controladores usa algo asi:
Código PHP:
Ver originalabstract class Controller
{
protected $registry; # protected so that it is accessible from other classes as well.
function __construct($registry)
{
$this->registry = $registry;
}
# all controllers must contain an index method
abstract function index();
protected function redirect($url)
{
}
}
y en los controladores del sistema asi:
Código PHP:
Ver originalclass error404Controller extends Controller
{
public function index()
{
$this->registry->template->blog_heading = '404 Error - Page Not Found !';
$this->registry->template->show('error404');
}
}
la verdad que pense que era mas complicado al ver lo que era la documentacion de como lo usa zend jejej