Отправленные переменные, потерянные во время обработки запроса

В настоящее время я сталкиваюсь со следующей проблемой: опубликованные данные запроса, похоже, в какой-то момент очищаются.

Ситуация:

в приложении sf2 у меня есть пользовательская форма в "/foo". он отправляет 2 свойства: {"sort":"sort","property":"barcode"}

Выпуск:

контроллер, который должен справиться с этим, отлично работает в dev env, но не работает в среде PROD. Исследование показывает, что это связано с отсутствием опубликованных данных. Поэтому я сделал 2 методологии журналов на основе следующего потока.

1) войти в систему через прослушиватель ядра. У меня есть Library::logtxt('text') которая записывает одну строку с текстом в файл журнала каждый раз, когда он вызывается. Я поместил его в контроллер, обрабатывающий запрос.

в прослушивателе ядра у меня есть следующий метод:

public function onKernelRequest(GetResponseEvent $event)
{
 if (HttpKernel::MASTER_REQUEST != $event->getRequestType()) {
 // don't do anything if it not the master request
 return;
 }
 //this is master request: do something.
 Library::logtxt('($post: '.json_encode($_POST).')');

}

называя его соответственно с app_dev.php и app.php, я получаю: журнал из web/app_dev.php:

16:42:28 - Acme\DemoBundle\RequestListener:
($post: {"sort":"sort","property":"barcode"})
--------------------------------------------
16:42:28 - Acme\DemoBundle\Controller\FooController:
fooControllerAction called ($post: {"sort":"sort","property":"barcode"})

журнал из web/app.php:

16:42:28 - Acme\DemoBundle\RequestListener:
($post: [])
--------------------------------------------
16:42:28 - Acme\DemoBundle\Controller\FooController:
fooControllerAction called ($post: [])

2) Чтобы быть уверенным, что отправленные данные действительно отправлены, я, но журнал :: logtxt ('') logger в web/app.php. Я получаю: app.php:

16:44:07 - :
in app.php ($post: {"sort":"sort","property":"barcode"})
--------------------------------------------
16:44:07 - :
in app.php ($post: [])
--------------------------------------------
16:44:07 - Acme\DemoBundle\Controller\FooController:
fooControllerAction called ($post: [])
--------------------------------------------

Решение

Все это, похоже, указывает на то, что в производстве что-то происходит, что "уничтожает" опубликованные данные. Кто-нибудь знает, что здесь поставлено на карту?

EDIT: разница, похоже, соответствует config_dev.yml.

framework:
 router:
 resource: "%kernel.root_dir%/config/routing_dev.yml"
 strict_requirements: true
 profiler: { only_exceptions: false }

когда это прокомментировано, app_dev.php получает ввернуто так же, как app.php. if not, app_dev.php работает...

Большое спасибо за заботу

С Уважением,

редактирует:

приложение /Config/routing.yml

hwi_oauth_security:
 resource: "@HWIOAuthBundle/Resources/config/routing/login.xml"
 prefix: /connect

hwi_oauth_connect:
 resource: "@HWIOAuthBundle/Resources/config/routing/connect.xml"
 prefix: /connect


#FOS : 
fos_user_security:
 resource: "@FOSUserBundle/Resources/config/routing/security.xml"

fos_user_profile:
 resource: "@FOSUserBundle/Resources/config/routing/profile.xml"
 prefix: /profile

google_login:
 pattern: /login/check-google

acme_user:
 resource: "@AcmeUserBundle/Resources/config/routing.yml"
 prefix: /

acme_a:
 resource: "@AcmeABundle/Resources/config/routing.yml"
 prefix: /

acme_another:
 resource: "@AcmeAnotherBundle/Resources/config/routing.yml"
 prefix: /another/

приложение /Config/routing_dev.yml:

_wdt:
 resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
 prefix: /_wdt

_profiler:
 resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
 prefix: /_profiler

_configurator:
 resource: "@SensioDistributionBundle/Resources/config/routing/webconfigurator.xml"
 prefix: /_configurator

_console:
 resource: "@CoreSphereConsoleBundle/Resources/config/routing.yml"
 prefix: /_console

_main:
 resource: routing.yml
2 ответа

Вы должны проверить app/logs/prod.log для любых проблем.

Вы также должны запустить app/console --env=prod cache:clear чтобы быть в безопасности.

Как уже упоминалось здесь, вы должны использовать php app/console router:debug чтобы проверить, правильно ли настроены все ваши маршруты.

Если ни одна из них не помогла, routing.yml сообщение routing.yml и routing_dev.yml. Я думаю, что это проблема маршрутизации, внутренне перенаправить запрос и теряет post информации в середине.


Вы пытались использовать объект Request вместо $_POST:

Library::logtxt('($post: ' . $event->getRequest()->request->all() . ')');

Вы также получаете пустой массив?

licensed under cc by-sa 3.0 with attribution.