最快的PHP模板引擎(或框架),支持多个站点的继承

时间:2011-05-18 07:50:09

标签: php frameworks template-engine

我需要在PHP中找到一个模板引擎和/或框架,让我发布一个带有一个模板的网站,并通过制作一个子模板在同一台服务器上的其他网站上重用该模板,我只覆盖某些设计父模板中的元素。

我正在寻找的是部署速度 - 我可以使用哪个模板引擎(需要PHP)来获取其他网站,最快?

例如,我有针对不同类别的各种市场推出的网站。因此,我将创建一个英国网站模板作为主模板,然后覆盖瑞典和法国市场的徽标和静态文本等详细信息。此外,对于不同的类别(例如Men's Fashion vs. Women's Fashion),我需要覆盖某些设计元素的图像和颜色(如首页上的图片,等等)。

我需要启动的所有站点都基于相同的API(RESTful JSON),我需要能够轻松地集成表单以进行搜索,排序和过滤 - 因此模板引擎必须允许轻松与变量整合......

您认为哪种解决方案符合这些要求?

6 个答案:

答案 0 :(得分:6)

您还可以查看Twig。以下是有关它的更多信息以及它与其他信息的比较:http://fabien.potencier.org/article/34/templating-engines-in-php

答案 1 :(得分:3)

简单 - > Symfony

使用非常简单的模板引擎 - 并且易于学习,因为他们的文档太棒了

答案 2 :(得分:1)

槽糕。使用包和模板库“扩展”设置codeigniter 2,将模板文件放在一个单独的存储库中,并将它们作为每个“子站点”的包加载。如果您仔细定义您的区域,那么您应该做的就是:)

答案 3 :(得分:1)

如果不是框架而是模板引擎,除了使用Smarty进行模板化之外我什么也想不到。它易于使用且非常灵活。您可以创建一个主模板,例如main.tpl只需为每个网站分配所需的值,就可以反复使用该模板并重复使用该模板,例如index.php(某些网站):

$smarty->assign(array(
   'PageTitle' => 'Some site title'
   'CustomContent' => $smarty->fetch('custom.tpl'); // custom for this site
));

// of course you've setup the template location at this point
$MainTemplate = $smarty->fetch('main.tpl');

$smarty->display($MainTemplate);

main.tpl上你会有类似的内容:

// on main.tpl you'd have
<title>{$PageTitle}</title>
......
<body>
{$CustomContent}
</body>

只是一个想法:)

答案 4 :(得分:1)

Zend Framework并将不同的“网站”设置为模块可能是一个很好的方法,如果它们共享很多逻辑等。每个模块都可以有一个独特的布局。

Zend Framework允许您使用MVC模式,并可以轻松地分离逻辑和表示。您可以在http://framework.zend.com/

找到更多信息

答案 5 :(得分:1)

我建议http://agiletoolkit.org/出于以下原因:

  • 内置和集成的组件级模板。 CSS框架基于jQuery UI CSS和960.gs.大多数框架在页面级别处理模板,这使得它们的可重用性降低。
  • 带有ajax支持的开箱即用表单,不同形状的过滤器和html / css布局。 UI组件使用MVC或静态数组数据(使用JSON很容易)。大多数框架不提供表单HTML。此外,生成器通常只会将ui元素与模型集成。
  • 面向对象的组件方法从“视图对象”构建网站,您可以在多个网站之间共享这些网站并与不同的模型合并。页面也定义为类。这意味着您可以拥有2个共同祖先和微小变化的页面。如果你知道OOP它就会成为一个强大的功能。大多数框架都需要单独安装和共享组件更加困难。此外,大多数框架每页都需要一个单独的模板。
  • 解决方案更轻巧,适用于高效的开发和集成。相比之下,zend专注于组件独立性。轻便的占地面积和更快的速度是其直接导致的结果。

Agile Toolkit是开源的。

我希望这些信息可以带来一些新的见解,并从不同的角度看待发展。我积极地使用框架,文档在这个时候正在完成并且正在构建中,但是该架构非常有前景,并且只需要知道一些PHP和面向对象的编程技能。