У меня есть эта черта
use Pimple\Container;
trait ContainerAwareTrait
{
protected $container;
public function setContainer(Container $container = null)
{
if (null !== $this->container) {
$this->container = $container;
}
}
public function getContainer()
{
return $this->container;
}
}
У меня есть этот код, используя его (через App
учебный класс)
$container = new Pimple\Container();
$app = new App($container); // uses ContainerAwareTrait, constructor calls `setContainer`
var_dump($app->getContainer(), $container);die;
Я вижу, что первый var_dump
Результатом является array
и второй является примером Pimple\Container
,
Я ожидал, что они оба будут одним и тем же экземпляром. Может кто-нибудь сказать мне, что здесь происходит?
Ваша логика установки неверна: вы хотите установить this->container
когда он не был установлен (есть null
), а не когда он уже установлен (есть not null
).
Других решений пока нет …