Jak uzyskać w czasie wykonywania nazwę trasy w Symfony2 podczas używania opisu tras yaml?

Tutaj możesz znaleźć mojen-te pytanie dotyczące Symfony2.

Pracuję zpakiet stronicowania używa nazwy trasy podanej wrouting.yml plik. Z mojego punktu widzenia takie podejście nie jest elastyczne i prowadzi do brudnego kodu, ponieważ jeśli zmienię nazwę trasy, to muszę spojrzeć na wszystkie szablony Twiga lub pliki PHP, aby zaktualizować nazwę trasy. Jest to w porządku dla małych aplikacji internetowych, ale zapewni taki błąd dla większych aplikacji, a także wymaga dużego obciążenia dla programisty.

Zastanawiałem się, czy przekazać zmienną łańcuchowąx doPager obiekt dostarczony przez wyżej wymieniony pakiet. Ciągx należy zainicjować w kontrolerze i podać żądaną nazwę trasy podaną wrouting.yml plik.

Podam przykład. Plik routingu jest następujący:

<code>//routing.yml
 AcmeTestBundle_listall:
pattern:  /test/page/{page}
defaults: { _controller: AcmeTestBundle:List:listall, page: 1 }
requirements:
    page:  \d+   
</code>

Następnie powiązany kontroler to:

<code>//use something....
class ListController extends Controller
{

  public function exampleAction($page)
  {
    $array = range(1, 100);
    $adapter = new ArrayAdapter($array);
    $pager = new Pager($adapter, array('page' => $page, 'limit' => 25));

    return array('pager' => $pager);  
  }
}
</code>

Następnie w szablonie gałązki$pager otrzymuje nazwę trasy, która odnosi się do powyższego pakietu

<code>{% if pager.isPaginable %}
   {{ paginate(pager, 'AcmeTestBundle_listall') }}
{% endif %}
{% for item in pager.getResults %}
   <p>{{ item }}</p>
{% endfor %}
</code>

Czy wiesz, jak uzyskać wartość ciągu „AcmeTestBundle_listall” w czasie wykonywania bezpośrednio w kontrolerze?

questionAnswers(1)

yourAnswerToTheQuestion