Я занимаюсь разработкой сайта в Symfony, и я не уверен, как лучше всего справиться с этим сценарием.
Я создаю систему бронирования вечеринок. Любой желающий может зайти в мое приложение и отправить новое бронирование. Как только они закончат, они просто получат экран подтверждения, они не смогут его редактировать. Легко.
Только определенные пользователи смогут получить доступ к приложению администратора (оно может быть защищено простым подключением к интрасети, но это не важно, просто предположим, что оно будет доступно только пользователям с правами администратора). Они смогут просматривать список отправленных заказов. Легко.
Моя проблема заключается в повторном использовании кода, когда пользователи с правами администратора могут редактировать существующие заказы. Когда вы делаете generate-module
в Symfony, сгенерированный модуль (который, как я полагаю, является новичком в качестве хорошего примера структурирования) создает форму как частичную. Мне пришлось много настраивать эту форму для моего использования (много Javascript и т. Д.), Поэтому, конечно, я хочу повторно использовать этот код, чтобы иметь возможность загрузить существующее бронирование в эту форму. Но, похоже, нет способа разделить эту часть между приложениями (я видел, как люди упоминали создание плагина ... но это кажется сложным для этого использования).
Я рассмотрел использование IFrame для загрузки формы из внешнего интерфейса и просто передачу параметра "id" для загрузки его в режиме редактирования, но это означало бы, что режим редактирования небезопасен - любой мог перейти на форму в передайте и передайте этот параметр для редактирования бронирования.
Я также рассмотрел вопрос о том, чтобы поместить весь отображаемый код формы (HTML, Javascript и т. Д.) В метод объекта формы, но это выглядит не очень MVC - весь отображаемый код находится в форме. Но это только потому, что я думаю о форме так же, как о модели - это правильно?
Я чувствую, что это должно быть обычной ситуацией. Вы можете обмениваться моделями и формами между приложениями, почему вы не можете также использовать этот общий код отображения формы?
Спасибо!