Symfony 2 Architettura multi-tenancy, modulo front controller / kernel caricato in base al sottodominio

1

Salve colleghi programmatori,

(un po 'di background) Sto costruendo un'applicazione Symfony 2 per gli alloggi universitari per studenti, quando i nostri clienti della sezione universitaria registrano con i loro dettagli un sottodominio creato, gli studenti appartenenti a una particolare università possono accedere al servizio di alloggio online attraverso questo sottodominio, ci saranno diverse università che saranno registrate e ciascuna università avrà il proprio sottodominio e una serie separata di dati correlati / dati degli studenti che non possono essere accessibili da altre università.

(cosa ho già fatto) sono riuscito a creare un bel login e registrare pagine e sono anche riuscito a creare sottodomini modificando il file hosts (con file_put_contents () un modo migliore per farlo usando symfony?) poi ho creato un servizio che recupera UniversityID da parameters.yml, in questo modo posso ottenere dati specifici dell'università in quanto tutte le tabelle hanno una colonna universityID.

dovrei creare uno script che viene eseguito prima che venga caricato tutto ciò che aggiornerebbe dinamicamente UniversityID all'interno di parameters.yml in base al sottodominio? qual è la best practice per questo

In conclusione, quello che voglio dalla comunità è,

1). Sto cercando di utilizzare il front controller per caricare i dati specifici per università , come faccio a caricare / impostare dati dinamici usando front controller e / o kernel

2). come creare sottodomini da dinamicamente senza essere specifici della piattaforma (OS)

-Grazie

    
posta Dheeraj 01.06.2015 - 15:09
fonte

1 risposta

1

Sembra che tu stia visualizzando il problema come una delle riconfigurazione dell'applicazione basata sul sottodominio a cui si accede.

Dato che i dati specifici dell'università sono fondamentalmente dati utente - cioè cambieranno quando gli utenti sottoscriveranno e useranno la tua applicazione, penso che un approccio migliore sia quello di archiviare tutte queste cose nel tuo database e quindi creare un servizio per accedervi quando è necessario, piuttosto che come parte dell'avvio dell'applicazione.

Scriverò un servizio semplice e minimale che ispeziona il sottodominio e restituisce l'ID dell'università. (Dovresti inserire la @request_stack in esso (vedi link ), accedere al nome host della richiesta corrente ed eseguire una sorta di ricerca.)

Per quanto riguarda la creazione dinamica dei sottodomini, ti suggerisco di configurare il tuo server web in modo che funzioni con qualsiasi sottodominio (ad esempio * .tuodominio.tld) e che la tua applicazione comprenda se è valida o meno.

In pratica, evitare di scrivere dinamicamente la configurazione del server. È probabile che questo approccio ti dia problemi quando riduci e ottimizzi la tua applicazione.

    
risposta data 01.06.2015 - 15:38
fonte

Leggi altre domande sui tag