すべてのphpアプリケーションデータを1か所に保持する方法を見つけようとしています。たとえば、グローバル変数の使用を避けるために、パラメータ、ページタイトル、ページネーション結果などを取得して投稿します。
これは、すべてのデータを保持し、コントローラー間の交換を次のオブジェクトに保持することをお勧めしますか?
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');
または、アプリのどこからでもデータにアクセスできるようにする他の方法はありますか?
ありがとう!