Ich versuche auf einige der Funktionen innerhalb von phpBB von meiner Laravel-Anwendung zuzugreifen, dies ist für Aktionen wie das Hinzufügen eines Benutzers, wenn eine Registrierung auf meiner Hauptseite und Autologins passiert.
PhpBB ist unter /public/forums
installiert und ich habe .htaccess
aktualisiert, um es zu erlauben. Ich kann darauf zugreifen und es einfach nutzen.
Ich habe einen Helfer, der ursprünglich für Code-Signierer konstruiert wurde, aber in die Laravel-Welt übersetzen sollte. Ich lade es als Helfer, indem ich es unter App lege und es mit
lade %Vor%und ich greife auf die Funktionen als solche zu
%Vor%An der Spitze meines Helfers habe ich diesen Konstruktor
%Vor%Wenn ich den Code ausführe, bekomme ich einen Server 500 Fehler
%Vor%was ist diese Zeile
%Vor%Ich habe einen Post-auf-Stack-Überlauf gefunden, der sich genau auf mein Problem bezieht, aber die Lösung dieses Problems wurde nie gepostet
In diesem Thread wurde vorgeschlagen, dass, weil sowohl phpBB als auch Laravel beide Composer verwenden, beim Laden der Klassen ein Konflikt verursacht wurde. Ich bin mir nicht sicher, ob das stimmt.
Aber Laravel beeinflusst sicherlich phpBB, wenn ich das $user->session_begin();
anrufe.
Ich würde vorschlagen, das Rad nicht neu zu erfinden und bereits codierte Erweiterungen wie lara-auth-bridge zu verwenden. Die Registrierung fügt einfach die richtigen Zeilen in die richtigen Tabellen ein, die nicht speziell mit phpBB3 vertraut sind, aber Sie können die Änderungen in der Datenbank sehen, nachdem ein neues Konto erstellt wurde.
Bearbeiten: Sie können den problematischen Code in try {} catch {}
blockieren, falls der Fehler für die Registrierung nicht fatal ist, so dass der Server nicht mit 500 endet.
Wenn zwei Anwendungen kommunizieren mussten, habe ich das zweimal aktualisiert. PhpBB ist so geschrieben, dass es mit Erweiterung erweiterbar ist. Sie können eine Erweiterung phpBB entwickeln, die eine API zum Erstellen eines neuen Benutzers ist.
Ihre neue Erweiterung verwendet XML-RPC über HTTP für die gesamte Kommunikation zwischen Ihrer Laravel-App und dem Forum-System. Sie definieren eine Route, die Informationen über die neuen Benutzer erhält und analysieren dann den Erstellungsprozess in phpbb. Dieser Weg ist einfacher, da Sie sich im phpBB / symfony Framework befinden.
In Ihrer Laravel-Anwendung müssen Sie die API aufrufen, um die Kommunikation zu starten.
Der Fehler zeigt eindeutig an, dass das Objekt symfony_request
null ist. Durch das Durchsuchen des Quellcodes ein wenig, fand ich, dass diese Variable (und viele andere) global erwartet werden.
Es sieht so aus, als müssten Sie include
die phpBB/app.php
Datei erstellen. Es erzeugt die meisten benötigten Objekte.
update :
Tatsächlich fügen Sie die common
-Datei ein, die die meisten Einstellungen vornimmt. Vielleicht nur ein globales machen
$symfony_request = $phpbb_container->get('symfony_request');
funktioniert. (Ich kann es jetzt nicht selbst testen, nur Ideen werfen)
(Wenn möglich, würde ich es mit einer anderen Bibliothek versuchen. Ich mag diese Globals nicht. Keiner tut das. Es macht die Fehlersuche und Fehlersuche schwieriger, wie diese Frage zeigt)
Tags und Links php laravel-5 laravel composer-php phpbb3