PHP 包含最佳实践问题

2022-08-30 16:24:20

我一直在学习PHP的语法并练习它。我来自.NET背景,因此在页眉和页脚方面,母版页总是使我的工作变得非常容易。

到目前为止,我有一个mainHeader.php和mainFooter.php它们有我的头部菜单和页脚html。我创建了一个主体.php并在顶部我放置

<?php include "mainHeader.php" ?>

对于我放的页脚

<?php include "mainFooter.php" ?>

这很完美,让我微笑,因为我的页面都很好地组合在一起。主页头有我的和我的主页脚有我的结束标签。<html><body>

这是好的做法吗?


答案 1

我包括我从控制器中的观点。我还定义了文件位置,以便于维护。

配置.php

define('DIR_BASE',      dirname( dirname( __FILE__ ) ) . '/');
define('DIR_SYSTEM',    DIR_BASE . 'system/');
define('DIR_VIEWS',     DIR_SYSTEM . 'views/');
define('DIR_CTLS',      DIR_SYSTEM . 'ctls/');
define('DIR_MDLS',      DIR_SYSTEM . 'mdls/');
define('VIEW_HEADER',   DIR_VIEWS . 'header.php');
define('VIEW_NAVIGATION',   DIR_VIEWS . 'navigation.php');
define('VIEW_FOOTER',   DIR_VIEWS . 'footer.php');

现在我有我需要的所有信息,只需包括.config.php

控制器.php

require( '../config.php' );
include( DIR_MDLS . 'model.php' );

$model = new model();
if ( $model->getStuff() ) {
    $page_to_load = DIR_VIEWS . 'page.php';
}
else {
    $page_to_load = DIR_VIEWS . 'otherpage.php';
}

include( VIEW_HEADER );
include( VIEW_NAVIGATION );
include( DIR_VIEWS . $page_to_load );
include( VIEW_FOOTER );

答案 2

您也可以反过来做。有一个带有页眉/页脚的主页,并且只包括正文。

<!DOCTYPE html>
<html lang="en">
    <head>
        ...
    </head>
    <body>
        <?php include $page ?>
    </body>
</html>

推荐