将 php 内容拆分为多个文件

问题描述 投票:0回答:6

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

我的一个朋友多年来一直在制作网站,并且实际上建立了一家企业,使用了一个相当独特的(对我来说)系统。

他将页面分为三部分:页眉、正文和页脚。将它们放入 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";    ?>

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

php html include split
6个回答
5
投票

正如其他几个人提到的,将代码拆分为多个 PHP 文件可以帮助您避免不必要的重复工作。然而,由此带来的一个更大的好处是,

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


3
投票

使用

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

是的,我总是使用

include


2
投票

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

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


2
投票

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

代码已编辑,请参阅编辑。

编辑 2024 年更新:

切勿将未经验证的用户数据传递给

require_once
!更好的方法是

$pages= ['page_home.php', 'page_about.php'];

require_once('header.php');
if (isset($_GET['file']) && in_array($_GET['file'], $pages)) {
    $file = $_GET['file'];
    require_once('pages/' . $file);
} else {
    // Handle invalid input, e.g., display an error message
}
require_once('footer.php');

1
投票

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

它的用途远不止于此。


1
投票

这不好,也不好。

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.