我在 Symfony1 应用程序上工作。
对于应用程序的一部分,我们使用 symfony 管理生成器,它为特定模块构建默认操作和模板。
可以在子操作类中覆盖自动生成的操作方法,并且可以通过在模块的模板文件夹中创建一个具有相同名称的模板来覆盖模板。使用本地模板而不是自动生成的模板,这些模板存储在缓存文件夹中(我认为这是正常的 symfony 行为)。
apps/
my_app
modules/
post/
actions/
actions.class.php
lib/
templates/
...
cache/
my_app/
environment/
modules/
autoPostcd /
actions/
actions.class.php
lib/
templates/
indexSuccess.php
_part_1.php
_part_2.php
我目前正在开发一个不使用管理生成器的单独应用程序。
但我有 3 个模块做非常相似的事情,我想分享。
我有所有 3 个操作都扩展了相同的自定义操作类,因此它们都实现了相同的方法并共享相同的方法。
我遇到的问题是共享模板。主模板和大部分部分可以按原样重复使用。
apps/
other_app/
lib/
printingActions.class.php
modules/
ticket/
actions/
actions.class.php
lib/
templates/
printSuccess.php //exactly the same for all 3
_part_1.php
_part_2.php //exactly the same for all 3
_part_3.php
receipt/
actions/
actions.class.php
lib/
templates/
printSuccess.php //exactly the same for all 3
_part_1.php
_part_2.php //exactly the same for all 3
_part_3.php
voucher/
actions/
actions.class.php
lib/
templates/
printSuccess.php //exactly the same for all 3
_part_1.php
_part_2.php //exactly the same for all 3
_part_3.php
我想做的是提取通用模块,以便每个模块和具有类似接口的任何未来模块只需要具有模块特定信息的部分。
这将是我理想的设置:
apps/
other_app/
lib/
printingActions.class.php
printingCommonTemplates/
printSuccess.php //exactly the same for all 3
_part_2.php //exactly the same for all 3
modules/
ticket/
actions/
actions.class.php
lib/
templates/
_part_1.php
_part_3.php
receipt/
actions/
actions.class.php
lib/
templates/
_part_1.php
_part_3.php
voucher/
actions/
actions.class.php
lib/
templates/
_part_1.php
_part_3.php
我知道这种事情是可以做到的,因为管理员生成器可以做到,但是经过数小时的挖掘,我找不到它到底在哪里做的。
有人可以为我指出正确的方向吗?理想情况下,如果我可以为特定模块或过滤器类设置一个后备模板设置,我可以扩展它来做我需要的事情?