Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php实现模块化的另一种方法_Php_Html_Css_Web Applications - Fatal编程技术网

使用php实现模块化的另一种方法

使用php实现模块化的另一种方法,php,html,css,web-applications,Php,Html,Css,Web Applications,所以我最近开始学习php,现在我发现我通常遵循这种奇怪的设计模式来构建网页,但我不知道它是否真的像我想象的那样聪明,或者它只是一堆垃圾 我基本上使用php加载网站的页眉和页脚,因为通常每个网页在网站上都有相同的页面。然后,我使用php加载每个页面中心内容的html 我觉得使用这种方法我可以快速创建新的网页,因为页眉和页脚的“模板”已经创建好了,而且管理网站更容易,因为代码本质上类似于交换掉的较小代码块 还有其他人使用这种方法吗?是否存在更有效的类似模式 这是所有开发人员开始工作的基本方式,您的做

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

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

我觉得使用这种方法我可以快速创建新的网页,因为页眉和页脚的“模板”已经创建好了,而且管理网站更容易,因为代码本质上类似于交换掉的较小代码块


还有其他人使用这种方法吗?是否存在更有效的类似模式

这是所有开发人员开始工作的基本方式,您的做法是正确的,但我可能建议您尽快转向成熟的模板系统、MVC框架或已内置这些功能的CMS

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


祝你学习顺利

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

不过,我认为我的做法正好相反。我的每个页面(比如,
index.php
)的
页眉和
页脚都有一个
include

我写的一个超级有用的东西是一个确定当前目录的短
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/">

是的,很多人都编写了模板引擎/框架,这些引擎/框架基于您发现的模块化。有些简单,有些复杂得可怕。有很多值得谷歌搜索的东西。探索!