unity/container

Unity 框架依赖管理器。

0.1 2018-11-12 14:00 UTC

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

用法