您的位置:首页 > 编程语言 > PHP开发

PHP依赖注入

2017-10-11 11:05 162 查看
$_SESSION['language'] = 'fr';
$user_language = $_SESSION['language'];


class SessionStorage
{
function __construct($cookieName = 'PHP_SESS_ID')
{
session_name($cookieName);
session_start();
}

function set($key, $value)
{
$_SESSION[$key] = $value;
}

function get($key)
{
return $_SESSION[$key];
}

// ...
}


class User
{
protected $storage;

function __construct()
{
$this->storage = new SessionStorage();
}

function setLanguage($language)
{
$this->storage->set('language', $language);
}

function getLanguage()
{
return $this->storage->get('language');
}

// ...
}


$user = new User();
$user->setLanguage('fr');
$user_language = $user->getLanguage();


class User
{
function __construct()
{
$this->storage = new SessionStorage('SESSION_ID');
}
// ...
}


class User
{
function __construct()
{
$t
4000
his->storage = new SessionStorage(STORAGE_SESSION_NAME);
}

// ...
}
define('STORAGE_SESSION_NAME', 'SESSION_ID');


class User
{
function __construct($sessionName)
{
$this->storage = new SessionStorage($sessionName);
}

// ...
}

$user = new User('SESSION_ID');


class User
{
function __construct($storageOptions)
{
$this->storage = new SessionStorage($storageOptions['session_name']);
}

// ...
}
$user = new User(array('session_name' => 'SESSION_ID'));


class User
{
function __construct($storage)
{
$this->storage = $storage;
}

// ...
}


$storage = new SessionStorage('SESSION_ID');
$user = new User($storage);


实际上 依赖注入 关键就是 把实例当做参数传入构造函数,降低了业务类之间的耦合。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: