Entwicklung von PHP-Erweiterungen mit C

WBOY
Freigeben: 2016-08-08 09:21:42
Original
1435 Leute haben es durchsucht
Nachdruck von: http://521-wf.com/archives/241.htmlIn diesem Artikel wird hauptsächlich der Unterschied zwischen der Verwendung von C++ zur Entwicklung von PHP-Erweiterungen und der C-Sprache vorgestelltBei Derzeit ist die Programmiersprache PHP auch recht ausgereift. Es gibt verschiedene Dokumente und verschiedene Fragen, und Sie werden immer die Antworten haben, die Sie wollen. Natürlich gibt es viele Artikel zum Thema „So entwickeln Sie PHP-Erweiterungen“, aber es gibt nur wenige, die speziell die Verwendung von C++ zur Entwicklung von PHP-Erweiterungen vorstellen. Die leistungsstarken Funktionen der Programmiersprache C++ haben viele Unternehmen dazu veranlasst, sie für Backend-Programme zu verwenden. Daher müssen wir in den meisten Situationen C++ verwenden, um PHP zu erweitern. Das erweiterte Skelett-Tool im PHP-Quellcode wird standardmäßig zur Unterstützung der C-Sprache generiert. Wenn Sie C++ für die Entwicklung verwenden möchten, müssen einige Parameter separat konfiguriert werden. Nachfolgend wird ein einfaches Beispiel zur Veranschaulichung herangezogen. Vorbereitung: 1. Laden Sie den PHP-Quellcode herunter: http://www.php.net/downloads. Was hier heruntergeladen wird, ist PHP-5.3.24. tar .gz
2. Legen Sie den Quellcode nach der Dekomprimierung in /root/php-5.3.24/
3 ab Installation und Konfiguration Der Pfad zu php.ini, um zukünftige personalisierte Konfiguration zu erleichtern
5. Erweiterungsname: discuz_say(), diese Funktion gibt nur eine „Hallo Welt!“-Zeichenfolge zurück . Die Erweiterung kann sowohl auf Win32-Systemen als auch auf Unix-ähnlichen Systemen ausgeführt werden, es müssen jedoch unterschiedliche Dateien kompiliert werden. Hier stellen wir nur die Operationen unter GNU/Linux vor.


Beginnen Sie mit dem Schreiben der Erweiterung: 1. Erstellen Sie die zu implementierende Funktionslistendatei discuz.proto mit folgendem Inhalt: 2. Verwenden Sie das erweiterte Skeleton-Tool, um Kerndateien zu generieren. Der Befehl lautet wie folgt: string discuz_say()Zu diesem Zeitpunkt wird der Ordner „discuz“ im ext-Verzeichnis angezeigt, der mehrere Dateien enthält, z. B. „config“. m4 discuz.c php_discuz.h usw. warten. [root@localhost ~]# cd php-5.3.24/ext/ [root@localhost ext]# ./ext_skel --extname=discuz --proto=../../discuz.proto3. Ändern Sie die Datei config.m4 mit dem folgenden Inhalt: In dieser Datei ist dnl das Kommentarzeichen und die Zeichenfolge danach der Interpretationskontext. dnl $Id$ dnl config.m4 for extension discuz PHP_ARG_ENABLE(discuz, whether to enable discuz support, Make sure that the comment is aligned: [ --enable-discuz Enable discuz support]) if test "$PHP_DISCUZ" != "no"; then PHP_REQUIRE_CXX() dnl 通知Make使用g++ PHP_ADD_LIBRARY(stdc++, 1, EXTRA_LDFLAGS) dnl 加入C++标准库 PHP_NEW_EXTENSION(discuz, discuz.cpp, $ext_shared) fi4. Ändern Sie die Datei discuz.c und benennen Sie sie in discuz.cpp um (dieser Name sieht professioneller aus) 4.1 Fügen Sie die erforderliche C++-String-Header-Datei hinzu folgt: 4.2 Ändern Sie die Funktion discuz_say wie folgt: #ifdef HAVE_CONFIG_H #include "config.h" #endif #include "php.h" #include "php_ini.h" #include "ext/standard/info.h" #include "php_discuz.h" #include /* 添加这行 */5. Kompilieren Sie die Erweiterung und legen Sie ihre discuz.so im Installationsverzeichnis ab (siehe /* {{{ proto string discuz_say() */ PHP_FUNCTION(discuz_say) { std::string str = "Hello world!"; RETURN_STRINGL(str.c_str(), str.length(), 1); }Zwei Möglichkeiten, PHP-Erweiterungen zu kompilieren). Testen starten: An diesem Punkt ist eine einfache Erweiterung abgeschlossen [root@localhost ~]# /usr/local/php-5.3.24/bin/php hi.php Hello world! Das Obige stellt die Verwendung von C zur Entwicklung von PHP-Erweiterungen vor, einschließlich einiger Aspekte des Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

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!