PHPLib ablösen und dispatch Mechanismen konsolidieren
Ziel
PHPLib Bestandteile entfernen und durch neue Komponenten ersetzen und Vereinheitlichung der dispatch Mechanismen.
Beschreibung
Im Ordner lib/phplib leben noch einige Altlasten aus der Stud.IP Anfangszeit. Dieses „erste PHP Framework“ wird von Stud.IP genutzt um wesentliche Funktionalitäten zur Authentifizierung/Authorisierung und zur Sessionverwaltung zu realisieren. Im Laufe der Zeit wurden daran Anpassungen vorgenommen und Teile entfernt, die nicht genutzt wurden. Ein weiterer wichtiger Teil in der Ablaufsteuerung ist in der Datei lib/seminar_open.php untergebracht, die nach dem Authentifizierungsprozess eingebunden werden muss. Daraus ergibt sich der bekannte Ablauf eines Stud.IP Aufrufs:
lib/bootstrap.php
page_open(
[
'sess' => 'Seminar_Session' ,
'auth' => 'Seminar_Default_Auth' ,
'perm' => 'Seminar_Perm' ,
'user' => 'Seminar_User'
]);
lib/seminar_open.php
page_close()
Für die eigentliche Verarbeitung eines Aufrufs kommen dann verschiedene Dispatch-Mechanismen zum Einsatz. Das sind im Moment:
• plain-old-php-style z.B. wiki.php, sendfile.php
• dispatch.php – Trails Framework
• plugins.php – StudipPlugin::perform
• api.php – RESTAPI\Router
• jsonapi.php – Slim Framework
• soap.php / xmlrpc.php – Studip_Ws_Dispatcher
Im Rahmen dieses StEPs sollen die oben genannten Teile der PHPLib entfernt werden und durch neue Komponenten ersetzt werden, die die gleiche Funktionalität zur Verfügung stellen. Die Komponenten sollen als PSR-15 Middleware umgesetzt werden. Das Slim Framework soll für alle Endpunkte Verwendung finden. Für Trails und Plugins wird eine entsprechende Routing Middleware erstellt, die die vorhandene API für Trails und Plugins kapselt. Ob es ähnlicher Lösungen für api.php/soap.php/xmlrpc.php bedarf muss noch geklärt werden, da diese Funktionen deprecated sind und evtl. auch entfernt werden können.
Details
siehe detaillierte Beschreibung im Wiki : https://develop.studip.de/studip/wiki.php?cid=1927f2b86d6b185aa6c6697810ad42f1&wiki_comments=icon&keyword=Konzept+zu+StEP001552
Kurzbezeichnung des Integrationsaufwandes
hoch
Durchführung
Zuständig für Implentierung / Einbau / etc. : André Noack Geplant für die Version 5.3