0

所以我最近开始学习 php,现在我发现我通常遵循这种奇怪的设计模式来构建网页,但我不知道它是否真的像我想象的那样聪明,或者它只是一堆垃圾。

我基本上使用 php 来加载网站的页眉和页脚,因为每个网页通常在网站上都有相同的内容。然后我使用 php 为每个页面的中心内容加载 html。

我觉得使用这种方法我可以快速创建新的网页,因为页眉和页脚的“模板”已经创建,并且管理网站更容易,因为代码本质上就像有可互换的较小代码块,只是被交换出去。

还有其他人使用这种方法吗?有没有更有效的类似模式。

4

2 回答 2

0

这基本上是所有开发人员开始的方式,你在正确的轨道上,但我可能建议你很快切换到一个完整的模板系统、一个 MVC 框架或一个已经为你内置了这些功能的 CMS。

您通常甚至可以一次使用所有 3 个,否则 CMS 将自己提供其他组件...

祝你学习顺利!

于 2012-10-11T15:18:47.003 回答
0

这是一个很好的编码习惯。我也总是以这种方式构建网站,这样我就可以在构建Django后端的同时添加内容并快速上线。

不过,我认为我是反过来做的。我的每一页,(比如说,index.php),都有一个includeheaderfooter

我写的一个超级有用的东西是一个PHP确定您当前目录的简短脚本,这样我就可以在每个页面上始终以相同的方式键入链接。

这是代码:

<?php

//This function generates a string of the page URL
function curPageURL() {
 if ($_SERVER["SERVER_PORT"] != "80") {
  $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
 } else {
  $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
 }
 return $pageURL;
}
//We then store the URL as a string
$url = curPageURL();
//And split the string up everytime there is a backslash
$pieces = explode('/', $url);

//Each backslash corresponds to a directory, so we can now use this to compute
//what we need to prepend to the links.

//Root
if (count($pieces) == 2)
    $root = '';
else if (count($pieces) == 3)
$root = '../';
else if (count($pieces) == 4)
$root = '../../';

//Finally, we include the header file.
include($root . 'header.php');
?>

这样,网页上的所有链接都采用相同的形式。

<a href="<?php echo $root; ?>business/">

这在页面上也有特殊用途404,因为该页面将出现在您碰巧在的任何目录404中!

于 2012-10-11T15:22:51.680 回答