php / php/php-src

Conditional Runtime PHP Extension loading

Offen
#19,812 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Feature Status: Needs Triage
Vorherrschende Sprache
C
Sterne
40.4k
Forks
8.2k
Ø Merge
2 T. 13 Std.
Gemergte PRs (30 T.)
96

Beschreibung

Description

I would like to build a docker container with various PHP extensions and be able to toggle them off with environment variables. (OpenTelemetry / XDebug / Tideways / Blackfire does not like each other). Of course I can build various tags, but it's an hassle of CI managment.

The solution who most people are doing is to use the docker entrypoint to move files to disable loading of extensions. This does not work when the container is read-only. Therefore I would suggest to have some kind of environment variable to disable / enable extension on the fly.

Several ideas I had so far:

in php.ini

{if hasEnv("FOO")}
extension=foo.so
{/if}

so we can toggle even php.ini settings

or a simple

PHP_EXTENSIONS_DISABLE=opentelemetry

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Das Issue nennt keine Implementierungsdateien, Tests oder Einstiegspunkte. Beginne damit, das Laden von PHP-Erweiterungen und die Konfigurationsverarbeitung nachzuverfolgen, und ermittle anschließend, wie die umgebungsbasierte Aktivierung oder Deaktivierung funktionieren soll, einschließlich der vorgeschlagenen php.ini-Bedingungen. Als erledigt gilt, wenn ein abgestimmtes Design für schreibgeschützte Container und das Umschalten von Erweiterungen zur Laufzeit implementiert und abgedeckt ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
c, php
Bereich
backend
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.