我试图找到一种方法将所有 php 应用程序数据保存在一个地方。比如get和post参数、页面标题、分页结果等,避免使用全局变量。
将所有数据和控制器之间的交换保留在以下对象中是个好主意吗?
class container {
protected static $_instance;
protected $_instance_class;
public static function instance($instance_name = 'default')
{
$c = __CLASS__;
if ( ! isset($c::$_instance[$instance_name]))
{
$c::$_instance[$instance_name] = new $c();
$c::$_instance[$instance_name]->_instance_class = $instance_name;
}
return $c::$_instance[$instance_name];
}
public function set($key, $val)
{
// someting like $this->$key = $val;
}
public function get($key)
{
// someting like retrun $this->$key;
}
}
然后,例如在模型中
container::instance('messages')->set('error', 'some error');
并在控制器或视图中
container::instance('messages')->get('error');
或者有没有其他方法可以让数据从应用程序的任何地方都可以访问?
谢谢!