2016-04-19 13 views
1

Демонстрационное приложение я скачал из PHP симфони сайта, имеет следующий синтаксис для контроллера:синтаксис контроллера в PHP Symfony

_controller: Symfony\Bundle\FrameworkBundle\Controller\Template::hello 

и

_controller: Symfony\Bundle\FrameworkBundle\Controller\Template::templateAction 

Относительный путь для файла является приложением \ Config \ маршрутизации .yml.

Страницы ссылок, упомянутые в этом файле, не имеют синтаксиса оператора разрешения разрешающей способности с двойной колонкой. Является ли это допустимым синтаксисом?

http://symfony.com/doc/current/book/routing.html http://symfony.com/doc/current/cookbook/templating/render_without_controller.html

Спасибо заранее.

+1

* Является ли это действительный синтаксис * Так как он включен в файл, предоставленной Symfony, это вероятно, будет работать?. –

+1

Вы можете прочитать здесь о [Best Practices] (http://symfony.com/doc/current/best_practices/index.html) – Vardius

ответ

0

Короткий ответ: да, это действительный синтаксис.

В PHP double colon является

маркер, который позволяет получить доступ к статическим, постоянным, и подменены свойств или методов класса

Вот почему существует двойное двоеточие в ваш routing.yml. Он относится к методу templateAction или hello в классе Symfony\Bundle\FrameworkBundle\Controller\Template.

В Symfony двойная двоеточие в основном используется для обозначения шаблона Twig. Я не могу найти каких-либо объяснений по этому поводу в текущей документации, но я мог бы найти это в 2.2 documentation:

Родительский шаблон, :: base.html.twig, отсутствует как в BundleName и ControllerName части его названия (отсюда двойная двоеточие (: :) в начале). Это означает, что шаблон живет за пределами пучков и в каталоге приложения: