PHP包括最佳实践问题

drp*_*ken 24 php include

我一直在学习PHP的语法并练习它.我来自.NET背景,所以当页眉和页脚出现时,masterpages总是让我很容易.

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

<?php include "mainHeader.php" ?>
Run Code Online (Sandbox Code Playgroud)

而对于我放的页脚

<?php include "mainFooter.php" ?>
Run Code Online (Sandbox Code Playgroud)

这完美地工作,让我微笑,因为我的网页很好地融合在一起.mainHeader有我的<html><body>我的mainFooter有我的结束标签.

这是好习惯吗?

Gal*_*len 51

我从我的控制器中包含了我的观点.我还定义了文件位置以使维护更容易.

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');
Run Code Online (Sandbox Code Playgroud)

现在我只需要包含所有我需要的信息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 );
Run Code Online (Sandbox Code Playgroud)


Bal*_*usC 5

你也可以反过来做.有一个带页眉/页脚的主页面,只包含正文.

<!DOCTYPE html>
<html lang="en">
    <head>
        ...
    </head>
    <body>
        <?php include $page ?>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

  • 啊,我可以看到这对生成动态数据有何用处.非常感谢你! (2认同)