PHP에서 코드 품질을 보장하는 방법

王林
풀어 주다: 2023-02-24 19:00:01
원래의
2395명이 탐색했습니다.

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, 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 콘텐츠와 같은 파일을 로드할 수 있습니다.


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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿