Ответ 1
Silex 2.0 использует Pimple 3.0, который удалил метод shared
, теперь все службы разделяются по умолчанию, если вы хотите новый экземпляр, вы должны вызвать метод factory
, как указано в changelog для версии 2.0.
Итак, если вы хотите использовать службу входа в систему, вы должны создать ее так:
<?php
$app['login'] = function($app) {
return new Model\UserModel($app);
};
Вы можете взглянуть на документы для версии 3.0 Pimple прямо на это репозиторий GitHub
PS: Имейте в виду, что на момент написания этой статьи Silex 2.0 находится в разработке, поэтому будьте готовы адаптировать свой код до тех пор, пока он не получит стабильную версию 2.0. 2.0 достиг статуса prod с 2016-05-18