Heim  >  Artikel  >  Backend-Entwicklung  >  So stellen Sie die Codequalität in PHP sicher

So stellen Sie die Codequalität in PHP sicher

王林
王林Original
2019-09-24 17:54:132399Durchsuche

So stellen Sie die Codequalität in PHP sicher

Einige Möglichkeiten zur Verbesserung der Codequalität in PHP

1. Verwenden Sie keine relativen Pfade

Sie sehen oft:

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

Diese Methode weist viele Mängel auf:

Es sucht zuerst nach dem angegebenen PHP-Include-Pfad und dann nach dem aktuellen Verzeichnis, sodass zu viele Pfade überprüft werden. Wenn das Skript von einem Skript in ein anderes Verzeichnis eingebunden wird, wird sein Basisverzeichnis zum Verzeichnis, in dem sich das andere -Skript befindet. Ein weiteres Problem besteht darin, dass das übergeordnete Verzeichnis möglicherweise nicht das Arbeitsverzeichnis ist, wenn die geplante Aufgabe das Skript ausführt.

Die beste Option ist also die Verwendung eines absoluten Pfades:

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

Wir definieren einen absoluten Pfad, den Wert ist tot geschrieben. Der Pfad /var/www/project kann sich auch ändern. Nein, wir können die Konstante __FILE__ verwenden, wie zum Beispiel:

//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

Jetzt wird der Code unabhängig von dem Verzeichnis, in das Sie wechseln, z. B. auf einen externen Server, ordnungsgemäß und ohne Änderungen ausgeführt.

2. Verwenden Sie „require“, „include“, „include_once“ und „required_once“ nicht direkt. Führen Sie mehrere Dateien ein, z. B. Klassenbibliotheken, Tooldateien und Hilfsfunktionen, wie zum Beispiel:

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

Diese Verwendung ist recht primitiv. Sie sollte flexibler sein. Zum Beispiel:

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');

Was ist der Unterschied? In Zukunft können Sie die Funktion nach Bedarf erweitern, z. B.:

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

Kann mehr tun:

Suchen Sie mehrere Verzeichnisse für dieselbe Datei und ändern Sie problemlos das Verzeichnis, in dem die Klassendateien abgelegt werden. Es ist nicht erforderlich, den Code einzeln zu ändern. Sie können ähnliche Funktionen zum Laden verwenden Dateien wie HTML-Inhalte.

3. Debuggen Sie den Code für die Anwendung weiter
In der Entwicklungsumgebung drucken wir die Datenbankabfrageanweisung und geben die problematischen Variablenwerte aus. Und sobald das Problem gelöst ist, kommentieren oder löschen wir sie. Ein besserer Ansatz besteht jedoch darin, den Debug-Code beizubehalten. In der Entwicklungsumgebung können Sie:

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

Auf dem Server können Sie:

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

Empfohlenes Tutorial:

PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo stellen Sie die Codequalität in PHP sicher. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn