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
다음과 같이 __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, require_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 콘텐츠와 같은 파일을 로드할 수 있습니다.
개발 환경에서는 데이터베이스 쿼리를 인쇄하고 문제가 있는 변수 값을 덤프하고 문제가 해결되면 주석을 달거나 삭제합니다. 더 나은 방법은 디버깅 코드를 유지하는 것입니다. 개발 환경에서는 다음을 수행할 수 있습니다.
define('ENVIRONMENT' , 'development'); if(! $db->query( $query ) { if(ENVIRONMENT == 'development') { echo "$query failed"; } else { echo "Database error. Please contact administrator"; } }
위 내용은 PHP에서 코드 품질을 보장하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!define('ENVIRONMENT' , 'production');
if(! $db->query( $query )
{
if(ENVIRONMENT == 'development')
{
echo "$query failed";
}
else
{
echo "Database error. Please contact administrator";
}
}