Свяжите унаследованные приложение с сессиями Symfony

Свяжите унаследованные приложение с сессиями Symfony

Если вы интегрируете комплексный фреймворк Symfony в унаследванное приложение, которое начинает сессию с session_start(), то вам всё еще может удасться использовать управление сессией Symfony, путём использования сессии PHP-моста.

Если приложение имеет свой собственный PHP обработчик сохранений, вы можете указать нуль для handler_id:

  • YAML
  • XML
  • PHP
1
2
3
4
framework:
    session:
        storage_id: session.storage.php_bridge
        handler_id: ~

В обратном случае, если проблема просто в том, что вы не можете избежать того, чтобы приложение начало сессию с session_start(), то вы всё ещё можете использовать обработчик сохранения сессий, основанный на Symfony, указав обработчик сохранений как указано в примере ниже:

  • YAML
  • XML
  • PHP
1
2
3
4
framework:
    session:
        storage_id: session.storage.php_bridge
        handler_id: session.handler.native_file

Note

Если унаследованное приложение требует собственный обработчик сохранений, не переопределяйте его. Вместо этого, установите handler_id: ~. Отметьте, что обработчик сохранений не может быть изменён, когда сессия была уже начата. Если приложение запускает сессию до инициализации Symfony, то обработчик сохранений будет уже установлен. В таком случае, вам понадобится handler_id: ~. Переопределяйте обработчик сохранений только в том случае, если вы уверены, что унаследованное приложение может использовать обработчик сохранений Symfony без каких-либо побочных эффектов, и в том, что сессия не была начата до того, как была инциализирована Symfony.

Чтобы узнать больше, смотрите Интеграция с унаследованными сессиями.