php開發(fā)效率提高的方法_第1頁
php開發(fā)效率提高的方法_第2頁
php開發(fā)效率提高的方法_第3頁
php開發(fā)效率提高的方法_第4頁
php開發(fā)效率提高的方法_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

本文格式為Word版,下載可任意編輯——php開發(fā)效率提高的方法php開發(fā)效率提高的方法

就其本質而言,假設你掌管了以PHP語言“做事”的方式,那么在使用它時就會得心應手,因此值得你去投入精力去了解這些方式。在PHP中,單純按照自己思路去解決問題往往會是一種錯誤的手段。這并不是由于你是一個糟糕的程序員,而是由于假設你想寫出好的可維護性強的代碼,有些標準技巧是你務必要使用的。下面讓我們一起看一下php開發(fā)效率提高的方法。

1、如何正確的創(chuàng)造一個網站的Index頁面

創(chuàng)造每一個網站時,建立網站的index頁面是首要做的事情之一。假設你是一個PHP新手,在編寫index頁面時典型的做法是只對index頁面所需的內容舉行編程,其它鏈接創(chuàng)造另一個頁面。不過,假設想學習一種更高效的方式來實現(xiàn)PHP編程,可以采用“index.php?page=home”模式,大量網站都在采用這種模式。

2、使用RequestGlobalArray抓取數(shù)據

實際上我們沒有任何理由使用$_GET和$_POST數(shù)組來抓取數(shù)值。$_REQUEST這個全局數(shù)組能夠讓你獲取一個get或form苦求。因此,多數(shù)處境下解析數(shù)據的更高效代碼大體如下:

$action=isset$_REQUEST[action]?$_REQUEST[action]:0;

3、利用var_dump舉行PHP代碼調試

假設你在探索php調試技術,我務必說var_dump理應是你要找的目標。在顯示php信息方面這個命令可以得志你的全體需要。而調試代碼的多數(shù)處境與得到PHP中的數(shù)值有關。

4、PHP處理代碼規(guī)律,Smarty處理呈現(xiàn)層

Smarty是一個使用PHP寫出來的模板PHP模板引擎,是目前業(yè)界最出名的PHP模板引擎之一。它分開了規(guī)律代碼和外在的內容,供給了一種易于管理和使用的方法,用來將原本與HTML代碼混雜在一起PHP代碼規(guī)律分開。簡樸的講,目的就是要使PHP程序員同前端人員分開,使程序員變更程序的規(guī)律內容不會影響到前端人員的頁面設計,前端人員重新修改頁面不會影響到程序的程序規(guī)律,這在多人合作的工程中顯的尤為重要。

5、確實需要使用全局數(shù)值時,創(chuàng)造一個Config文件

動輒創(chuàng)造全局數(shù)值是一種糟糕的做法,不過有時候實際處境確實又需要這么做。對于數(shù)據庫表或數(shù)據庫連接信息使用全局數(shù)值是一個不錯的想法,但不要在你的PHP代碼中頻繁使用全局數(shù)值。另外,更好的一種做法是把你的全局變量存放在一個config.php文件中。

6、假設未定義,遏止訪問!

假設你正確的創(chuàng)造了頁面,那么任何其他人沒有理由訪問index.php或home.php之外的index.php頁面。一旦index.php被訪問后,你可以通過獲得變量的方式來開啟需要的頁面。你的index頁面理應包含類似的以下代碼:

defineyourPage,1;然后,其它頁面理應包含:

if!definedyourPagedieAccessDenied;這么做的目的是防止直接訪問你的其它php頁面。這樣,任何試圖不通過index.php訪問其它網頁的人,將得到“訪問被拒絕”的消息。

7、創(chuàng)造一個數(shù)據庫類

假設你正在舉行數(shù)據庫編程在PHP中分外常見的任務,一個不錯的想法是創(chuàng)造一個數(shù)據庫類來處理任何數(shù)據庫管理功能。例如代碼如下:

publicfunctiondbExec$query$result=$this-db-exec$query;ifPEAR::isError$resulterrorRedirect$result-getMessage,true;elsereturn$result;

這個函數(shù)僅接收一個查詢語句并對其執(zhí)行。它還處理可能展現(xiàn)的任何錯誤。你還可以在這兒包含審核代碼,不過我更熱愛使用一個類似的審核函數(shù):

//checksifargumentsgivenareintegervaluesnotlessthan0-hasmultipleargumentsfunctionsanitizeInput$numargs=func_num_args;$arg_list=func_get_args;for$i=0;$i$numargs;$i++if!is_numeric$arg_list[$i]||$arg_list[$i]0errorRedirectUnexpectedvariablevalue,true;

8、一個php文件處理輸入,一個class.php文件處理概括功能

不讓代碼變得混亂的一個重要方法是:獲取用戶輸入后,將其重定向到其它函數(shù)來舉行處理。原理分外簡樸,php文件獲得我們需要的任何輸入,然后將其執(zhí)行重定向到類文件中的一個函數(shù)。舉例來講,假設有一個類似“index.php?page=profileaction=display”的URL。由profile.php來檢索該網址并得到操作是“display”。然后使用一個簡樸的switch函數(shù),我們來執(zhí)行真正的.顯示函數(shù):

require_oncePROJECTROOT.libs/messages.class.php;$message=newMessage;switch$actioncasedisplay:$message-display;break;...

如上所示,我使用了一個消息類,然后開頭舉行switch檢查。$message只是被類中的調用函數(shù)使用的一個對象。

9、了解你的SQL語句,并總是對其審查Sanitize

正如我以前所提到的,任何php網站中最重要的片面有99%的可能是數(shù)據庫。因此,你需要分外熟諳如何正確的使用sql。學會關聯(lián)表和更多高級技術。下面我將表示一個使用MySQL的函數(shù)例如,并使用本文第7條函數(shù)舉行審查。

privatefunctiongetSentMessages$id$this-util-sanitizeInput$id;$pm_table=$GLOBALS[config][privateMsg];$users=$GLOBALS[config][users];$sql=SELECTPM.*,USR.usernameasname_senderFROM$pm_tablePM,$usersUSRWHEREid_sender=$idANDsender_purge=FALSEANDUSR.id=PM.id_receiverANDis_read=TRUEORDERBYdate_sentDESC;$result=$this-dbQueryAll$sql;return$result;

首先,我們對用戶輸入舉行檢查通過一個GET變量傳遞消息id,然后我們執(zhí)行我們的SQL命令。留神這兒SQL的用法。你需要了解如何使用別名和關聯(lián)表。

10、當你只需要一個對象時,使用單例模式

在PHP中相當常見的一種情形時,我們只需要創(chuàng)造一個對象一次,然后在我們的整個程序中使用它。一個很好的例子就是smarty變量,一旦被初始化后就可以在任何地方使用。這種情形的一個很好實現(xiàn)方案就是單例模式。例如代碼如下:

functionsmartyObjectif$GLOBALS[config][SmartyObj]==0$smarty=newSmartyGame;$GLOBALS[config][SmartyO

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論