2017-01-16 8 views
2

Ich wollte fragen, ob es eine Möglichkeit gibt, ein Paket automatisch laden nur wenn eine Bedingung erfüllt ist, einige der Pakete, die ich lade nur zum Debuggen oder Loggen verwendet werden, was nicht ist immer benötigt, entfernen sie von meinem composer.json befreit etwa 1 MB Speicher, so gibt es eine Möglichkeit, meine autoload.php nur diese Pakete erfordern, wenn eine bestimmte Bedingung erfüllt ist.Composer Autoload ein Paket, wenn eine Bedingung erfüllt ist

Ich weiß, ich könnte autoload_files.php bearbeiten, aber alle meine Änderungen werden verloren gehen, wenn ich composer update oder andere Composer-Befehle ausführen.

Also, was ist der richtige Weg, dies zu tun?

Antwort

2

Nicht sicher, ob das Ihr Anwendungsfall ist, aber Sie haben die Möglichkeit zu wählen, welche Pakete nur in der Entwicklung benötigt werden (also nicht in Produktion): require-dev.

Wenn Sie ein Paket benötigen, das nur in der Entwicklungsumgebung (wie einem Debugger) verwendet wird, fügen Sie es mit composer require --dev <package> hinzu.

Hoffnung, die Ihnen hilft.

+0

"Einige der Pakete, die ich lade, werden nur zum Debuggen oder Loggen verwendet" - es klingt, als ob diese genau die richtigen Voraussetzungen für dev-Anforderungen sind. (Vielleicht nicht Logging, Sie würden das in prod. Aber Niveau könnte variieren) –

+0

Nicht ruhig, mein Ziel ist es, bestimmte Pakete nur geladen werden, wenn ich zum Beispiel als admin angemeldet sind, diese Pakete Debugging-Informationen in meinem ausgeben Skript, verbrauchen sie etwa 1 MB pro Anfrage, die für niemanden außer dem Administrator benötigt wird. –

+0

Ich verstehe. Der Status Ihrer Anwendung bestimmt also, welches Paket geladen werden soll. Ich bin nicht sicher, wie php Autoloading funktioniert, aber meine beste Vermutung wäre, einen benutzerdefinierten Auto-Lader anstelle von Composers zu verwenden. – Elhebert

Verwandte Themen