Globale libs für PHP-Module

Nachdem ich jetzt das dritte Modul habe, welche identische (externe) PHP-Librarys nutzt, bekomme ich öfters das ‚Redeclare‘-Problem wenn identische Namespaces/Klassen vorhanden sind, welche in mehreren Dateien auftauchen.

Ich würde mir wünschen, das IPS einen globalen Ordner für PHP-Libs bereitstellt.
Bei der Installation von Modulen könnte in der library.json die Abhängigkeit von einem Namespace / Projekt und dessen Git-URL angegeben werden. So das IPS dieses Repo in z.B. SYMDIR/libs clonen kann.

In der module.json könnten dann der autoload der benötigen Libs definiert werden.
Damit kann IPS vor dem erzeugen der ipsmodule-Klasse, diese Libs laden bzw deren Quellen zum auto_include von PHP hinzufügen damit andere Loader die Dateien finden.

Viele Projekte nutzen auch die composer.json, welche u.A. ja auch den korrekten Ordner der Quellen bzw. den Autoloader definiert.

Michael

Das Problem ist, dass durch die __generated Datei im Skript Ordner die Modul nicht sauber voneinander isoliert sind. Ich will dieses Problem eher korrigieren, als dass ich einen neuen „globalen“ Ort anbiete. Die Isolation aller Modul ist für die Sicherheit wichtig. Und die Module brauchen gerne mal unterschiedliche Versionen einer Library. Das will keiner „global“ Verwalten :wink:

Somit ist das eher ein Bug der auf Systemseite zu fixen gilt.

paresy

Auch wahr…
Ebenso wie die Isolation der Instanzen innerhalb von IPS, welche ja noch fehlt.
Dann Versuche ich mir eben einen intelligenten Autoloader für die submodule im libs Ordner zu bauen :slight_smile:
Michael

Dann fixt aber bitte auch das Timeout, beim clonen im Modul-Store.
Ohne sauberer Unterstützung von Submodulen benötigen dann Entwickler mehr Zeit für die Pflege des fremden Codes in den Modulen.
Und wenn halt das clonen nicht mehr in Echtzeit erfolgt, sondern im Hintergrund nach dem Auswählen des gewünschten Commit.
Michael