PHP依赖注入 - Pimple等 - 为什么使用关联数组而不是使用getter方法?
- 论坛
- PHP依赖注入 - Pimple等 - 为什么使用关联数组而不是使用getter方法?
4 浏览
PHP依赖注入 - Pimple等 - 为什么使用关联数组而不是使用getter方法?
我们正在考虑将一个依赖注入容器集成到我们的项目中。我看过的每个DIC都使用了关联数组和/或魔术方法。例如,这是来自Pimple页面的一个示例:
$container['session_storage'] = function ($c) { return new $c['session_storage_class']($c['cookie_name']); }; $container['session'] = function ($c) { return new Session($c['session_storage']); };
这样做的原因是什么?我讨厌在代码中使用字符串,除非它们只是要在某个地方显示的字面字符串。这样会失去IDE的许多功能(这使得代码更难维护,而我们正试图避免这种情况!)。
我更喜欢像这样的方式:
class Container { function getSessionStorage() { return new $this->getSessionStorageClass($this->getCookieName); } function getSession() { return new Session($this->getSessionStorage()); } }
有没有不这样做的原因?我是否忽略了Pimple的一些魔法,如果我们选择这条路线,它将无法正常工作?