您好,欢迎访问三七文档
1PHPPHP網站設計經驗分享網站設計經驗分享ㄚ凱ㄚ凱(Darkhero)(Darkhero)SA@TaipeiSA@TaipeiZendCertifiedEngineerZendCertifiedEngineer2大綱大綱●認識認識PHPPHP●PHPPHP設計經驗談設計經驗談–為什麼要用樣板為什麼要用樣板??–為什麼要用資料庫介面為什麼要用資料庫介面??–什麼是什麼是PEARPEAR??–PHP+MySQL4.1sPHP+MySQL4.1s3認識認識PHPPHP●跨平台網頁程式語言跨平台網頁程式語言●PHPPHP可以做的事情可以做的事情●大量的大量的OpenSourceOpenSource套件套件4跨平台的跨平台的PHPPHP●LAMPLAMP–Linux+Apache+MySQL+PHPLinux+Apache+MySQL+PHP●幾乎所有的幾乎所有的LinuxDistLinuxDist預設都有這些套件預設都有這些套件●WAMPWAMP–Windows+Apache+MySQL+PHPWindows+Apache+MySQL+PHP●快速環境建立快速環境建立–AppservAppserv–EasyphpEasyphp●PHPForIISPHPForIIS5PHPPHP可以做的事情可以做的事情●Server-sidescriptingServer-sidescripting–網頁程式設計網頁程式設計●CommandlinescriptingCommandlinescripting–用用PHPPHP來寫來寫ShellScriptShellScript●Client-sideGUIapplicationsClient-sideGUIapplications–PHP-GTKPHP-GTK6大量的大量的OpenSourceOpenSource套件套件(1)(1)●Forum:Forum:–phpBB2phpBB2●CMSCMS–XoopsXoops–Mambo,JoomlaMambo,Joomla–PhpNukePhpNuke–postnukepostnuke●CalenderCalender–PHPiCalendarPHPiCalendar–phpCalendarphpCalendar–EasyPHPCalendarEasyPHPCalendar7大量的大量的OpenSourceOpenSource套件套件(2)(2)●GroupwareGroupware–EgroupwareEgroupware–DotProjectDotProject–PhpgroupwarePhpgroupware●ListList–PHPListPHPList●WebmailWebmail–SquirrelmailSquirrelmail●BlogBlog–WordPressWordPress–PlogPlog8初學者的問題初學者的問題●程式碼直接寫在程式碼直接寫在HTMLHTML中中–市面上的書大都以此為教學市面上的書大都以此為教學–市面上大部份市面上大部份PHPPHP的書本沒有說到樣版系統的書本沒有說到樣版系統–習慣直接用習慣直接用echoecho輸出資料輸出資料●不夠熟悉不夠熟悉HTMLHTML–表格跨行,跨欄的使用表格跨行,跨欄的使用–表單的設計表單的設計–POSTPOST與與GETGET的使用時機的使用時機●不習慣在不習慣在register_globals=Offregister_globals=Off工作工作●錯誤訊息的不熟悉錯誤訊息的不熟悉–對英文的恐懼對英文的恐懼??9怎樣的程度才不算新手怎樣的程度才不算新手??●清楚了解清楚了解ServerSideServerSide跟跟ClientSideClientSide的差別的差別●清楚了解清楚了解register_globalsregister_globals設定的意義設定的意義●不會搞不清邏輯判斷跟變數值指定的分別不會搞不清邏輯判斷跟變數值指定的分別●清楚了解清楚了解POSTPOST跟跟GET,COOKIEGET,COOKIE跟跟SessionSession等的等的關係與差別關係與差別●對於基本錯誤訊息有辦法解讀對於基本錯誤訊息有辦法解讀●具備基本具備基本HTMLHTML分析能力分析能力–一般常用一般常用TAGTAG分析與參數使用分析與參數使用–TABLEtagTABLEtag結構分析結構分析10PHPPHP設計經驗談設計經驗談●PHPPHP程式設計標準程式設計標準●幾個進階時可以考慮學習幾個進階時可以考慮學習–建立一個標準的檔案架構建立一個標準的檔案架構–至少熟悉一套樣版程式至少熟悉一套樣版程式–採用資料庫介面採用資料庫介面–多多使用多多使用PEARPEAR●MySQL4.1MySQL4.1–Sub-SelectSub-Select–CharsetCharset的影響的影響11建立一個標準的檔案架構建立一個標準的檔案架構●你應該建立一個標準的檔案目錄架構你應該建立一個標準的檔案目錄架構–函式庫該放哪裡?函式庫該放哪裡?–樣版該放哪裡樣版該放哪裡??–外掛程式外掛程式??–是否有網站設定檔是否有網站設定檔??–是否有管理介面是否有管理介面??●多參考目前幾個多參考目前幾個OpenSourceOpenSource的的CMSCMS–Xoops,phpbb2,mamboXoops,phpbb2,mambo等等●可以簡單的可以簡單的,,就不要複雜就不要複雜12PHPPHP程式設計標準程式設計標準●訂定專案程式設計標準的好處訂定專案程式設計標準的好處–變數,物件,函式有固定的命名方式變數,物件,函式有固定的命名方式–專案的程式風格統一,降低維護複雜度專案的程式風格統一,降低維護複雜度●進行中的專案不要任意變換標準進行中的專案不要任意變換標準–標準訂定應該是專案一開始就要決定的標準訂定應該是專案一開始就要決定的–標準訂定應該由專案參與人一同討論決定標準訂定應該由專案參與人一同討論決定●可以參考的設計標準資料可以參考的設計標準資料–PHPPHP程式設計標準程式設計標準://doc.twpug.net/php_coding_standard.htmltml13PHPPHP程式設計標準之外程式設計標準之外(1)(1)●架構整個網站的時候應該使用的方法架構整個網站的時候應該使用的方法–至少使用三層式程式設計至少使用三層式程式設計●表現層表現層--實際輸出實際輸出htmlhtml●邏輯層邏輯層--處理程式流程處理程式流程●資料處理層資料處理層--處理資料存取處理資料存取–就是使用就是使用MVC(Model-View-Controller)MVC(Model-View-Controller)架構你架構你的網站的網站–函式,物件之中不要直接輸出資料函式,物件之中不要直接輸出資料●儘量採用儘量採用return$htmlreturn$html的方式處理的方式處理14PHPPHP程式設計標準之外程式設計標準之外(2)(2)●該用該用echoecho還是還是printfprintf??–輸出一般字串用輸出一般字串用echoecho–輸出內含變數的字串用輸出內含變數的字串用printfprintf●printf('ahref='%s'target='%s'%s/a',$url,$printf('ahref='%s'target='%s'%s/a',$url,$target,$name);target,$name);●printf('ahref='%s'target='%s'%s/a',arrayprintf('ahref='%s'target='%s'%s/a',array($url,$target,$name));($url,$target,$name));–當建立當建立SQLSQL語法的時候用語法的時候用sprintfsprintf●$SQL=sprintf('Select*from%swhereID=%$SQL=sprintf('Select*from%swhereID=%s',$tableName,$id);s',$tableName,$id);15至少熟悉一套樣版程式至少熟悉一套樣版程式●為什麼要用樣版為什麼要用樣版??●兩套我推薦的樣版程式兩套我推薦的樣版程式–SmartySmarty–TBSTBS16為什麼要用樣版為什麼要用樣版??●別讓今天的程式,成為明天維護的負擔別讓今天的程式,成為明天維護的負擔●美術設計不再為了都是程式碼的網頁苦惱美術設計不再為了都是程式碼的網頁苦惱●程式設計不再為了都是程式設計不再為了都是HTMLTagHTMLTag的程式苦惱的程式苦惱●網站設計改版將會是輕鬆的事情網站設計改版將會是輕鬆的事情17沒使用樣版的程式碼沒使用樣版的程式碼18使用樣版的程式碼使用樣版的程式碼19網頁樣版檔網頁樣版檔20官方推薦官方推薦SmartySmarty●SmartySmarty為為PHPPHP推薦使用的樣版引擎推薦使用的樣版引擎–●SmartySmarty採用預先編譯樣版採用預先編譯樣版–速度較快速度較快●SmartySmarty可以直接可以直接assignassign物件,陣列等物件,陣列等●SmartySmarty提供全域變數提供全域變數–$smarty.get,$smarty.post,$smarty.server$smarty.get,$smarty.post,$smarty.server●SmartySmarty可直接輸出靜態頁面進行可直接輸出靜態頁面進行CacheCache●SmartySmarty支援外掛模組的使用支援外掛模組的使用–SmartyValidateSmartyValidate21輕量化的輕量化的Smarty-liteSmarty-lite●較適合單純的樣版需求環境較適合單純的樣版需求環境●速度較速度較SmartySmarty更快更快●系統記憶體需求較少系統記憶體需求較少●功能上較功能上較SmartySmarty少一些少一些–無法無法assignassign物件物件–少了輸出前中後的過濾器少了輸出前中後的過濾器–不支援樣版存入資料庫的模式不支援樣版存入資料庫的模式22小而強大的小而強大的TBSTBS●TBS–TinyButStrongTBS–TinyButStrong–●所見即所得的樣版引擎所見即所得的樣版引擎●支援支援CacheCache●直接存取資料庫顯示資料直接存取資料庫顯示資料–$TBS-MergeBlock('blk1',$cnx_id,'select*$TBS-MergeBlock('blk1',$cnx_id,'select*fromt_country',$p_size,$p_num,$nbr_rec);fromt_country',$p_size,$p_num,$nbr_rec);23為什麼要用資料庫介面為什麼要用資料庫介面??●為了寫出通用各資料庫的為了寫出通用各資料庫的PHPPHP程式程式●更方便使用的資料庫的功能更方便使用的資料庫的功能●減少程式撰寫上的複雜減少程式撰寫上的複雜24ADOdbADOdb●降低降低WindowsWindows程式設計師學習門檻程式設計師學習門檻–部份介面設計類似部份介面設計類似Microsoft'sADOMicrosoft'sADO●支援多種資料庫支援多種資料庫–MySQL,PgSQL,Oracle,MSSQLetc......MySQL,PgSQL,Oracle,MSSQLetc......●增加了許多方便的方法,程式撰寫更輕鬆增加了許多方便的方法,程式撰寫更輕鬆–SelectLimitSelect
本文标题:php网站制作经验
链接地址:https://www.777doc.com/doc-4828517 .html