



免費預覽已結束,剩余1頁可下載查看
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
讓PHP開發(fā)者事半功倍的技巧本文介紹的是可以讓PHP開發(fā)者事半功倍的一些技巧,希望對你有幫助,一起來看。AD: 如果你使用一面大鏡子作為沖浪板會發(fā)生什么?或許你會在較短的時間內征服海浪,但是你肯定從內心深處明白,這不是沖浪的正確選擇。同樣的道理也適用于PHP編程,盡管這樣的類比聽起來有一些古怪。我們經常聽到有人試圖用一個周末多點的時間來學會PHP,但是請恕我直言,這是學習這門編程語言的一種非常糟糕的方式。為何說學習PHP的過程有別于任何其它語言?就其本質而言,如果你掌握了以PHP語言 “做事”的方式,那么在使用它時就會得心應手,因此值得你去投入精力去了解這些方式。在PHP中,單純按照自己思路去解決問題往往會是一種錯誤的辦法。這并不是因為你是一個糟糕的程序員,而是因為如果你想寫出好的可維護性強的代碼,有些標準技巧是你必須要使用的。下面讓我們一起看一下你需要知道的10大技巧。1、如何正確的創(chuàng)建一個網站的Index頁面創(chuàng)建每一個網站時,建立網站的index頁面是首要做的事情之一。如果你是一個PHP新手,在編寫index頁面時典型的做法是只對index頁面所需的內容進行編程,其它鏈接創(chuàng)建另一個頁面。不過,如果想學習一種更高效的方式來實現(xiàn)PHP編程,可以采用“index.php?page=home”模式,許多網站都在采用這種模式。2、使用Request Global Array抓取數據實際上我們沒有任何理由使用$_GET和$_POST數組來抓取數值。$_REQUEST這個全局數組能夠讓你獲取一個get或form請求。因此,多數情況下解析數據的更高效代碼大體如下:1. 01.$action=isset($_REQUESTaction)?$_REQUESTaction:0;3、利用var_dump進行PHP代碼調試如果你在尋找php調試技術,我必須說var_dump應該是你要找的目標。在顯示php信息方面這個命令可以滿足你的所有需要。而調試代碼的多數情況與得到PHP中的數值有關。4、PHP處理代碼邏輯,Smarty處理展現(xiàn)層Smarty是一個使用PHP寫出來的模板PHP模板引擎,是目前業(yè)界最著名的PHP模板引擎之一。它分離了邏輯代碼和外在的內容,提供了一種易于管理和使用的方法,用來將原本與HTML代碼混雜在一起PHP代碼邏輯分離。簡單的講,目的就是要使PHP程序員同前端人員分離,使程序員改變程序的邏輯內容不會影響到前端人員的頁面設計,前端人員重新修改頁面不會影響到程序的程序邏輯,這在多人合作的項目中顯的尤為重要。5、的確需要使用全局數值時,創(chuàng)建一個Config文件動輒創(chuàng)建全局數值是一種糟糕的做法,不過有時候實際情況的確又需要這么做。對于數據庫表或數據庫連接信息使用全局數值是一個不錯的想法,但不要在你的PHP代碼中頻繁使用全局數值。另外,更好的一種做法是把你的全局變量存放在一個config.php文件中。6、如果未定義,禁止訪問!如果你正確的創(chuàng)建了頁面,那么任何其他人沒有理由訪問index.php或home.php之外的index.php頁面。一旦index.php被訪問后,你可以通過獲得變量的方式來打開需要的頁面。你的index頁面應該包含類似的以下代碼:1. define(yourPage,1);然后,其它頁面應該包含:1. if(!defined(yourPage)die(AccessDenied);這么做的目的是防止直接訪問你的其它php頁面。這樣,任何試圖不通過index.php訪問其它網頁的人,將得到“訪問被拒絕”的消息。7、創(chuàng)建一個數據庫類如果你正在進行數據庫編程(在PHP中非常常見的任務),一個不錯的想法是創(chuàng)建一個數據庫類來處理任何數據庫管理功能。示例代碼如下:1. publicfunctiondbExec($query) 2. 3. $result=$this-db-exec($query); 4. if(PEAR:isError($result) 5. errorRedirect($result-getMessage(),true); 6. else7. return$result; 8. 這個函數僅接收一個查詢語句并對其執(zhí)行。它還處理可能出現(xiàn)的任何錯誤。你還可以在這兒包含審核代碼,不過我更喜歡使用一個類似的審核函數:1. 01./checksifargumentsgivenareintegervaluesnotlessthan0-hasmultiplearguments 2. functionsanitizeInput() 3. 4. $numargs=func_num_args(); 5. $arg_list=func_get_args(); 6. for($i=0;$i$numargs;$i+) 7. if(!is_numeric($arg_list$i)|$arg_list$idisplay(); 7. break; 8. .如上所示,我使用了一個消息類,然后開始進行switch檢查。$message只是被類中的調用函數使用的一個對象。9、了解你的SQL語句,并總是對其審查(Sanitize)正如我以前所提到的,任何php網站中最重要的部分有99%的可能是數據庫。因此,你需要非常熟悉如何正確的使用sql。學會關聯(lián)表和更多高級技術。下面我將展示一個使用MySQL的函數示例,并使用本文第7條函數進行審查。1. privatefunctiongetSentMessages($id) 2. 3. $this-util-sanitizeInput($id); 4. $pm_table=$GLOBALSconfigprivateMsg; 5. $users=$GLOBALSconfigusers; 6. $sql=SELECTPM.*,USR.usernameasname_senderFROM$pm_tablePM,$usersUSR 7. WHEREid_sender=$idANDsender_purge=FALSEANDUSR.id=PM.id_receiverANDis_read=TRUE 8. ORDERBYdate_sentDESC; 9. $result=$this-dbQueryAll($sql); 10. return$result; 11. 首先,我們對用戶輸入進行檢查(通過一個GET變量傳遞消息id),然后我們執(zhí)行我們的SQL命令。注意這兒SQL的用法。你需要了解如何使用別名和關聯(lián)表。10、當你只需要一個對象時,使用單例模式在PHP中相當常見的一種情形時,我們只需要創(chuàng)建一個對象一次,然后在我們的整個程序中使用它。一個很好的例子就是smarty變量,一旦被初始化后就可以在任何地方使用。這種情形的一個很好實現(xiàn)方案就是單例模式。示例代碼如下:1. functionsmartyObject() 2. 3. if($GLOBALSconfigSmartyObj=0) 4. 5. $smarty=newSmartyGame(); 6. $GLOBALSconfigSmartyObj=$smarty; 7. 8. else9. $smarty=$GLOBA
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【PLC控制的變頻恒壓供水系統(tǒng)的的軟件設計案例4600字】
- 危險化學品應急預案(21篇)
- 環(huán)境評估測繪保密承諾書
- 車間承包及智能制造解決方案合同
- 重點部位的消防安全檢查方法完整版
- 旅游行業(yè)股權協(xié)議轉讓與目的地營銷合同
- 鼓樓區(qū)初一數學試卷
- 高一蘇教數學試卷
- 廣東18中考數學試卷
- 二零零二年的數學試卷
- 殯儀服務員考試:殯儀服務員考試考試卷及答案
- 建筑外墻清洗安全規(guī)范考核試卷
- 2021-2022學年四川省巴中市高一下學期期末考試化學試題
- 物業(yè)經營分析報告
- 醫(yī)療機構麻醉藥品、第一類精神藥品管理
- 中國成人暴發(fā)性心肌炎診斷和治療指南(2023版)解讀
- 法庭科學 偽造人像 深度偽造檢驗
- 海上風電場海上安全保障
- 儲能系統(tǒng)培訓課程
- 體重管理咨詢表
- 綠色生態(tài)養(yǎng)豬場環(huán)境治理項目可行性研究報告
評論
0/150
提交評論