Одно действие повторно используется в нескольких приложениях - PullRequest
1 голос
/ 01 мая 2011

У меня есть приложение Symfony с двумя разными приложениями (frontend, backend), но есть одно общее действие. Теперь я продублировал его код в обоих приложениях, но мне это совсем не нравится.

Есть ли способ повторно использовать действие в нескольких приложениях Symfony?

Ответы [ 3 ]

6 голосов
/ 01 мая 2011

Самый простой способ - создать базовый класс действий в lib с помощью общих методов / действий.Тогда модули, которым необходимо использовать эту функциональность, могут просто расширить этот базовый класс вместо sfActions.

Возможно, вы также можете просто использовать прослушиватель событий на method_not_found sfComponent.Но это может работать не так, как ожидалось, если метод является действительным действием (и он также будет доступен во всех модулях и всех компонентах без какой-либо специальной логики обнаружения).

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

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

Еще два варианта:

1) если вы работаете в Linux, создайте символическую ссылку на ваш файл actions.class.php или даже целый модуль, если вы используете одни и те же шаблоны.

cd apps/backend/modules/name
ln -s ../../frontend/modules/name name

2) если вы не зашли слишком далеко в разработке, измените фактор своего проекта, чтобы иметь только ОДИН приложение (мое любимое).

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

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

...