Вопрос о дизайне Symfony - как я могу делиться формами между приложениями? - PullRequest
3 голосов
/ 05 мая 2011

Я занимаюсь разработкой сайта в Symfony, и я не уверен, как лучше всего справиться с этим сценарием.

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

Только определенные пользователи смогут получить доступ к приложению администратора (оно может быть защищено простым подключением к интрасети, но это не важно, просто предположим, что оно будет доступно только пользователям с правами администратора). Они смогут просматривать список отправленных заказов. Легко.

Моя проблема заключается в повторном использовании кода, когда пользователи с правами администратора могут редактировать существующие заказы. Когда вы делаете generate-module в Symfony, сгенерированный модуль (который, как я полагаю, является новичком в качестве хорошего примера структурирования) создает форму как частичную. Мне пришлось много настраивать эту форму для моего использования (много Javascript и т. Д.), Поэтому, конечно, я хочу повторно использовать этот код, чтобы иметь возможность загрузить существующее бронирование в эту форму. Но, похоже, нет способа разделить эту часть между приложениями (я видел, как люди упоминали создание плагина ... но это кажется сложным для этого использования).

Я рассмотрел использование IFrame для загрузки формы из внешнего интерфейса и просто передачу параметра "id" для загрузки его в режиме редактирования, но это означало бы, что режим редактирования небезопасен - любой мог перейти на форму в передайте и передайте этот параметр для редактирования бронирования.

Я также рассмотрел вопрос о том, чтобы поместить весь отображаемый код формы (HTML, Javascript и т. Д.) В метод объекта формы, но это выглядит не очень MVC - весь отображаемый код находится в форме. Но это только потому, что я думаю о форме так же, как о модели - это правильно?

Я чувствую, что это должно быть обычной ситуацией. Вы можете обмениваться моделями и формами между приложениями, почему вы не можете также использовать этот общий код отображения формы?

Спасибо!

Ответы [ 2 ]

1 голос
/ 05 мая 2011

Вы должны пересмотреть наличие 2 приложений в первую очередь.Не только вы столкнулись с проблемой повторного использования кода, но также i18n, тестирования и другие вопросы.Я считаю, что гораздо проще иметь 1 приложение с разными наборами модулей для внешних и внутренних пользователей.Вы можете настроить безопасность для каждого модуля.Вы можете иметь одну форму входа для всех пользователей и перенаправить их в соответствующий модуль на основе их учетных данных.

0 голосов
/ 05 мая 2011

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

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