Использование app.yml для установки корневого веб-адреса в Symfony 1.4 - PullRequest
1 голос
/ 27 сентября 2011

Хорошо, так что это вопрос более или менее вопрос о том, насколько разумным было это дизайнерское решение в проекте Symfony, а не вопрос о том, чтобы что-то заработало.

Мой коллега, недавно принявший решение, должен опубликовать на сайте определенные данные, используя это действие:

<form action="http://<?php echo sfConfig::get( 'app_webroot' ) ?>" method="post" name="userCity" id="userCity">

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

В index.php внутри веб-каталога у нас есть строка:

$configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'webrootrule', false);

webrootrule является набором правил в app.yml. Цель состоит в том, чтобы обеспечить отправку форм в правильный домен, поэтому в моей среде разработчика у меня установлена ​​опция webroot в index.php для моей среды, для него - его среда, а для prod - производственное доменное имя веб-сайта. , Вот как выглядят различные пути webroot:

echopony.website.internalsite.com
coworker.website.internalsite.com
website.com

У меня никогда не было необходимости делать что-то подобное. Прежде чем я потратил слишком много времени на то, чтобы все заработало, не разбираясь с index.php и не протестировав все формы, я просто хотел отразить это у некоторых из вас и посмотреть, действительно ли это пустая трата наших усилий.

Еще хуже то, что index.php теперь версирован им. Я не согласен с версионированием этого файла, но вместо того, чтобы внешне осудить его методы, я хочу быть абсолютно уверенным, что он на самом деле делает что-то не так. Просто кажется абсурдным редактировать index.php перед выпуском обновлений на сайт. Вы знаете, чтобы index.php не устанавливал webroot как echopony.website.internalsite.com

Он имеет многолетний опыт работы со мной, поэтому, когда я не согласен с его методами ... Я должен действительно убедиться, что я прав, прежде чем предпринимать действия.

Спасибо за любой вклад!

1 Ответ

1 голос
/ 28 сентября 2011

Вы должны работать с абсолютными URL-адресами здесь.Просто используйте url_for помощник Symfony.Этот помощник зависит от рабочей среды и может генерировать абсолютные URL-адреса, если хотите.

<form action="http://<?php echo url_for('/', true) ;?>" method="post" name="userCity" id="userCity">

второй параметр помощника отвечает за создание абсолютных URL-адресов (true) или нет (false)

Смотрите официальную документацию для получения дополнительной информации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...