PHP中的简单网页布局和模板

时间:2008-12-22 09:18:29

标签: php html templates

过去我在ASP.NET中编写网站只是为了通过母版页(布局)和用户控件(部分)获得可靠的可重用模板。我说的是没有比模板中的简单变量替换更复杂的代码的网站 - 我只是用它来保持我的HTML组织。很高兴能够在一个文件中定义页面的基本布局,然后只填写每个页面的孔,重新使用一些常用位作为用户控件。

但是,我宁愿不继续使用Windows主机,所以我想在PHP中编写静态页面,它随处运行。在过去,我自己写了一个穷人的PHP用户控件,只需解压缩一个数组并包含一个模板,但这很笨重,但仍然要求我把PHP包括在我的所有页面中。我觉得Smarty或PHP的其他一些大模板语言对于组织一些“静态”页面来说是过分的。

我考虑过只使用Ruby on Rails中的页面,因为我非常喜欢HAML / SASS和布局/部分模型,但是对于静态内容而言,拥有一个完整的rails应用程序似乎很愚蠢。但我还没有发现任何在PHP中看起来恰到好处的东西。任何PHP大师都可以推荐什么吗?我想要比“包括”更复杂的东西,但我并不需要太多。也就是说,可以给我布局/部分和HAML / SASS的东西将成为天堂。我看过phammable,但它看起来不像是解决了布局/局部问题。

同样,我不是在寻找像Smarty这样复杂的东西,而且我不想要一个完整的CMS。我只想要一些能让我正确模块化我网站HTML的东西。我们在这里谈论静态HTML之外的一步。

9 个答案:

答案 0 :(得分:3)

Zend_View支持布局,部分和占位符。还要检查一个名为Dwoo的新模板语言,它类似于Smarty,但也从Django模板中获取一些想法。最后,Calypso是PHP的Django模板语言克隆

答案 1 :(得分:2)

如果你想要一些简单的东西,我建议PHP Template Inheritance。然后你可以继续直接编写代码。

答案 2 :(得分:1)

我建议你看看Drupal及其Block模板模型。我认为这正是你所需要的。

答案 3 :(得分:1)

Stacey就我所寻找的静态网站的简单PHP模板库而言。 在Ruby方面,有StaticMatic,它甚至不需要服务器上的Ruby支持,因为它生成整个静态站点。非常好(特别是因为它使用HAML)但你根本不能拥有任何动态元素。

答案 4 :(得分:1)

  

我只想要一些让我感动的东西   正确模块化我的HTML   站点。

查看http://code.google.com/p/hoduli/

使用这个简单的工具,您将能够像这样写:

<h:define name="header">
  some header contents
</h:define>

...

<h:header />

<h:include file="middle_part.php" />

<h:footer>
  some ...
</h:footer>

答案 5 :(得分:0)

据我所知,你不需要一个完整的cms和没有像Smarty这样的过度模板引擎。 Php是一个模板系统,如果你想正确地模块化它,那取决于你。

但是据我所知,你的html之间的那些php标签看起来并不漂亮。 (虽然使用短标签可以最大限度地减少这种情况......)

您可以随时使用PEAR Templating system,默认情况下,大多数PHP安装都可以使用它。

我还推荐CodeIgniter MCV框架,因为它非常轻量级。您可以选择自动加载哪些库。

答案 6 :(得分:0)

大约六个月前,我开始使用Zend Framework。我习惯于使用布局和部分,并且从不想在没有它的情况下返回创建网站。但对于小型网站来说,ZF太笨重了。将ZF用于可以用HTML完成的网站是不合适的。

结帐EuropaPHP。它是一个超轻量级,基于PHP的布局框架。它是一个全新的框架,但到目前为止,我非常喜欢它!它允许我使用布局,并且不需要庞大的库和严格的规则来实现相同的结果。

答案 7 :(得分:-1)

也许你应该看看一些内容管理系统。 Drupal在PHP中很有名。

答案 8 :(得分:-1)

Drupal确实是一个简单且可扩展的CMS。有一个学习曲线,但它的优点是从开箱即用开始,可以根据您的需求增长,社区对编写的代码的质量非常紧张(尽管我个人发现一些模块得到了小二功能快乐。)

他们有一个简单的精简版Zen主题,可以让你创建你想要使用的HTML。花在学习这个CMS上的时间花得很多,特别是如果PHP已经是你的母语。