【问题标题】:Split php content in multiple files在多个文件中拆分 php 内容
【发布时间】:2011-05-07 07:15:10
【问题描述】:

我不知道这是否有技术术语,所以我在谷歌和这个网站上都没有找到任何东西。

我的一个朋友多年来一直在制作网站,并实际开展业务,他使用了一个相当独特的(对我而言)系统。

他将页面分成 3 个部分,页眉、正文和页脚。将它们放入3个文件中,然后在正文页中包含页眉和页脚,只留下这个:(示例)

<?php   include_once "Constants/Header.php";    ?>

        <div id="Container">
            <div id="Header">
                HEADER
            </div>

            <div id="Menu">
                <ul id="Nav"> 
                    <li>Menu item</li>  
                    <li>Menu item</li> 
                    <li>Menu item</li>  
                    <li>Menu item</li> 
                    <li>Menu item</li>  
                    <li>Menu item</li> 
                </ul> 
            </div>

            <div id="Body">

            </div>
        </div>

<?php   include_once "Constants/Footer.php";    ?>

以这种方式编写网站代码是一种好习惯吗? - 如果是这样,为什么?最后但并非最不重要的一点是,您是否以这种方式编码您的页面?

【问题讨论】:

  • 类似于标准化页面的东西。我有一个类似的问题 - 想知道这个过程是否有任何负面影响,比如 header.php 是否包含 标签,而 footer.php 是否包含 标签?

标签: php html include split


【解决方案1】:

正如其他几个人所提到的,将您的代码拆分为多个 PHP 文件可以帮助您避免不必要地重复您的工作。然而,一个更大的好处是,include 语句是实现站点范围架构的网关,例如Model-View-Controller
使用 MVC,您的代码不仅按照用户看到的页面部分(页眉、页脚、正文等)进行拆分,而且还按照职责进行拆分。在高层,“模型”管理数据和业务逻辑,“视图”处理用户界面(包括从模型渲染数据),“控制器”处理请求并与模型的适当部分进行交互。
无论如何,我都不是 MVC 方面的专家,但这里的好处是巨大的。每个组件都可以单独测试。将组件设计为“松散耦合”有助于避免重复自己并鼓励编写可重用的代码。 有许多 PHP web application frameworks 使用 MVC 架构,其中许多是免费提供的(例如,CodeIgniter)。
诚然,MVC 不一定是“一种真正的方式”——在你朋友的情况下,实现这样的架构可能超出了他想要做的范围。但是关于您最初的问题(我猜是一种迂回的方式),include 语句可以(如果使用得当)是一个非常强大和有用的工具。

【讨论】:

  • 谢谢,我正要选择另一条评论作为答案。但这似乎更完整,对不起。谢谢你的链接,当然还有答案。
【解决方案2】:

使用include 并拆分您的PHP 文件非常有帮助(对于您作为开发人员和您的继任者)。这样,如果您需要更改页脚,例如,您只需要更改一个页脚文件,更改就会在站点范围内反映出来。

是的,我总是使用include

【讨论】:

  • 我认为如果我为此创建一个新主题将是一种浪费,所以除非您不这么认为,否则您介意我问您为什么要在此代码中使用 include 吗?我做了一些研究,将服务器负载的小幅增加放在一边,这似乎是更好的选择。
【解决方案3】:

我不知道什么是好的做法,但是如果您的网站在所有页面上使用相同的页眉和页脚,那么将代码包含一次要比将相同的代码复制并粘贴到每个页面中要高效得多。

您的菜单的未来添加只需添加一次,每个页面都会看到更改。

【讨论】:

    【解决方案4】:

    这不是很好但很常见的做法。最好是 3 个文件,一个用于页眉,一个用于页脚,然后一个(通常:index.php)包含页眉、页脚和内容。

    <?php
    $active_page = $_GET['page'];
    require_once('header.php');
    require_once($active_page);
    require_once('footer.php');
    ?>
    

    【讨论】:

      【解决方案5】:

      嗯,这是 PHP 中非常基本的技术。 它允许您在一个位置修改页眉或页脚,并在使用它们的网站的每个页面中进行修改。

      它可以用于更多目的。

      【讨论】:

        【解决方案6】:

        不好也不坏。

        取决于你想做什么。如果您想要一组尽可能简单的有限网页,那就足够了。当您想要为每个页面使用单独的样式表时,就会出现问题。然后一些页面使用脚本,其他页面包含另一个脚本。在这些情况下,标题会因页面而异(它们可以相同,但包含您不使用的文件是一种不好的做法)。

        然后,如果您要在网站上建立某种互动,这将是行不通的。这不是一种编程方式。没有实际的 PHP 代码空间。您当然可以包含 PHP 代码,但以这种方式混合 PHP 和 HTML 是一种非常糟糕的做法。

        在这种情况下,让 PHP 为您工作的最佳方法是使用某种框架或 CMS。如果您想建立一个页面交互很少的网站(例如公司网站、一些演示文稿、新闻网站、博客) - 使用 CMS,如 Wordpress、Joomla、Drupal、DLE。如果您需要更复杂的东西,比如某种基于 PHP 的 Web 应用程序,请使用 MVC 框架、使用 Zend 框架或更简单、更小(这里我非常主观)的东西,例如 CakePHP、CodeIgniter 或 Symfony。

        【讨论】:

          猜你喜欢
          • 2017-07-15
          • 2013-01-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-06-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多