Мог бы посоздавать alias для Cheevauva.
А то за собой тащить такие макороны не удобно.
\
Cheevauva\Contract\Container\UseServiceLocator
if ($object instanceof \Cheevauva\Contract\Container\UseServiceLocator) {
$object->setContainer(new \Cheevauva\Container\ServiceLocator($properties, $this));
return;
}
Не хватает комментариев к коду.Особенно для метода classUsesDeep.
Название метода вообще ничего не говорит.
Не поняты название переменной
$tratis $traits = array();
do {
$traits += class_uses($class);
} while ($class = get_parent_class($class));
foreach ($traits as $trait => $same) {
$traits += $this->classUsesDeep($trait);
}
return array_unique($traits);
https://github.com/cheevauva/container/blob...a/Container.php $object = new $className;
$this->objects[$className] = $object;
$this->handleObject($object);
if ($object instanceof \Cheevauva\Contract\Container\Mediator) {
$this->objects[$className] = $object->get();
}
Не нравится такой подвязанной подход с условиями.
Что-то типо $this->objects[$className] = $object->getClassObject(); подошло бы для всех.