PHP7 ist eine der am häufigsten verwendeten PHP -Versionen, aber die meisten Entwickler wissen weniger über die zugrunde liegenden Entwicklungsprinzipien der PHP -Sprache. In diesem Artikel werden wir von Grund auf neu beginnen und die Design- und Implementierungsprinzipien des PHP -Kernels im Detail analysieren, um den zugrunde liegenden Betriebsmechanismus von PHP zu verstehen.
Während der Entwicklung von PHP7 übernimmt der PHP-Kernel eine objektorientierte Kapselungsmethode, um den verwandten Funktionscode in die entsprechende PHP-Klasse einzudämmen. Entwickler müssen diese Klassen nur instanziieren und die entsprechende API aufrufen, um die entsprechenden Funktionen zu verwenden.
Eine Zeichenfolge in PHP besteht aus mehreren Zeichen. Hier ist der Beispielcode zum Erstellen einer Zeichenfolge:
Im PHP -Kernel wird die String -Kapselung über die Zend_String -Struktur implementiert. Das Folgende ist die Definition der Zend_String -Struktur:
Durch die Zend_String -Struktur implementiert der PHP -Kernel die automatische Speicherverwaltung, die die Belastung für Entwickler erheblich verringert.
Arrays in PHP sind sehr häufige Datenstrukturen, die zum Speichern mehrerer Daten desselben Typs verwendet werden. Im PHP7 -Kernel werden Arrays durch eine Hashtable -Struktur implementiert. Hier ist ein Beispiel für die Verwendung eines Arrays:
Im PHP-Kernel speichert Hashtable Daten über Schlüsselwertpaare. Der Schlüsselwert kann von jedem Typ sein und der Wert kann von jedem Typ sein. Das Folgende ist die Definition der Hashtable -Struktur:
Durch das Eimer-Array in Hashtable können Entwickler Schlüsselwertpaare jedes Elements erhalten. Die Einfügung und Löschung von Elementen erfolgt durch die von Hashtable bereitgestellte API.
Der Speichermanagement -Mechanismus von PHP enthält hauptsächlich zwei Methoden:
Der Zend_MM -Mechanismus ist eine häufig verwendete und reife Speicherverwaltungsmethode im PHP -Kernel, um die Anzahl der Speicheranforderungen zu verringern. Für den wiederverwendbaren Speicher wird Zend_MM für die spätere Verwendung zwischengespeichert.
Die zugrunde liegende PHP -Schicht implementiert ihren eigenen GC -Recycling -Mechanismus, wodurch der Überkopf der Speicherverwaltung durch Referenzzählung reduziert wird. Dieser automatisierte Speicherwiederherstellungsmechanismus wird in der Zend -Engine implementiert, wodurch die manuellen Speicherbedarfsbedürfnisse der Entwickler stark verringert werden.
Der PHP -Kernel unterstützt die modulare Entwicklung und kann die Entwicklung benutzerdefinierter Module über dynamische Verbindungsbibliotheken realisieren. Die allgemeinen Schritte zur Entwicklung von PHP -Modulen sind wie folgt:
Der erste Schritt in der Modulentwicklung besteht darin, die grundlegenden Informationen des Moduls zu definieren. Verwenden Sie die Struktur Zend_Module_entry, um die verschiedenen Eigenschaften eines Moduls zu definieren. Das Beispiel lautet wie folgt:
Wenn das Modul geladen ist, können die Funktionen des Moduls aufgerufen werden. Sie können Modulfunktionen über zend_function_entry definieren:
Nach Abschluss der Modulentwicklung müssen Sie das Modul in eine .so -Datei kompilieren und im PHP -Modulverzeichnis installieren. PHP bietet Tools wie Phpize und Konfiguration, um Module zu kompilieren und zu installieren.
Durch die Erklärung dieses Artikels haben wir ein tiefes Verständnis der zugrunde liegenden Entwicklungsprinzipien des PHP -Kernels, einschließlich Zend_String, Hashtable -Verpackung, Zend_MM -Mechanismus, GC -Recycling -Mechanismus und Entwicklung des PHP -Moduls. Ich hoffe, dieser Artikel kann Ihnen helfen, den PHP -Kernel besser zu verstehen und dieses Wissen auf die tatsächliche Entwicklung anzuwenden.