Я работаю над проектом Symfony 1.4, и когда я это делаю:
url_for('');
Я ожидаю получить URL-адрес контроллера index.php
или хотя бы http://domain/
, но получаю следующее:
/sfTCPDF
sfTCPDF
— это плагин, который у меня есть в этом проекте, который в моем config/ProjectConfiguration.class.php
используется как:
class ProjectConfiguration extends sfProjectConfiguration {
public function setup() {
$this->enablePlugins('sfTCPDFPlugin');
}
}
Когда я отключаю плагин, я получаю ожидаемый результат:
$url = url_for('');
> /
Или когда я использую его так (не имеет значения, включен ли плагин или нет):
$url = url_for('/');
> /
Я не понимаю, почему плагин вызывает (или даже если это ошибка плагина).
Какие-либо предложения? Я могу найти и заменить весь проект на url_for('')
и поставить '/'
Но я очень хочу понять, почему это происходит.
После некоторых исследований я обнаружил, что при вызове функции url_for
процедура следующая:
lib/vendor/symfony/lib/helper/UrlHelper.php url_for()
lib/vendor/symfony/lib/helper/UrlHelper.php url_for2()
lib/vendor/symfony/lib/helper/UrlHelper.php url_for1()
lib/vendor/symfony/lib/controller/sfWebController.class.php gen_url()
lib/vendor/symfony/lib/routing/sfRoute.class.php generate()
И в последнем он получает $this->pattern
вот где шаблон sfTCPDF/:action
что означает, что какая-то маршрутизация играет. Продолжая свои исследования, я обнаружил, что у плагина есть routing.yml
с:
sfTCPDF:
url: /sfTCPDF/:action
param: { module: sfTCPDF, action: test }
Если я удалю эту маршрутизацию, все будет работать как положено.
Теперь вопрос: когда плагин создает объект маршрутизации с шаблоном sfTCPDF
и почему?