首頁 後端開發 php教程 10個提高PHP開發者效率的辦法

10個提高PHP開發者效率的辦法

Mar 19, 2018 pm 03:08 PM

在開發工作中,如果你掌握了以PHP語言「做事」的方式,使用時得心應手,大大提高開發效率。因此本文向您介紹10大PHP開發中的技巧,希望對您有幫助。

1、如何正確的建立一個網站的Index頁面

#在建立每個網站時,建立網站的index頁面是首要做的事情之一。如果你是一個PHP新手,在編寫index頁面時典型的做法是只對index頁面所需的內容進行編程,其它鏈接創建另一個頁面。不過,如果想學習更有效率的方式來實現PHP編程,可以採用「index.php?page=home」模式,許多網站都在採用這種模式。

2、使用Request Global Array抓取資料

實際上我們沒有任何理由使用$_GET和$_POST陣列來抓取數值。 $_REQUEST這個全域數組能夠讓你取得一個get或form請求。因此,多數情況下解析資料的更有效率程式碼大致如下:

  1. $action = isset($_REQUEST[' action']) ? $_REQUEST['action'] : 0;  

3、利用var_dump進行PHP程式碼偵錯

如果你在找php偵錯技術,我必須說var_dump應該是你要找的目標。在顯示php資訊方面這個指令可以滿足你的所有需求。而調試程式碼的多數情況與得到PHP中的數值有關。

4、PHP處理程式碼邏輯,Smarty處理展現層

#Smarty是使用PHP寫出來的模板PHP模板引擎,是目前業界最有名的PHP模板引擎之一。它分離了邏輯程式碼和外在的內容,提供了一個易於管理和使用的方法,用來將原本與HTML程式碼混雜在一起PHP程式碼邏輯分離。簡單的講,目的就是要使PHP程式設計師同前端人員分離,使程式設計師改變程式的邏輯內容不會影響到前端人員的頁面設計,前端人員重新修改頁面不會影響到程式的程式邏輯,這在多人合作的項目中顯的尤為重要。

5、的確需要使用全域數值時,建立一個Config檔

#動輒建立全域數值是一種糟糕的做法,不過有時候實際狀況的確又需要這麼做。對於資料庫表或資料庫連線資訊使用全域數值是一個不錯的想法,但不要在你的PHP程式碼中頻繁使用全域數值。另外,更好的做法是把你的全域變數存放在一個config.php檔案中。

6、如果未定義,禁止存取!

如果你正確的創建了頁面,那麼任何其他人沒有理由訪問index.php或home.php以外的index.php頁面。一旦index.php被存取後,你可以透過獲得變數的方式來打開所需的頁面。你的index頁面應該包含類似的以下程式碼:

  1. define('yourPage',1); 

然後,其它頁面應該包含:

  1. if (!defined('yourPage')) die#('Access Denied'); 

這麼做的目的是防止直接存取你的其它php頁面。這樣,任何試圖不透過index.php存取其它網頁的人,將得到「存取被拒絕」的訊息。

7、建立一個資料庫類別

如果你正在進行資料庫程式設計(在PHP中非常常見的任務),一個不錯的想法是建立一個資料庫類別來處理任何資料庫管理功能。範例程式碼如下:

       public function dbExec($query)    
 {    
     $result = $this->db->exec($query);    
     if (PEAR::isError($result))    
         errorRedirect($result->getMessage(), true);    
     else
         return $result;    
 }
登入後複製

這個函數只接收一個查詢語句並對其執行。它還處理可能出現的任何錯誤。你還可以在這裡包含審核程式碼,不過我更喜歡使用一個類似的審核函數:

// checks if arguments given are integer values not less than 0 - has multiple arguments   
 function sanitizeInput()    
 {    
     $numargs = func_num_args();    
     $arg_list = func_get_args();    
     for ($i = 0; $i < $numargs; $i++) {    
         if (!is_numeric($arg_list[$i]) || $arg_list[$i] < 0)    
             errorRedirect("Unexpected variable value", true);    
    }    
 }
登入後複製

8、一個php檔處理輸入,一個class.php檔處理特定功能

不讓程式碼變得混亂的一個重要方法是:取得使用者輸入後,將其重定向到其它函數來處理。原理非常簡單,php檔案獲得我們需要的任何輸入,然後將其執行重定向到類別檔案中的一個函數。舉例來講,假設有一個類似「index.php?page=profile&action=display」的URL。由profile.php來檢索該網址並得到操作是“display”。然後使用一個簡單的switch函數,我們來執行真正的顯示函數:

 require_once PROJECTROOT.&#39;libs/messages.class.php&#39;;     
    $message = new Message();     
switch ($action)   
{   
    case &#39;display&#39;:   
       $message->display();   
       break;     
...
登入後複製

如上所示,我使用了一個訊息類,然後開始進行switch檢查。 $message只是被類別中的呼叫函數使用的一個物件。

9、了解你的SQL語句,並且總是對其審查(Sanitize)

#

正如我以前所提到的,任何php网站中最重要的部分有99%的可能是数据库。因此,你需要非常熟悉如何正确的使用sql。学会关联表和更多高级技术。下面我将展示一个使用MySQL的函数示例,并使用本文第7条函数进行审查。

private function getSentMessages($id)    
 {    
$this->util->sanitizeInput($id);    
    $pm_table = $GLOBALS[&#39;config&#39;][&#39;privateMsg&#39;];    
 $users = $GLOBALS[&#39;config&#39;][&#39;users&#39;];    
     $sql = "SELECT PM.*, USR.username as name_sender FROM $pm_table PM, $users USR    
         WHERE id_sender = &#39;$id&#39; AND sender_purge = FALSE AND USR.id = PM.id_receiver AND is_read = TRUE    
         ORDER BY date_sent DESC";    
 $result = $this->dbQueryAll($sql);    
    return $result;    
 }
登入後複製

首先,我们对用户输入进行检查(通过一个GET变量传递消息id),然后我们执行我们的SQL命令。注意这儿SQL的用法。你需要了解如何使用别名和关联表。

10、当你只需要一个对象时,使用单例模式

在PHP中相当常见的一种情形时,我们只需要创建一个对象一次,然后在我们的整个程序中使用它。一个很好的例子就是smarty变量,一旦被初始化后就可以在任何地方使用。这种情形的一个很好实现方案就是单例模式。示例代码如下:

function smartyObject()    
 {    
     if ($GLOBALS[&#39;config&#39;][&#39;SmartyObj&#39;] == 0)    
    {    
         $smarty = new SmartyGame();    
         $GLOBALS[&#39;config&#39;][&#39;SmartyObj&#39;] = $smarty;    
    }    
     else
         $smarty = $GLOBALS[&#39;config&#39;][&#39;SmartyObj&#39;];    
     return $smarty;    
 }
登入後複製

注意,我们拥有一个全局smarty变量(该示例中它在config.php中被初始化),如果它的值为0,我们将创建一个新smarty对象。否则,它意味着该对象已经被创建,我们只需要返回它。

以上是10個提高PHP開發者效率的辦法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

我後悔之前不知道的 7 個 PHP 函數 我後悔之前不知道的 7 個 PHP 函數 Nov 13, 2024 am 09:42 AM

如果您是經驗豐富的PHP 開發人員,您可能會感覺您已經在那裡並且已經完成了。操作

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

php程序在字符串中計數元音 php程序在字符串中計數元音 Feb 07, 2025 pm 12:12 PM

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? 什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

See all articles