【问题标题】:how to isolate the style (css+html) from php如何将样式(css + html)与php隔离
【发布时间】:2012-07-13 18:21:27
【问题描述】:

我如何将样式 (+) 与 隔离开来,就像在 php 文件中只放入一些行,包括整个 或主题。

例如:

echo 
    eval_template("header") .
    eval_template("body") .
    eval_template("footer")

所以将来我可以在不接触 php 文件的情况下更改整个样式 有什么想法吗?

【问题讨论】:

  • 真棒问题:为什么不更多人考虑这种分离! ..无论如何,搜索“PHP模板”或类似的;然后查看是否/如何应用任何 现有 解决方案。这将允许构建一个更好(和更有针对性的问题)。在任何情况下,HTML 相对难以完全分离,因为它依赖于结构(分离范围因方法/模式而异:带逻辑的模板?仅绑定?MVP?适配器?),但是CSS 相对容易与普通的外部样式表分离。
  • 我使用 ob_startrequires ..

标签: css html php style php html css include styles


【解决方案1】:

有很多方法可以做到这一点...

这是一个关于用普通 PHP 进行模板化的教程 http://www.phpro.org/tutorials/Introduction-to-PHP-templating.html

您还可以查看那里的许多模板引擎。 树枝就是其中之一:http://twig.sensiolabs.org/

【讨论】:

    【解决方案2】:

    就个人而言,我喜欢手动操作。

    PHP 不应该同时返回 css 和 html 代码,或者更好的是,它根本不应该返回客户端代码,而是返回特定部分的依赖关系。您永远不想修改包含许多不同内容的文件。

    为了将 css+html 与 php 代码分开,我通常做的是使用 include("..."); 完成的层次结构;和 include_once("...")。例如:include_once("header.php") > include("menu.php") > html 语义,css 类根据当前上下文正确初始化。

    然后你在 header.php 中导入你的 css / js 外部脚本,这样你就不必修改整个东西,除非一切都改变了,或者你有一个完整的功能要添加到网站上。网站的每个部分都可以这样做。

    希望这会有所帮助,对我来说,它极大地减少了调试时间,因为所有重要的事情都只需执行一次,然后在最重要的部分,您可以根据需要分开。

    【讨论】:

      【解决方案3】:

      你可以使用很多模板引擎来做到这一点,我更喜欢使用与 symfony2 框架集成的 twig。

      Twig 非常棒,因为它非常易于使用且非常灵活,您可以使用继承来创建一个通用布局,该布局可以使用特殊标签在某些部分进行扩展和覆盖。这是我在 Symfony 网站上找到的指南,但对于理解 twig 背后的逻辑非常有用:http://symfony.com/doc/current/book/templating.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-09
        • 1970-01-01
        • 2021-05-31
        • 1970-01-01
        相关资源
        最近更新 更多