У меня странная проблема с symfony2. В service.yml я объявил постраничное обслуживание:Пространство имен приложений для Symfony
site.paginate_service:
class: "Smestaj\SiteBundle\Services\PaginationService"
arguments:
- "@service_container"
Service выглядит следующим образом:
namespace Smestaj\SiteBundle\Services;
use Symfony\Component\DependencyInjection\ContainerInterface;
class PaginationService{
protected $cn;
protected $numberOfData;
public function __construct(ContainerInterface $container)
{
$this->cn = $container;
$this->numberOfData = $container->getParameter("limit")['adsPerPage'];
}
Проблема заключается в том, когда я называю эту услугу в service.yml в другую службу в качестве dependacy инъекции
site.ads_service:
class: "Smestaj\SiteBundle\Services\AdsService"
arguments:
- "@doctrine.orm.entity_manager"
- "@service_container"
calls:
- [setPaginate, ["@site.paginate_service"]]
затем я получаю это сообщение об ошибке:
Попытка загрузить класс «ServicesaginationService» из пространства имен «Smestaj \ SiteBundle». Вы забыли инструкцию «use» для другого пространства имен?
Итак, из этого сообщения ясно, что symfony пытается назвать класс «ServicesaginationService». Мой класс имеет Smestaj \ SiteBundle \ Services \ PaginationService. Symfony, как-то объединить службы и имя PaginationService и удалить «P» от имени.
Если я меняю название класса на AaaService, тогда все работает нормально.
Попробуйте удалить кавычки из значений класса. –
Его плохая идея, чтобы ввести service_container для обслуживания самого себя. Вам следует вводить только зависимые службы, параметры и т. Д., Но НЕ сервисный контейнер – rokas