Smarty程序應(yīng)用范例:留言簿(Guestbook)第一節(jié)
這是一個(gè)使用了Smarty的PHP應(yīng)用程序。目的是就如何在應(yīng)用程序中使用Smarty,以及如何分離你的“表現(xiàn)”(presentation)作一個(gè)示范。這個(gè)范例相當(dāng)簡(jiǎn)單,但包含了一個(gè)完整的迷你框架(mini-framework)用于快速簡(jiǎn)單地生成一個(gè)Smarty驅(qū)動(dòng)的應(yīng)用程序。一旦你理解了將“表現(xiàn)”分離的觀念,你也許會(huì)把它用在一些程序開發(fā)上。如果真是那樣,你需要根據(jù)你自己的判斷在你的程序中使用以下代碼,并為此負(fù)責(zé)。
你可以從這里下載這個(gè)范例的源代碼。http://www.phpinsider.com/php/code/guestbook/Guestbook-1.0.tar.gz 你可以在這里先看看這個(gè)范例的演示。http://www.phpinsider.com/php/code/guestbook/
這篇文章不指導(dǎo)也不涉及如何安裝Apache,PEAR和MySQL。請(qǐng)確認(rèn)你已經(jīng)知道這些事情或者有可以直接使用的相關(guān)軟件環(huán)境。如果你的運(yùn)行環(huán)境與范例所示有差別,你需要在給出的代碼中進(jìn)行相應(yīng)的調(diào)整。
接下來(lái)我們會(huì)開發(fā)一個(gè)沒有管理員界面的留言簿程序,用戶可以瀏覽也可以留言。會(huì)涉及到一些與Smarty相關(guān)的編程知識(shí),比如表單和數(shù)據(jù)庫(kù)數(shù)據(jù)的讀取與顯示。
這個(gè)范例是Smarty安裝指南中留言簿程序的擴(kuò)展,所以我們是基于此之上進(jìn)行開發(fā)的。以下是我們這個(gè)程序用到的文件:
guestbook app files/directories: /web/www.example.com/docs/ /web/www.example.com/docs/guestbook/ /web/www.example.com/docs/guestbook/index.php
/web/www.example.com/smarty/guestbook/ /web/www.example.com/smarty/guestbook/templates/ /web/www.example.com/smarty/guestbook/templates_c/ /web/www.example.com/smarty/guestbook/configs/ /web/www.example.com/smarty/guestbook/cache/
/web/www.example.com/smarty/guestbook/libs/ /web/www.example.com/smarty/guestbook/libs/guestbook_setup.php /web/www.example.com/smarty/guestbook/libs/guestbook.lib.php /web/www.example.com/smarty/guestbook/libs/sql.lib.php
下面,我們一個(gè)一個(gè)地解釋這些文件的用處:
/web/www.example.com/docs/ /docs/ 是我們WEB服務(wù)器的根目錄(Apache httpd.conf中的DocumentRoot)。
/web/www.example.com/docs/guestbook/ /guestbook/ 是能被瀏覽器訪問(wèn)的一個(gè)相對(duì)于根目錄的下級(jí)目錄,存放著我們的程序。
/web/www.example.com/docs/guestbook/index.php index.php 是我們程序的“大門”,WEB瀏覽器將通過(guò)http://www.example.com/guestbook/index.php訪問(wèn)到這個(gè)腳本文件。
/web/www.example.com/smarty/guestbook/
這是存放我們這個(gè)程序(實(shí)現(xiàn)邏輯的)所有腳本文件的目錄,這些腳本文件不一定要存放在服務(wù)器根目錄下。是否將所有腳本文件都存放在服務(wù)器的根目錄下完全隨你所愿,但是這里我們只把允許WEB瀏覽器直接訪問(wèn)的頁(yè)面文件放在WEB服務(wù)器的根目錄下。你可以使用Apache的“.htaccess”方法或其他WEB服務(wù)器軟件的方法禁止WEB瀏覽器對(duì)存放在根目錄下的這些(不宜讓W(xué)EB瀏覽器直接訪問(wèn)的)程序腳本文件的直接訪問(wèn)。
/web/www.example.com/smarty/guestbook/templates/ 這里存放我們的Smarty模板文件。
/web/www.example.com/smarty/guestbook/templates_c/
This is where Smarty places its compiled template files. If you installed this correctly, the web server user running PHP has write access here. For most intents and purposes you can just ignore this directory. 這里存放Smarty編譯過(guò)的模板文件。如果你安裝正確,運(yùn)行PHP的WEB服務(wù)器對(duì)這里有寫權(quán)限。出于一些偷懶的目的你可以忽略這個(gè)目錄。(瞎翻的,用我自己的話講:WEB服務(wù)器要具有這個(gè)目錄的寫權(quán)限,否則不能正確安裝。如果不想傷腦筋,就忽略它吧。)
/web/www.example.com/smarty/guestbook/configs/ 用于存放我們程序的設(shè)置文件。設(shè)置文件包含著你對(duì)來(lái)自模板或者程序的訪問(wèn)權(quán)限的設(shè)置信息。它們不是PHP腳本文件,而是一些可以被Smarty的設(shè)置文件解析器解析的文本文件。
/web/www.example.com/smarty/guestbook/cache/ 用于存放Smarty的緩存文件。這個(gè)目錄僅僅當(dāng)Smarty的緩存功能被打開時(shí)才有用。如果你正確安裝了,運(yùn)行PHP的WEB服務(wù)器對(duì)這里有寫權(quán)限。就像/templates_c/目錄一樣,也可以被忽略。(同/templates_c/目錄的翻譯)
/web/www.example.com/smarty/guestbook/libs/ /libs/ 我們將把程序的主要腳本文件存放這里。
/web/www.example.com/smarty/guestbook/libs/guestbook_setup.php guestbook_setup.php 我們?cè)谠撃_本文件中存放一些程序的初始化信息。
/web/www.example.com/smarty/guestbook/libs/guestbook.lib.php guestbook.lib.php 我們?cè)谠撃_本文件中存放大部分程序的實(shí)現(xiàn)邏輯。
/web/www.example.com/smarty/guestbook/libs/sql.lib.php sql.lib.php 我們?cè)谠撃_本文件中存放程序的數(shù)據(jù)庫(kù)訪問(wèn)邏輯。
出處:藍(lán)色理想
責(zé)任編輯:moby
上一頁(yè) 下一頁(yè) Smarty程序應(yīng)用范例 [2]
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|