所以我最近开始学习 php,现在我发现我通常遵循这种奇怪的设计模式来构建网页,但我不知道它是否真的像我想象的那样聪明,或者它只是一堆垃圾。
我基本上使用 php 来加载网站的页眉和页脚,因为每个网页通常在网站上都有相同的内容。然后我使用 php 为每个页面的中心内容加载 html。
我觉得使用这种方法我可以快速创建新的网页,因为页眉和页脚的“模板”已经创建,并且管理网站更容易,因为代码本质上就像有可互换的较小代码块,只是被交换出去。
还有其他人使用这种方法吗?有没有更有效的类似模式。
所以我最近开始学习 php,现在我发现我通常遵循这种奇怪的设计模式来构建网页,但我不知道它是否真的像我想象的那样聪明,或者它只是一堆垃圾。
我基本上使用 php 来加载网站的页眉和页脚,因为每个网页通常在网站上都有相同的内容。然后我使用 php 为每个页面的中心内容加载 html。
我觉得使用这种方法我可以快速创建新的网页,因为页眉和页脚的“模板”已经创建,并且管理网站更容易,因为代码本质上就像有可互换的较小代码块,只是被交换出去。
还有其他人使用这种方法吗?有没有更有效的类似模式。
这基本上是所有开发人员开始的方式,你在正确的轨道上,但我可能建议你很快切换到一个完整的模板系统、一个 MVC 框架或一个已经为你内置了这些功能的 CMS。
您通常甚至可以一次使用所有 3 个,否则 CMS 将自己提供其他组件...
祝你学习顺利!
这是一个很好的编码习惯。我也总是以这种方式构建网站,这样我就可以在构建Django
后端的同时添加内容并快速上线。
不过,我认为我是反过来做的。我的每一页,(比如说,index.php
),都有一个include
到header
和footer
。
我写的一个超级有用的东西是一个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
中!