Mehr als eine Anwendung pro Projekt-Repository mit Symfony 4Php

PHP-Programmierer chatten hier
Anonymous
 Mehr als eine Anwendung pro Projekt-Repository mit Symfony 4

Post by Anonymous »

Ich habe drei alte Anwendungen (die auf Symfony 2 laufen), von denen jede in separaten Git-Repositorys entwickelt und in ihren jeweiligen Vhosts konfiguriert wurde:
  • Code: Select all

    company.com
    Unternehmenswebsite.
  • Code: Select all

    admin.company.com
    Website-Verwaltung.
  • Code: Select all

    api.company.com
    API-Unternehmensdienst.
Obwohl sie dieselbe Datenbank verwenden. Deshalb haben wir (das Unternehmen) beschlossen, sie alle in einer Anwendung mit der Struktur und dem Ansatz von Symfony 4 zu vereinen, hauptsächlich um eine große Menge doppelter Daten zu entfernen und deren Wartung zu verbessern.

Im Moment integriere ich alles wie geplant in einer Anwendung/einem Repository, aber ich fange an, mich mit einigen Leistungs- und Strukturproblemen zu befassen:
  • Da ich nur einen Einstiegspunkt habe index.php Ich habe zwei Routenpräfixe erstellt, um auf die Unteranwendung „company.com/admin/“ und „company.com/api/“ zugreifen zu können, sodass jedes Mal alle Routen geladen werden :(
  • Alle Bundles und Konfigurationen werden für jede Anfrage unnötigerweise geladen und verarbeitet. Beispiel: Wenn ich auf den API-Pfad zugreife, wird auch das SonataAdminBundle geladen :(
  • Der Befehl zum Löschen des Caches dauert sehr lange.
  • Die Tests scheitern und es dauert jetzt auch lange, bis er abgeschlossen ist.
Ich möchte den frühen vhost behalten und nur die benötigten Bundles und Konfigurationen pro Domäne laden:
  • Code: Select all

    company.com
    Lädt Bundles, Routen und Konfiguration nur für eine Unternehmenswebsite (

    Code: Select all

    SwiftmailerBundle, ...)
    [*]admin.company.com
    Lädt Bundles, Routen und Konfiguration nur für die Website-Verwaltung (

    Code: Select all

    SecurityBundle
    , SonataAdminBundlesetHost($request->server->get('HTTP_HOST'));

    $response = $kernel->handle($request);
    $response->send();
    $kernel->terminate($request, $response);
    [/code]

    Ich habe das aktuelle Host-Präfix in der Kernel::registerBundles()-Methode überprüft und nur die benötigten Bundles geladen, aber ich habe immer noch Probleme mit der bin/console-Datei (sie funktioniert nicht, da die HTTP_HOST-Variable nicht für CLI definiert ist). Ich möchte den Cache für jede „Sub-App“ usw. leeren.

    Ich habe einige Nachforschungen zu diesem Thema angestellt, konnte aber bisher nichts Hilfreiches für mein Szenario (Symfony 4) finden.

    Ist es möglich, viele Anwendungen in einem Projekt-Repository unabhängig voneinander laufen zu lassen (wie einzelne Apps), aber einige Konfigurationen gemeinsam zu nutzen? Was ist der beste Ansatz, um dies zu erreichen?

    Vielen Dank im Voraus.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post