一尘不染

PHP包含最佳做法问题

php

我一直在学习PHP的语法并进行实践。我来自.NET背景,因此对于页眉和页脚,母版页始终使我很轻松。

到目前为止,我有一个mainHeader.php和mainFooter.php,其中包含我的头菜单和我的页脚html。我创建了一个mainBody.php,在顶部放了

<?php include "mainHeader.php" ?>

对于页脚,我把

<?php include "mainFooter.php" ?>

这样做非常好,让我微笑,因为我的页面都很好地融合在一起。mainHeader有我的<html><body>而mainFooter有我的结束标签。

这是好习惯吗?


阅读 215

收藏
2020-05-29

共1个答案

一尘不染

我包括我的管制员的意见。我还定义了文件位置以使维护更加容易。

config.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

controller.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 );
2020-05-29