Внедрение зависимостей PHP — разница между контейнером, контроллером или фабрикой

Я до сих пор не могу сказать разницу между контейнером, контроллером или фабрикой. Например, код ниже, должен ли он рассматриваться как контейнер, контроллер или фабрика?

Как должно быть, если это контейнер в этом случае?

namespace ioc
{
class LoggerContainer
{
use \Snippets;

/*
* Set props.
*/
protected $Database;
public $Logger;

/**
* Construct data.
*/
public function __construct($Database)
{
// Set DI.
$this->Database = $Database;

// Run private method.
$this->getLogger();
}

/**
* Set a new class (instantiate the class) as the return result.
*/
private function getLogger()
{
$signature = AUTHENTICATED_USER_SIGNATURE;
$this->Logger = new \core\model\Logger($this->Database);

if($_REQUEST['url'] === 'backoffice')
{
return $this->Logger->setLogger($signature)->addCategory()->addSomething();
}
else
{
return $this->Logger->setLogger($signature)->removeSomething();
}

}
}
}

0

Решение

  • Это контейнер, потому что это объект, который содержит другой объект, к которому осуществляется доступ, то есть, в данном случае, Logger.

  • Контроллер — это термин, который обычно относится к С MVC и это то, что контролирует модель и вид

  • В то время как фабричный метод ссылается на подпрограммы, которые возвращают правильную специализацию интерфейса / абстрактного класса

Обратите внимание, что эти три термина относятся к очень разным вещам

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]