2010-07-12 50 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