unity / container
Unity 框架依赖管理器。
0.1
2018-11-12 14:00 UTC
Requires
- psr/container: ^1.0
- unity/reflector: ^1.1
Requires (Dev)
- make/accessible: ^2.2
- phpunit/phpunit: ^6.2
This package is auto-updated.
Last update: 2024-09-13 04:23:53 UTC
README
一个开箱即用的 PHP 项目依赖管理器。
简介
让我们看看这个类
class Logger { protected $fileLogger; public function __construct(FileLogger $fileLogger) { $this->fileLogger = $fileLogger; } public function log($message) { return $this->fileLogger->log($message); } }
这个类的问题在于它依赖于特定的 Logger。
如果我们有一天改变主意,想通过电子邮件发送日志怎么办?我们需要回到这个类并将 logger 从 FileLogger 更改为 EmailLogger。
重构
class Logger { protected $driver; public function __construct(LoggerDriverInterface $driver) { $this->driver = $driver; } public function log($message) { return $this->driver->load($message); } }
这样我们的类就可以接受任何类型的文件驱动程序,并且与一个契约耦合,而不是与具体的实现耦合。
但是如果你有很多类要管理怎么办呢?
这时候容器就派上用场了。
安装
composer require unity/container