我不知道是否有一个技术术语,所以我没有在谷歌和这个网站上找到任何东西。
我的一位朋友多年来一直在制作网站,并且实际上建立了一个商业,使用了一个相当独特的(对我来说)系统。
他把他的页面分成3个部分,标题,正文和页脚。将它们放入3个文件中,然后在正文页面中包含页眉和页脚,只留下:(示例)
<?php include_once "Constants/Header.php"; ?>
<div id="Container">
<div id="Header">
HEADER
</div>
<div id="Menu">
<ul id="Nav">
<li>Menu item</li>
<li>Menu item</li>
<li>Menu item</li>
<li>Menu item</li>
<li>Menu item</li>
<li>Menu item</li>
</ul>
</div>
<div id="Body">
</div>
</div>
<?php include_once "Constants/Footer.php"; ?>
以这种方式编码网站是一种好习惯吗? - 如此,为什么?最后但并非最不重要的是,您是否以这种方式对页面进行编码?
答案 0 :(得分:4)
正如其他几位提到的那样,将代码拆分为多个PHP文件可以帮助您避免不必要地重复工作。但是,更大的好处可能是include
语句提供的门户是实现Model-View-Controller等全站点架构。
使用MVC,您的代码不仅仅是用户看到的页面部分(页眉,页脚,正文等),而且还有责任。在高级别,“模型”管理数据和业务逻辑,“视图”处理用户界面(包括从模型渲染数据),“控制器”处理请求并与模型的适当部分交互。
我无论如何都不是MVC的专家,但这里的好处是巨大的。每个组件都可以单独测试。将组件设计为“松散耦合”可帮助您避免重复自己并鼓励编写可重用的代码。
有许多PHP web application frameworks使用MVC架构,其中许多都是免费提供的(例如,CodeIgniter)。
不可否认,MVC不一定是“一种真正的方式” - 在你朋友的情况下,实现这样的架构可能超出了他想要做的范围。但是对于你原来的问题(我猜的是一种迂回的方式),include
语句可以(如果使用得当)是一个非常强大和有用的工具。
答案 1 :(得分:3)
使用include
并拆分PHP文件对于(作为开发人员和继任者)非常有帮助。这样,如果您需要更改页脚,例如,您只需更改一个页脚文件,并且更改将反映在整个网站范围内。
是的,我总是使用include
。
答案 2 :(得分:2)
我不了解良好做法,但如果您的网站在所有网页上使用相同的页眉和页脚,那么将代码包含一次而不是将相同的代码复制并粘贴到每个页面中效率会高得多。
您的菜单的未来添加只需添加一次,每个页面都会看到更改。
答案 3 :(得分:2)
这不是好事,而是常见做法。稍微好一点的是3个文件,一个用于页眉,一个用于页脚,然后一个(通常是:index.php),包括页眉,页脚和内容。
<?php
$active_page = $_GET['page'];
require_once('header.php');
require_once($active_page);
require_once('footer.php');
?>
答案 4 :(得分:1)
嗯,这是PHP中非常基本的技术。 它允许您在一个位置修改页眉或页脚,并使用它们在站点的每个页面中进行修改。
它可以用于更多目的。
答案 5 :(得分:1)
这不好,也不好。
取决于你想做什么。如果你想要一套简单的有限网页,那就足够了。当您想为每个页面分别设置样式表时,问题就会出现。然后一些页面使用脚本,其他页面包含另一个脚本。在这些情况下,标题会因页面而异(它们可能相同,但包含您不使用的文件是不好的做法)。
然后,如果您正在网站上构建某种类型的交互,那就不会这样做。这不是一种编程方式。实际的PHP代码没有空间。你当然可以包含PHP代码,但以这种方式混合PHP和HTML是一种非常糟糕的做法。
在这种情况下,让PHP为您工作的最佳方法是使用某种框架或CMS。如果你想建立一个网页,互动很少(例如公司的网站,一些演示文稿,新闻网站,博客) - 使用CMS,如Wordpress,Joomla,Drupal,DLE。如果您需要更复杂的东西,比如基于PHP的Web应用程序,请使用MVC框架,使用Zend框架,或者更容易和更小的东西(这里我非常主观),如CakePHP,CodeIgniter或Symfony。