具有结构化内容的单个PHP页面的模板引擎?

时间:2018-03-19 20:07:35

标签: php css twitter-bootstrap laravel slim

我打算构建一个单独的PHP网页,其中包含嵌套div,spans,bootstrap元素等中的大量结构化数据,如:

  • 硬件
    • 笔记本
      • HP
      • 苹果
      • 戴尔
    • 片剂
      • 苹果
      • 三星
  • 软件
    • 操作系统
      • Windows 10
      • ...

列表非常长,远远超过100个元素。元素会不时变化,但所有元素和子元素的结构都是相同的。

现在,我想知道纯HTML + CSS是否是编写此页面的最佳方式。由于元素的结构总是相同的,因此使用模板可能是个好主意。但是,我不确定我是否真的应该建立一个数据库和某种PHP框架,如SlimLaravel / Lumen,以便生成代码。毕竟,它只是一个没有路由,表单,登录等的单页。所以这可能太多了。

或许,像Plates这样的模板引擎可能就是答案?但是我应该在哪里存储数据?

您对此类用例的选择是什么?单页有很多结构化数据?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

根据您的主题,我想澄清一些内容然后提出解决方案。

PHP组件&作曲家

最先进的PHP开发利用Composer来编排组件库。这可以是完整堆栈框架的形式,也可以是几个特定组件库的形式,可以解决您遇到的问题。

<强>数据存储

您的示例显示具有简单层次结构的数据。当然,为了便于维护,某种类型的数据存储将是有帮助的。关系数据库或文档数据库将完成这项工作。如果这就是你想要的,我建议你使用特定的ORM或至少一部分ORM,并且ORM是Doctrine。

为何选择主义?因为它支持许多最流行的开源RDBMS,并且它还允许您在没有完整ORM的情况下使用它的DBAL层,如果您只想实现一些简单的查询。话虽如此,如果您可以选择使用MongoDB,MongoDB集合可以很好地支持层次结构。 Doctrine2的一个重要特性是它支持MongoDB,它将其与大多数其他PHP ORM区别开来。

解决所有这些问题的唯一真正原因是您还打算创建一个管理工具,以便您维护分层数据。如果你不这样做,你可以很容易地拥有一个包含PHP数组格式的脚本。

<强>模板

对于模板,我的建议是你使用Twig。作为Symfony组件的一部分,Twig是自包含的,是Symfony完整堆栈框架的一部分。它功能强大且设计精良,并且具有众多功能(尽管公平地说,Laravel的刀片在大多数情况下具有相似的功能)并且包括support for ESI这可能是相对静态的一个很好的功能页面就像你描述的一样。

在twig中进行模板化,与编写PHP代码相比,可以让您专注于标记,并避免引入大量PHP代码,将您的视图代码转换为意大利面。

<强>零件 重要的是,您可以简单地使用您需要的少数组件来支持您的应用程序,并且您当然不需要Laravel或Symfony。由于Symfony作为组件开始其生命(并且实际上是Laravel项目的基础),我将推动您走向Symfony组件,尽管在一天结束时,您还可以使用Laravel的部分(Blade,Eloquent) )就像我提倡你使用Symfony的部分一样。 Symfony只是我喜欢的社区和堆栈,并且在其他项目中用于组件的历史更长。

试用新的最小Symfony4

最后但同样重要的是,最新版本的Symfony(Symfony 4)确实值得关注,原因有很多。它本质上是一个微框架,只需要最少的组件。他们宣传它比v3小70%。

此版本的不同之处在于Symfony flex与配方和Composer集成的创新。它现在可以自动执行许多您可能需要自己解决的问题,以便将这些组件组合到一个应用程序中。

看看它,看看它是否可以帮助您使用最少的组件构建应用程序,并且花费最少的时间来学习如何使一起工作。

总之,我建议您考虑