Heim > Artikel > Backend-Entwicklung > 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:
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-TutorialDas 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!