2010-07-12 49 views
0

我已经使用PHP几年了,但我不认为自己不过是一个温和的程序员。简单网站的PHP文件结构?

在创建一些网站(从演示网站到一些简单的CMS'es有所不同)时,我采取了两种方法,我将在下面讨论。我的问题很简单:在定制方面哪个更好(它需要尽可能定制)和速度(尽可能快地加载)。

首选

文件:header.php中,content1.php,content2.php,footer.php

想法:所有内容的文件包括在开始的头文件和页脚在最后。


中策

文件:index.php文件,content1.php,content2.php

想法:基于一个GET变量或类似的东西,的index.php包括相关的php文件


在此先感谢您的答案!

回答

2

我会去的第二个之一。这是许多框架采用的方法,也是一个很好的方法。你有一个地方是那些获得总是调用,所以你可以做一些处理,在那里像清理URL,检查有效的会话,...

此外,还可以存储索引里面的一些基本选项。php(因为它是一个小网站,我用这种方式看到了问题,但是对于更大的项目,sperate配置文件是IMO的更好的方式),可以从index.php文件中调用(包含)的所有页面访问。

速度不应该是一个小网站的问题,所以无论你可能选择最终的解决方案将有良好的结果。

+0

+1为您的应用程序的一个入口点 - 它有很多优点(http://stackoverflow.com/questions/604046/having-a-single-entry-point-to-a-website-bad-good-non我可能会选择更多的MVCish的方式,即使在小应用程序tho .. – Kuchen 2010-07-12 12:51:19

+0

我只能达到DrColossos的意见,因为我自己使用它。但是你必须小心一些事情。如果您尝试根据GET参数设置包含,则应该创建一组授权页面,以保护您的网站,或尝试搜索服务器上是否存在该文件。 – 3rgo 2010-07-12 13:34:30

+0

我最喜欢这个解决方案,但我只是有人问一些人直接访问其中一个包含的文件(我不太确定我应该如何让服务器对此尝试作出反应) – 2010-07-12 15:51:49

0

如果网站真的很简单,不需要任何额外的工具,我会选择第二个选择。大多HTML并不复杂,它必须被分裂成几个文件,实际演示魔术应该在CSS文件中休息反正... 有了你有你的第二个选择 - 简单 - 网站在一个地方,不要”如果你想编辑某些东西,你不得不在几个文件中四处看看。

3

我有一个漂亮的框架,因为它大,同样适用于小型网站。该结构是几乎相同的在所有情况下,我的目录结构如下所示:

.htaccess 
inc/ 
tpl/ 
    css/ 
    images/ 
    js/ 
index.php 

index.php的任务是确定要加载哪些文件,其中任何编程逻辑在inc目录中的文件举行,和模板在tpl目录中有帮助。例如,index.php可能是如此简单:加上以下.htaccess规则

<?php 
switch ($_GET['filename']) { 
    case 'news': 
     require('inc/news.php');  // your news functions 
     include('tpl/news.tpl.php'); // your news template 
    break; 
    case 'events': 
     require('inc/events.php'); 
     include('tpl/events.tpl.php'); 
    break; 
    case 'contact': 
     require('inc/contact.php'); 
     include('tpl/contact.tpl.php'); 
    break; 
    default: 
     if ($_GET['filename'] == '') { 
      include('tpl/home.tpl.php'); 
     } 
     else { 
      header('HTTP/1.0 404 Not Found'); 
      include('tpl/page_not_found.tpl.php'); 
     } 
    break; 
} 

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+) index.php?filename=$1 

希望这是有道理的。如果没有,让我知道什么不是,我会很乐意进一步解释。

+0

这对我作为一个开始Web开发人员非常有帮助。你能提供一些更深入的见解,例如你如何处理inc /和tpl /?我猜TPLs包含实际的HTML和公司/只有PHP逻辑来填充变量? 我会采用你的结构,因为我觉得它很容易记住。谢谢! – errorprone 2013-02-06 09:02:59

+1

是的。 ** inc **(includes)目录中的文件包含逻辑,然后变量从** tpl **目录“spat”到主HTML模板中。 – 2013-02-06 11:16:18

0

Victorelu - 不是你的问题的答案。但你可能会被建议开始寻找一些轻量级的MVC PHP框架(我不是在谈论CI,kohana,蛋糕等,更重要的是咖啡因等非常轻量级的)。我使用咖啡因(基于几个核心文件的轻量级MVC框架)做了一点概念验证,它巧妙地满足您陈述的要求:

'... customization'。

吉姆

[编辑] - 链接咖啡因:http://code.google.com/p/caffeine-php/ 有它遍历整个过程agreat小PDF:http://code.google.com/p/caffeine-php/downloads/list

+0

Jim,感谢您发布该链接。咖啡因看起来非常甜! – 2010-07-13 13:39:00

+0

马丁 - 是的,我发现它是一个伟大的小应用程序,尤其是我更多的asp.net mvc。有很多相似之处。在内部,我们倾向于使用.net和linux网站,我们定制joomla,所以咖啡因在joomla之后非常清爽:) – 2010-07-13 14:03:42

0

我没有用我的项目的任何框架。但每个人都建议我使用框架。 我保持DIR我自己

INSIDE ROOT的文件/目录结构

  • /备份
  • /配置
  • /库
  • /媒体
  • /型号
  • /模块
  • /模板
  • /SQL文件
  • 的index.php
0

关于网站页面结构检查MOFE信息。

php网站最重要也是最基础的部分是php网站的页面结构,因为它有助于当你想重新设计网站,或者你想编辑一些代码,然后确定你需要知道网站的页面结构。

查看全部详细信息here