首頁  >  文章  >  後端開發  >  PHP如何保證程式碼品質

PHP如何保證程式碼品質

王林
王林原創
2019-09-24 17:54:132391瀏覽

PHP如何保證程式碼品質

php提高程式碼品質的一些方法

1、不要使用相對路徑

#通常會看到:

require_once('../../lib/some_class.php');

#此方法有許多缺點:

它先找指定的php包含路徑, 然後再找目前目錄,因此會檢查過多路徑。如果該腳本被另一目錄的腳本包含, 它的基本目錄變成了另一腳本所在的目錄.另一問題, 當定時任務運行該腳本, 它的上級目錄可能就不是工作目錄了.

因此最佳選擇是使用絕對路徑:

#
define('ROOT' , '/var/www/project/');
require_once(ROOT . '../../lib/some_class.php');
//rest of the code

#我們定義了一個絕對路徑, 值被寫死了. 我們還可以改進它. 路徑/var/www/project 也可能會改變, 那麼我們每次都要改變它嗎? 不是的, 我們可以使用__FILE__常數, 如:

//suppose your script is /var/www/project/index.php
//Then __FILE__ will always have that full path.
define('ROOT' , pathinfo(__FILE__, PATHINFO_DIRNAME));
require_once(ROOT . '../../lib/some_class.php');
//rest of the code

現在, 無論你移到哪個目錄, 如移到一個外網的伺服器上, 代碼無須更改便可正確運行。

2. 不要直接使用require, include, include_once, required_once

可以在腳本頭部引入多個文件, 像類別庫, 工具文件和助手函數等, 如:

require_once('lib/Database.php');
require_once('lib/Mail.php');
require_once('helpers/utitlity_functions.php');

這種用法相當原始. 應該更靈活點. 應編寫個助手函數包含檔案. 例如:

function load_class($class_name)
{
//path to the class file
$path = ROOT . '/lib/' . $class_name . '.php');
require_once( $path );
}
load_class('Database');
load_class('Mail');

有什麼不一樣嗎? 該程式碼更具可讀性.將來你可以按需擴展該函數, 如:

function load_class($class_name)
{
//path to the class file
$path = ROOT . '/lib/' . $class_name . '.php');
if(file_exists($path))
{
require_once( $path );
}
}

還可做得更多:

#為相同檔案尋找多個目錄,能很容易的改變放置類別檔案的目錄, 無須在程式碼各處一一修改,可使用類似的函數載入檔案, 如html內容。

3. 為應用保留偵錯程式碼

#在開發環境中, 我們列印資料庫查詢語句, 轉存有問題的變數值,而一旦問題解決, 我們註釋或刪除它們. 然而更好的做法是保留調試代碼.在開發環境中, 你可以:

define('ENVIRONMENT' , 'development');
if(! $db->query( $query )
{
if(ENVIRONMENT == 'development')
{
echo "$query failed";
}
else
{
echo "Database error. Please contact administrator";
}
}

#在伺服器中, 你可以:

define('ENVIRONMENT' , 'production');
if(! $db->query( $query )
{
if(ENVIRONMENT == 'development')
{
echo "$query failed";
}
else
{
echo "Database error. Please contact administrator";
}
}

推薦教學:PHP影片教學

以上是PHP如何保證程式碼品質的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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