Zend передача переменных между контроллерами - PullRequest
0 голосов
/ 25 августа 2011

Я работаю над небольшим маркетинговым проектом с Zend Framework, бэк-офис проекта в настоящее время состоит из двух контроллеров: контроллера кампании и контроллера мини-сайта.Пользователь создает кампанию с формой, затем он должен создать мини-сайт со второй формой, связанной с этой кампанией, поэтому мне нужно получить кампанию и идентификатор пользователя при сохранении данных мини-сайта.

Какова лучшая практика и почему?я должен передать эти переменные в объекте сеанса?или я должен передать эти переменные по маршруту, например:

/backoffice/minisite/create/:userid/:campaign/

Изменить: пользователи регистрируются и проходят проверку подлинности при создании кампаний

Ответы [ 4 ]

1 голос
/ 29 августа 2011

Для передачи информации между двумя контроллерами лучший способ - использовать сессию для хранения значений глобально.: -)

1 голос
/ 25 августа 2011

Предполагая, что для этого необходимо войти в систему, вы можете сохранить необходимую информацию о пользователе в Zend_Auth удостоверении

Если нет, вы можете сохранить данные в обычном сеансе var с помощью Zend_Session или перенаправить на маршрут. Любой из вариантов хорош, поэтому вам остается выбрать тот, который лучше всего подходит вам и вашему приложению.

0 голосов
/ 25 августа 2011

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

Если у вас нет аутентифицированных пользователей, и вам просто нужно передать две переменные другому действию, используйте параметры URL, но помните о том, что пользователи могут связываться с ними и может произойти много неожиданных вещей. Хранение в сеансе сложнее манипулировать таким образом.

Таким образом, если аутентификация не используется и сайт общедоступен, используйте сеанс, в противном случае не используйте ни один, а только хранилище.

0 голосов
/ 25 августа 2011

Я бы использовал вариант маршрута, как вы предлагаете. Использование сессий в конечном итоге станет очень трудным для тестирования, отладки, расширения в будущем и т. Д.

...