Struttura Sito Con Amministrazione

Sto creando un sito, la parte pubblica è già fatta, e mi manca da fare l’amministrazione.

La struttura che uso al momento è quella base: quella con framework, protected, themes, assets e index.php nella cartella radice.

Ora per sviluppare l’amministrazione mi vengono in mente alcune alternative:

1)continuo normalmente e inserisco i controller e view appositi per l’amministrazione assieme a quelli del frontend… -> porta un pò di confusione a lungo andare…

2)creo una cartella per esempio admin e la metto i file dell’amministrazione… ma la domanda in questo caso è:dove metto la cartella admin?

nella root? in questo caso devo duplicare all’interno la cartella protected? e themes?

oppure solo dentro a protected?

Non voglio duplicare nulla per niente… quindi creare la struttura più snella e meno incasinata…

Voi come avete fatto? cosa mi consigliate di fare?

Io per l’amministrazione creerei un modulo admin, quindi dentro la cartella modules

Avevo letto prima in giro per il forum questa cosa di creare un modulo…

Ma quali sono i Pro e i Contro del fare un modulo per l’admin confrontato per esempio con la struttura descritta qui: http://www.yiiframework.com/wiki/374/yiiboilerplate-setup-a-professional-project-structure-in-seconds/ ?

io ti avrei consigliato le stesse strade, la scelta sta sempre a te.

con il modulo non hai altro che una migliore organizzazione dei file (come dicevi tu, per non incasinare il progetto), e quindi dentro al modulo admin, avrai solo i file che interessano la parte dell’amministrazione, però hai a disposizione tutte le classi e i componenti della tua applicazione, e ci potrai accedere a seconda delle tue esigenze.

boilerplate tende a separare completamente la logica del frontend e quella del backend, mettendo in common i file necessari sia per il front che per il backend.

ottimo grazie mille delle spiegazioni.

Penso opterò come dite voi per un modulo.

Grazie :)

personalmente uso questa organizzazione con qualche piccola modifica

http://www.yiiframework.com/wiki/63/organize-directories-for-applications-with-front-end-and-back-end-using-webapplicationend-behavior/

Mi trovo abbastanza bene perché frontend e backend sono praticamente isolati e condividono solo i Model.

L’unico neo che ho trovato è l’organizzazione dei controller che, se non si sta attenti, rischiano di avere codice duplicato per le stesse funzionalità. il lato positivo però è che questa organizzazione ti permette di avere controller abbastanza “stupidi” (e sicuri) per il frontend e “complessi” per il backend.

yiiboilerplate non l’ho mai usato in quanto necessita di configurazioni particolari (a quanto mi pare di capire leggendo la documentazione) che su shared hosting potrebbero non essere disponibili. ma per questo lascio a chi è più esperto.

una gestione via modulo non la implemento perchè se sviluppo un modulo di amministrazione di un sito difficilmente lo posso riutilizzare (senza modifiche al codice) per un’altro… rendendolo di fatto un non-modulo.