Laden von phpBB in Laravel-Code-Konflikten

8

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

Laravel-Konflikt

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.

    
JaChNo 23.09.2016, 23:06
quelle

4 Antworten

5

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.

    
Stanimir Stoyanov 26.09.2016 07:58
quelle
2

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.

    
Alexandre T 26.09.2016 11:19
quelle
2

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)

    
alepeino 26.09.2016 14:40
quelle
2

Um die Session-Anfrage zu bekommen, müssen Sie sicher sein, dass sowohl das PhpBB-Forum als auch Ihre Laravel-Anwendung dieselbe Art von Cookie verwenden:

  • Gleiche Domain
  • Gleicher Pfad
  • Identisches Sicherheitsflag

Sind diese Einstellungen in Ordnung?

    
Thibault 30.09.2016 08:43
quelle