Detaillierte Erläuterung der Methode zur Verwendung der lib-Bibliothek basierend auf der Funktion bei der Entwicklung von PHP-Erweiterungen

jacklove
Freigeben: 2023-04-02 07:52:01
Original
1837 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich die Methode zur Verwendung der lib-Bibliothek basierend auf Funktionen in der PHP7-Erweiterungsentwicklung vor. Er analysiert die Kapselung und den Aufruf der damit verbundenen Betriebsfähigkeiten der lib-Bibliothekserweiterung in Form von Beispielen.

Das Beispiel in diesem Artikel beschreibt die funktionsbasierte Methode zur Verwendung der lib-Bibliothek in der PHP7-Erweiterungsentwicklung. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Vorwort

Lassen Sie uns zunächst darüber sprechen, was eine Bibliothek ist Ist. Eine lib-Bibliothek ist eine Datei, die bestimmte Funktionen bereitstellt. Es kann als eine Datei in PHP betrachtet werden, die einige Funktionsmethoden bereitstellt. Es ist nur so, dass diese Bibliothek in C oder C++ geschrieben ist.

Szenarien mit der Bibliothek lib. Einige Softwareprogramme stellen bereits lib-Bibliotheken bereit, sodass wir sie nicht erneut implementieren müssen. Beispielsweise ist die ursprüngliche MySQL-Erweiterung mithilfe der offiziellen MySQL-Lib-Bibliothek gekapselt.

In diesem Artikel werden wir eine einfache lib-Bibliothek erstellen und gekapselte Aufrufe in der Erweiterung durchführen.

Code

Grundcode

Diese Erweiterung werden wir call_lib_fun() hinzufügen. Bitte lesen Sie diesen Blog-Beitrag für den Code zur Say-Erweiterung. PHP7-Erweiterungsentwicklung Hallo Wort In diesem Artikel wird ausführlich beschrieben, wie eine Erweiterung erstellt und der Quellcode heruntergeladen wird.

Code-Implementierung

Bibliothek erstellen

Hello.h-Datei hinzufügen. Der Code lautet wie folgt:

#ifndef TEST_HEADER_FILE
#define TEST_HEADER_FILE
#include <stdlib.h>
#include <string.h>
char * show_site(); 
#endif
Nach dem Login kopieren

Hallo.c-Datei hinzufügen. Der Code lautet wie folgt:

#include "hello.h"
char * show_site()
{
  char *site = malloc(15 * sizeof(char));
  strcpy(site, "www.bo56.com");
  return site;
}
Nach dem Login kopieren

Verwenden Sie dann den folgenden Befehl, um die lib-Bibliotheksdatei (dynamische Bibliothek) zu generieren:

$ gcc -g -O0 -fPIC -shared -o hello.so ./hello.c
Nach dem Login kopieren

Dadurch wird eine dynamische Bibliotheksdatei hello.so im aktuellen Verzeichnis generiert. Die Erweiterungen dynamischer Bibliotheken in verschiedenen Betriebssystemen können unterschiedlich sein. Beispielsweise handelt es sich dabei um eine DLL unter Windows, eine Dylib unter Mac und so weiter unter Linux.

Kopieren Sie dann hello.so in das Verzeichnis /usr/local/lib/ und nennen Sie es hello.so
hello.h wird in das Verzeichnis /usr/local/include/ kopiert.

Ändern Sie die Datei config.m4

Erhöhen Sie die Abhängigkeit der Erweiterung von der dynamischen Bibliothek. Fügen Sie hauptsächlich die folgenden Codezeilen hinzu:

PHP_ADD_LIBRARY_WITH_PATH(hello, /usr/local/lib/, SAY_SHARED_LIBADD)
PHP_SUBST(SAY_SHARED_LIBADD)
Nach dem Login kopieren

Erweiterungscode schreiben

Fügen Sie einen Verweis auf hello.h hinzu.

#include "php_say.h"
#include <stdio.h>
//下面这行是增加的
#include "hello.h"
Nach dem Login kopieren

show_site()-Methode hinzugefügt. Der Code lautet wie folgt:

PHP_FUNCTION(show_site)
{
  char *site = show_site();
  RETVAL_STRING(site);
  free(site);
  return;
}
Nach dem Login kopieren

php call result

<?php
$result = show_site();
var_dump($result);
?>
Nach dem Login kopieren

Ausführungsergebnisse

$php ./test.php
string(12) "www.bo56.com"
Nach dem Login kopieren

Codeinterpretation

PHP_ADD_LIBRARY_WITH_PATH wird verwendet, um den Namen, die Adresse und andere Informationen anzugeben der lib-Bibliothek. Der erste Parameter ist der Name und der zweite Parameter ist die Adresse.

Fügen Sie die Header-Datei der lib-Bibliothek zur Datei say.c hinzu. Verwenden Sie #include "hello.h".

Rufen Sie im Erweiterungscode genau wie beim Aufrufen der von anderen Kerneln bereitgestellten Methoden die Methoden in der lib-Bibliothek auf.

Artikel, die Sie interessieren könnten:

Denken Sie über die Besonderheiten des Volist-Tags in PHP in Ajax-Operationen nach

Detaillierte Erklärung des Volist-Tags in thinkphp

Erklärung des Wissens im Zusammenhang mit der PHP-Implementierung zum Finden des Eintrittsknotens des Rings in der verknüpften Liste

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Methode zur Verwendung der lib-Bibliothek basierend auf der Funktion bei der Entwicklung von PHP-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