一個簡單的PHP網站結構


一個簡單的PHP網站結構

由於之前學習過asp.net mvc的網站開發,因此,在新接觸一門新的語言時,也會自然或不自然地參考這種經歷,然后做出網站。如果你也是剛開始接觸php,並從最原始的方式開始寫網站,那么,你可以參考下面一種做法,它也是經過參考和探索而形成的 一種可能的PHP網站結構

一種PHP網站結構

其中,網站名即為項目文件夾,文件夾下分有css、js、images、includes、templates、up等等文件夾,其功能如下:
目錄及功能列表
目錄
功能
css
專門用來存放css文件,一般每個模塊獨立成一個css文件,如用戶(user.css),產品(product.css)等
images
用來存放網站所需的圖片,如網站logo,背景圖處,增刪查改的圖標等
includes
存放業務邏輯的代碼,每個模塊獨立成一個文件,如用戶(users.php),產品(products.php)等,每個文件是各種業務邏輯的處理方法的集合,如增、刪等
js
集中存放js代碼,如提交前驗證,改善用戶體驗等,每個模塊自成一個文件,如用戶(user.js)
templates
這個是模塊,如每個網頁均需要html頭部和html尾部,可以寫成header.php,footer.php,然后在每個頁面上把頭和尾包含(include或require)一次,即可統一網站風格
up 存放用戶上傳的圖片,先按類別,再按時間分成多個文件,如/up/user/2012/2/12/xxxx.jpg

根目錄下,還會有許多獨立的php文件,這些是呈現給用戶的php文件,如用戶注冊(register.php),登錄(login.php),首頁(index.php)等文件。

接下來,將更詳細地說明每個文件夾下功能的實現方式:

(1)css文件夾
這個文件夾主要是把一個模塊的所有css文件集中在一起,可以一處定義多處引用,這樣當需要修改時,只需要改一處,比較方便修改和維護。
如上所示,commom.css即是通用的Css屬性,如鏈接的顏色,input元素去邊框,統一規定網站文字大小,還有常見的clearfix或透明處理等代碼,一般是會放在網站模板的頭部(/templates/header.php);home.css則主要用在首頁上;jquery-ui-1.8.19.custom.css則是jquery的標准界面文件

(2)images文件夾
主要是集中存放網站會用到的一些圖片資源,如網站不同規格的logo,背景圖片,增刪查改的圖標,加載圖標等等

(3)includes文件夾
主要是集中保存業務邏輯處理文件,每個模塊獨立成一個文件,這些文件使用時,都需要進行包含(include或require):
其中,
a)_logOn.php是登錄狀態欄,並有一些快捷菜單,算是快捷通道板:
b)baseConfigus.php則是數據庫配置信息,是一些常量,方便訪問數據庫是統一代碼,且不易錯:
c)commom.php是通用方法,如驗證是否登錄,是否管理員,上傳文件,顯示分頁等
d)users.php則用來處理與用戶有關的業務邏輯,如修改用戶信息,登錄等

(4)js文件夾
功能結構與includes文件夾類似,此不多述。

(5)templates文件夾
用來存放網站模板,整個網站的風格在此統一:
其中,header.php定義網頁的頭部,每個基本頁面開頭都需要包含它(include /templates/header.php):
footer.php定義網頁的尾部,每個基本頁面的末尾也需要包含它:
其中可以包含回頂部,到底部的功能,或者加上網站流量統計代碼,如51la

header_admin.php和footer_admin.php則是后台頁面使用的模板,道理類似。

(6)up文件夾
這個文件夾保存用戶上傳的各種圖片,如用戶頭像,產品頭像等,各成一個文件夾:
在用戶文件夾下面,按年月日進行保存。

(7)根目錄下的php文件
這些文件,一般就是直接面向用戶的,即呈現給用戶看的,雖然業務邏輯主要在includes文件夾中集中保存,但頁面中不免仍需要一些訪問數據庫的代碼。這些文件的共同特點是,必須包含網站模板,以統一風格:
下面以用戶登錄(login.php)為例:
a)頭部
b)尾部
c)中間
注意,這里主要是html語言寫成的用戶界面,需要一些構成:
css或js引用,form,提交前的有效性驗證onsubmit="return validateLogin();",以及登錄出錯時保留用戶之前輸入的信息if($_SERVER['REQUEST_METHOD']=='POST'){print $_POST['name'];}等
d)登錄提交(post方式)的處理,這里采用同一個頁面進行處理
即提交時,仍跳轉到當前頁面,只是需要對提交方式進行判斷(是get還是post),然后做出不同的處理:
其中Get方式時,若已經登錄,則自動跳轉到首頁;若是Post方式時,時進行登錄驗證,驗證成功則跳轉到首頁,失敗時停留在當前頁面。

(8).一些處理技巧:
a)借鑒C#的String.Format方法(保存在/includes/commom.php中):
使用時,很方便,如打印從數據庫中讀出的數據時:
b)由於以上一步a)的方式訪問時,關於引號(單引號和雙引號的問題),有時難以進行轉義或轉義時即出錯,因此,可能靈活使用jquery來進行事件綁定(而非html元素事件的方式),如刪除前的確認提示:

本文由bluesky原創,具有獨立產權,如轉載請注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM