Heim  >  Artikel  >  Backend-Entwicklung  >  PHP7 verwendet die Fallcodeanalyse der lib-Bibliothek basierend auf der Funktionsmethode

PHP7 verwendet die Fallcodeanalyse der lib-Bibliothek basierend auf der Funktionsmethode

php中世界最好的语言
php中世界最好的语言Original
2018-05-19 15:01:571506Durchsuche

Dieses Mal werde ich Ihnen eine Fallcodeanalyse von PHP7 unter Verwendung der lib-Bibliothek basierend auf der Funktionsmethode bringen. Was sind die Vorsichtsmaßnahmen für die Verwendung der lib-Bibliothek basierend auf der Funktionsmethode in PHP7? ist ein praktischer Fall, werfen wir einen Blick darauf.

Vorwort

Lassen Sie uns zunächst darüber sprechen, was eine Bibliothek ist. Die 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-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 Blogbeitrag 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

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;
}

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

$ gcc -g -O0 -fPIC -shared -o hello.so ./hello.c

Auf diese Weise wird eine dynamische Bibliotheksdatei hello.so generiert im aktuellen Verzeichnis. 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)

Erweiterungscode schreiben

Fügen Sie die hello.h-Referenz von hinzu.

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

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

PHP_FUNCTION(show_site)
{
  char *site = show_site();
  RETVAL_STRING(site);
  free(site);
  return;
}

php-Aufrufergebnis

<?php
$result = show_site();
var_dump($result);
?>

Ausführungsergebnis

$php ./test.php
string(12) "www.bo56.com"

Codeinterpretation

PHP_ADD_LIBRARY_WITH_PATH Wird verwendet, um den Namen, die Adresse und andere Informationen der lib-Bibliothek anzugeben. 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".

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre:

Detaillierte Erklärung der Schritte für PHP, um das Binärbaumbild zu erhalten

Die Schritte für PHP um die Knoten der verknüpften Liste von hinten nach vorne zu erhalten. Detaillierte Erklärung

Das obige ist der detaillierte Inhalt vonPHP7 verwendet die Fallcodeanalyse der lib-Bibliothek basierend auf der Funktionsmethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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