Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich den Erweiterungsstatus in PHP dynamisch anzeigen? Wie lade ich Erweiterungen dynamisch?

Wie kann ich den Erweiterungsstatus in PHP dynamisch anzeigen? Wie lade ich Erweiterungen dynamisch?

青灯夜游
青灯夜游nach vorne
2021-07-06 19:08:262500Durchsuche

Wie kann ich den Erweiterungsstatus in PHP dynamisch anzeigen? Wie lade ich Erweiterungen dynamisch? Der folgende Artikel stellt Ihnen die Methode zum Überprüfen des Erweiterungsstatus und zum Laden der Erweiterung während des dynamischen Betriebs vor. Ich hoffe, er ist hilfreich für Sie!

Wie kann ich den Erweiterungsstatus in PHP dynamisch anzeigen? Wie lade ich Erweiterungen dynamisch?

Nachdem wir php.ini kompiliert und die Konfiguration abgeschlossen haben, haben wir erfolgreich eine PHP-Erweiterung installiert. PHP stellt uns jedoch auch zwei Funktionen zur Verfügung, die den Status von Erweiterungen während der dynamischen Laufzeit anzeigen und Erweiterungen laden können, die nicht in php.ini konfiguriert sind. Schauen wir uns als Nächstes ihre Verwendung an.

Überprüfen Sie, ob die Erweiterung geladen wurde

echo extension_loaded("redis");

Eine sehr einfache Funktion, deren Funktion darin besteht, zu überprüfen, ob eine Erweiterung geladen wurde. Es wird ein boolescher Wert zurückgegeben, der „true“ zurückgibt, wenn die Erweiterung geladen wurde, und „false“, wenn die Erweiterung nicht geladen ist.

Auf der PHP-FPM-Webseite können wir die Funktion phpinfo() verwenden, um den aktuellen PHP-Status und erweiterungsbezogene Informationen anzuzeigen. Im CLI-Befehlszeilenskript können wir den Befehl php -m verwenden, um die geladenen Erweiterungen anzuzeigen.

Dynamisches Laden von Erweiterungen

Zuerst deaktivieren wir das Laden von Redis-Erweiterungen in php.ini und müssen auch enable_dl=1 aktivieren, damit wir die Funktion dl() verwenden können, um eine Erweiterung dynamisch zu laden .

dl("redis");
echo extension_loaded("redis");
// 1

Ja, die Funktion dl() ist eine Funktion zum dynamischen Laden von Erweiterungen. Es gibt jedoch viele Einschränkungen bei der Verwendung und es handelt sich nicht um eine sichere Funktion. Daher ist in PHP7 die Konfiguration „enable_dl“ in php.ini standardmäßig deaktiviert. Wir versuchen auch, diese Methode nicht zum Laden von Erweiterungen in der Produktionsumgebung zu verwenden.

Darüber hinaus ist diese Funktion nur in der CLI-Umgebung in PHP7 gültig. Mit anderen Worten: In der PHP-FPM-Webumgebung ist diese Funktion nutzlos, selbst wenn enable_dl in php.ini aktiviert wurde.

Das Verzeichnis zum Laden der Erweiterung basiert auf dem Standarderweiterungsverzeichnis von PHP. Bitte beachten Sie, dass die Dateierweiterung in der Windows-Umgebung .dll ist. Wenn das Laden der Erweiterung fehlschlägt, gibt diese Funktion nicht nur „false“ zurück, sondern es wird auch eine E_WARNING-Fehlermeldung generiert. Schließlich ist diese Funktion auch im abgesicherten PHP-Modus nicht verfügbar.

Zusammenfassend sollten wir in einer Produktionsumgebung versuchen, die Möglichkeit zum dynamischen Laden von Erweiterungen nicht zu nutzen. Dies kann als Lernmaterial für uns verwendet werden, wenn Sie nicht zu viele Erweiterungen auf einmal auf Ihren lokalen Computer laden möchten. Wenn Sie bestimmte Funktionen testen müssen und einige spezielle Erweiterungen benötigen, sollten Sie die Verwendung dieser Funktion in Betracht ziehen für lokale Tests.

测试代码:
https://github.com/zhangyue0503/dev-blog/blob/master/php/202005/source/%E5%8A%A8%E6%80%81%E6%9F%A5%E7%9C%8B%E5%8F%8A%E5%8A%A0%E8%BD%BDPHP%E6%89%A9%E5%B1%95.php

参考文档:
https://www.php.net/manual/zh/function.extension-loaded.php
https://www.php.net/manual/zh/function.dl.php

Dieser Artikel ist reproduziert von: https://juejin.cn/post/6953791854441660424

Autor: Hardcore Project Manager

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWie kann ich den Erweiterungsstatus in PHP dynamisch anzeigen? Wie lade ich Erweiterungen dynamisch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:juejin.cn. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen