Совместное использование Symfony и WordPress сессии - PullRequest
1 голос
/ 03 августа 2010

Я работаю над решением, в котором есть два приложения

1) CRM (на основе Wordpress) 2) Приложение b2c на основе Symfony

Приложение Symfony создано и работает нормально.Когда мы входим в приложение на основе Symfony, главное меню изменяется в зависимости от того, кто входит в систему. Например, вход в систему изменяет выход из системы и т. Д.

Дело в том, что нам нужно такое же меню в CRM на основе Wordpress., которая также должна обновляться, когда кто-то входит в приложение на основе symfony.

Дайте мне знать, если у вас есть опыт или предложение.

Ответы [ 2 ]

2 голосов
/ 03 августа 2010

Wordpress дает вам контроль над проверкой файлов cookie с помощью функции wp_validate_auth_cookie. К счастью, эта функция «подключаема», поэтому вы можете переписать ее.

Убедитесь, что WordPress может видеть cookie-файлы Symfony (они должны находиться в одном домене), а затем заставить функцию сделать что-то вроде:

session_name('symfony');

session_start();

Это даст вам доступ к $_SESSION Symfony.

По умолчанию user_id равен $_SESSION['symfony/user/sfUser/attributes']['sfGuardSecurityUser']['user_id']

Если вы используете sfGuard или sfDoctrineGuard.

Ожидается, что эта функция будет возвращать идентификатор пользователя WordPress, но возможностей с этого момента и далее много (есть множество других «подключаемых» функций.

0 голосов
/ 06 августа 2010

У меня была похожая проблема несколько месяцев назад.Пост здесь .В нем написано Symfony 1.2, но сейчас я использую 1.4, и он отлично работает.

Инструкции в верхнем ответе включают создание отдельного контроллера для wordpress, который позволяет wordpress работать внутри Symfony.Затем вы можете создать шаблон WordPress со своим меню над выводом WordPress.Он также позволяет получить доступ к контексту Symfony внутри WordPress, поэтому вы можете перезаписать функции аутентификации WordPress для использования аутентификации Symfony.

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