Symfony2: использовать параметр, определенный в config.xml - PullRequest
0 голосов
/ 30 марта 2012

У меня есть класс paginator, который должен получить ограничение из config.xml и текущей страницы из контроллера.

Как определить ограничение в config.xml и как получить к нему доступ снаружиконтроллер?

С уважением

1 Ответ

2 голосов
/ 30 марта 2012

Определите класс paginator как сервис DIC и добавьте service_container как сервис, например

//paginator class 
//namespace definitions
use Symfony\Component\DependencyInjection\ContainerInterface;

class Paginator{
    /**
     * @var Symfony\Component\DependencyInjection\ContainerInterface 
     */
    private $container;

    public function __construct(ContainerInterface $container){
        $this->container = $container;
    }

    public function yourPaginationMethod(){
        $limit = $this->container->getParameter("limit.conf.parameter");
        //rest of the method
    }
}

А потом в вас services.yml вашего пучка.

 #services.yml
 paginator_service:
  class: FQCN\Of\Your\PaginatorClass
  arguments: [@service_container]

И в вашем контроллере вы можете получить доступ к Paginator следующим образом.

//in controller method
$paginator = $this->get('paginator_service');

Для получения дополнительной информации об этом вы можете проверить Служебный контейнер раздел документации Symfony.

...