Php 对于可以在多个应用程序中使用的模板,什么是最佳位置?

Php 对于可以在多个应用程序中使用的模板,什么是最佳位置?,php,symfony1,Php,Symfony1,我的Symfony框架中有两个应用程序:后端和前端 是否可能有两个应用程序都在使用的模板 如果是这样的话,放置这些模板的最佳位置是什么?我还不是Symfony专家(我已经阅读了《Symfony权威指南》),所以我可能会犯错误 官方文档中没有提到不同应用程序的通用模板。单个应用程序中最适合通用模板的目录是apps/templates/ 也许有人知道答案。读起来会很有趣。 祝你好运。我还不是Symfony专家(我已经读过《Symfony权威指南》),所以我可能会犯错误 官方文档中没有提到不同应用程序

我的Symfony框架中有两个应用程序:后端和前端

是否可能有两个应用程序都在使用的模板


如果是这样的话,放置这些模板的最佳位置是什么?

我还不是Symfony专家(我已经阅读了《Symfony权威指南》),所以我可能会犯错误

官方文档中没有提到不同应用程序的通用模板。单个应用程序中最适合通用模板的目录是apps/templates/

也许有人知道答案。读起来会很有趣。
祝你好运。

我还不是Symfony专家(我已经读过《Symfony权威指南》),所以我可能会犯错误

官方文档中没有提到不同应用程序的通用模板。单个应用程序中最适合通用模板的目录是apps/templates/

也许有人知道答案。读起来会很有趣。
祝你好运。

过去我唯一能克服这一问题的方法就是为共享片段创建一个插件

IE:在插件下创建一个名为

模板蛋白

在其中,创建模块文件夹,并在其中创建常规模块文件夹结构

模板路径的示例:

sf_root/plugins/TemplatesPlugin/modules/book/pageSuccess.php
sf_root/plugins/TemplatesPlugin/modules/book/_title.php
确保在config/ProjectConfiguration.class.php中启用了插件(如果您使用的是enableallpluginsept,则会启用,否则您需要将其添加到应该已经存在的插件数组中)

然后,您可以像访问任何其他模板一样访问这些模板,例如:

include_partial('book/title', array('title'=>'hello'));

虽然这感觉有点像黑客,但它工作得很好。

我过去能够克服这一问题的唯一方法是为共享片段创建一个插件

IE:在插件下创建一个名为

模板蛋白

在其中,创建模块文件夹,并在其中创建常规模块文件夹结构

模板路径的示例:

sf_root/plugins/TemplatesPlugin/modules/book/pageSuccess.php
sf_root/plugins/TemplatesPlugin/modules/book/_title.php
确保在config/ProjectConfiguration.class.php中启用了插件(如果您使用的是enableallpluginsept,则会启用,否则您需要将其添加到应该已经存在的插件数组中)

然后,您可以像访问任何其他模板一样访问这些模板,例如:

include_partial('book/title', array('title'=>'hello'));

虽然这感觉有点像黑客,但它工作得很好。

甚至有一种比使用插件更简单的方法:看看

他只是在
apps/appName/config/appNameConfigurations.class.php
中扩展应用程序配置:

class appNameConfiguration extends sfApplicationConfiguration {

  public function configure() {
    sfConfig::set('sf_app_template_dir', sfConfig::get('sf_root_dir') . '/templates');
  }

}

在我看来,这种方法更干净。我只是不知道它是否扩展了symfony查找模板的路径,或者只是设置了它。

甚至有一种比使用插件更简单的方法:查看

他只是在
apps/appName/config/appNameConfigurations.class.php
中扩展应用程序配置:

class appNameConfiguration extends sfApplicationConfiguration {

  public function configure() {
    sfConfig::set('sf_app_template_dir', sfConfig::get('sf_root_dir') . '/templates');
  }

}

在我看来,这种方法更干净。我只是不知道它是否扩展了symfony查找模板的路径,或者只是设置了它。

您所说的是正确的,在这个问题上没有官方文件,这就是为什么我在这里问它,因为我不知道这个问题的正确答案。apps/templates/包含该特定应用的全局模板。我正在寻找的是在不同的应用程序中使用模板的可能性…不幸的是,我没有遇到过这样的任务,所以我帮不了你。对不起,你说的是对的,在这个问题上没有官方文件,这就是为什么我在这里问这个问题,因为我不知道这个问题的正确答案。apps/templates/包含该特定应用的全局模板。我正在寻找的是在不同的应用程序中使用模板的可能性…不幸的是,我没有遇到过这样的任务,所以我帮不了你。对不起,我注意到插件中模块中的文件名必须是唯一的。(示例)如果您的项目中已经存在一本书,并且您在插件中创建了它,它将首先尝试在现有模块书(位于后端或前端)中搜索该页面,然后在插件文件夹中搜索该页面。如果你想确保没有冲突发生,在插件中也要使用唯一的模块名。是的,这一点很好。它也可以是一个强大的功能-它允许你超越一个插件的单一模板,而不必在你的应用程序中复制整个插件,或编辑插件文件。我注意到插件模块中的文件名需要是唯一的。(示例)如果您的项目中已经存在一本书,并且您在插件中创建了它,它将首先尝试在现有模块书(位于后端或前端)中搜索该页面,然后在插件文件夹中搜索该页面。如果你想确保没有冲突发生,在插件中也要使用唯一的模块名。是的,这一点很好。它也可以是一个强大的功能-它允许你超越一个插件的单一模板,而不必在你的应用程序中复制整个插件,或编辑插件文件。很好的发现。比我的方法更喜欢这个。即使它在改变而不是增加路径,我相信这是可以改变的。这种方法正是我喜欢的。在研究了如何使用它之后,它用一个替代方法替换了apps/appname/templates下的模板目录,而不是像插件那样添加一个额外的目录。除了使用插件之外,没有其他方法可以实现这一点。所以至少对我来说,这是一个糟糕的解决方案。好的发现。比我的方法更喜欢这个。即使它在改变而不是增加路径,我相信这是可以改变的。这种方法正是我喜欢的。在研究了如何使用它之后,它用一个替代方法替换了apps/appname/templates下的模板目录,而不是像插件那样添加一个额外的目录。除了使用插件之外,没有其他方法可以实现这一点。所以至少对我来说,这是一个糟糕的解决方案。