Detaillierte Erläuterung der Hallo-Wort-Implementierungsmethode bei der Entwicklung von PHP7-Erweiterungen

jacklove
Freigeben: 2023-04-02 07:54:01
Original
1598 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich die Implementierungsmethode von Hello Word in der PHP7-Erweiterungsentwicklung vorgestellt. Er analysiert die spezifischen Schritte und zugehörigen Betriebstechniken der PHP7-Erweiterungsentwicklung und umfasst die Änderung und Kompilierung des zugrunde liegenden PHP-Quellcodes . Freunde in Not können sich auf Folgendes beziehen:

Das Beispiel in diesem Artikel beschreibt die Implementierungsmethode von Hello Word in der PHP7-Erweiterungsentwicklung. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Hier basiert es auf PHP7 und erklärt, wie man eine PHP-Erweiterung von Grund auf erstellt. In diesem Artikel werden hauptsächlich die grundlegenden Schritte zum Erstellen einer Erweiterung erläutert. Im Beispiel werden wir folgende Funktionen implementieren:

<?php
echo say();
?>
Nach dem Login kopieren

Ausgabeinhalt:

$ php ./test.php
$ hello word
Nach dem Login kopieren

Implementieren Sie eine Say-Methode in der Erweiterung. Nach dem Aufruf der Say-Methode wird das Hallo-Wort ausgegeben.

Schritt eins: Code generieren

PHP stellt uns das Tool zum Generieren von Basiscode ext_skel zur Verfügung. Dieses Tool befindet sich im Verzeichnis ./ext des PHP-Quellcodes.

$ cd php_src/ext/
$ ./ext_skel --extname=say
Nach dem Login kopieren

Der Wert des Parameters extname ist der Erweiterungsname. Nach Ausführung des Befehls ext_skel wird im aktuellen Verzeichnis ein Verzeichnis mit demselben Erweiterungsnamen generiert.

Der zweite Schritt besteht darin, die Konfigurationsdatei config.m4 zu ändern

Die Funktion von config.m4 besteht darin, mit dem PHPize-Tool zusammenzuarbeiten Generieren Sie die Konfigurationsdatei. Die Konfigurationsdatei wird zur Umgebungserkennung verwendet. Überprüfen Sie, ob die für die Kompilierung und Ausführung der Erweiterung erforderliche Umgebung erfüllt ist. Jetzt beginnen wir mit der Änderung der Datei config.m4.

$ cd ./say
$ vim ./config.m4
Nach dem Login kopieren

Nach dem Öffnen der Datei config.m4 finden Sie diesen Absatz.

dnl If your extension references something external, use with:
dnl PHP_ARG_WITH(say, for say support,
dnl Make sure that the comment is aligned:
dnl [ --with-say       Include say support])
dnl Otherwise use enable:
dnl PHP_ARG_ENABLE(say, whether to enable say support,
dnl Make sure that the comment is aligned:
dnl [ --enable-say      Enable say support])
Nach dem Login kopieren

Wobei dnl das Anmerkungssymbol ist. Der obige Code besagt, dass Sie die Kommentare des PHP_ARG_WITH-bezogenen Codes entfernen müssen, wenn die von Ihnen geschriebene Erweiterung von anderen Erweiterungen oder Bibliotheksbibliotheken abhängt. Andernfalls entfernen Sie die Kommentare aus dem PHP_ARG_ENABLE relevanten Codesegment. Die von uns geschriebenen Erweiterungen müssen nicht auf andere Erweiterungen und Bibliotheken angewiesen sein. Daher entfernen wir den Kommentar vor PHP_ARG_ENABLE. Der Code nach dem Entfernen der Kommentare lautet wie folgt:

dnl If your extension references something external, use with:
 dnl PHP_ARG_WITH(say, for say support,
 dnl Make sure that the comment is aligned:
 dnl [ --with-say       Include say support])
 dnl Otherwise use enable:
 PHP_ARG_ENABLE(say, whether to enable say support,
 Make sure that the comment is aligned:
 [ --enable-say      Enable say support])
Nach dem Login kopieren

Der dritte Schritt, Code-Implementierung

Ändern Sie die Datei say.c. Implementieren Sie die say-Methode.
Suchen Sie PHP_FUNCTION(confirm_say_compiled) und fügen Sie den folgenden Code darüber ein:

PHP_FUNCTION(say)
{
    zend_string *strg;
    strg = strpprintf(0, "hello word");
    RETURN_STR(strg);
}
Nach dem Login kopieren

Suchen Sie PHP_FE(confirm_say_compiled und fügen Sie den folgenden Code darüber ein:

PHP_FE(say, NULL)
Nach dem Login kopieren

Der geänderte Code lautet wie folgt:

const zend_function_entry say_functions[] = {
   PHP_FE(say, NULL)    /* For testing, remove later. */
   PHP_FE(confirm_say_compiled,  NULL)    /* For testing, remove later. */
   PHP_FE_END /* Must be the last line in say_functions[] */
 };
 /* }}} */
Nach dem Login kopieren

Der vierte Schritt , kompilieren Die Schritte zum Installieren der kompilierten Erweiterung

lauten wie folgt:

$ phpize
$ ./configure
$ make && make install
Nach dem Login kopieren

Ändern Sie die Datei php.ini und fügen Sie den folgenden Code hinzu:

[say]
extension = say.so
Nach dem Login kopieren

Dann ausführen, php -m Befehl. Im Ausgabeinhalt sehen Sie das Wort say.

Der fünfte Schritt besteht darin, den Test aufzurufen

Schreiben Sie selbst ein Skript und rufen Sie die Say-Methode auf. Überprüfen Sie, ob der Ausgabeinhalt den Erwartungen entspricht.

Artikel, die Sie interessieren könnten:

Detaillierte Erläuterung der funktionsbasierten Methode zur Verwendung der lib-Bibliothek in der PHP-Erweiterungsentwicklung

Die Besonderheit des volist-Tags in thinkphp bei Ajax-Operationen

Detaillierte Erklärung des volist-Tags in thinkphp

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Hallo-Wort-Implementierungsmethode bei der Entwicklung von PHP7-Erweiterungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!