Moduli Frontend Backend

Salve, da un neofita!

Vorrei creare il mio primo progetto in Yii utilizzando un modulo per il frontend ed uno per il backend, evitando di utilizzare la struttura principale dell’applicazione.

Questo per dividerli logicamente come sotto applicazioni, come suggerito dalla guida ufficiale.

Non riesco però a capire come e se devo configurare i controller e/o i componenti.

Inoltre sapete dirmi se ha senso e se ha degli svantaggi?

Spero di essere stato chiaro, ho le idee un po confuse.

GRAZIE MILLE!

Crea un modulo per il backend, il frontend lo lasci al livello base.

Puoi generare il modulo con gii.

Fare un modulo per il frontend ed un per il backend ha degli svantaggi particolari?

Dei vantaggi ci sono. Creare un modulo isola completamente i controller, le view. Diciamo che potresti distribuire lo stesso identico software, scambiando i moduli di front-end a seconda del cliente. Ma non ne vedo il senso.

avere un modulo come frontend significa che avrai le url tipo:


frontend/news

frontend/news/nato_un_cammello_allo_zoo_di_roma

se non usi il modulo avrai le url native tipo:


news

news/nato_un_cammello_allo_zoo_di_roma



E avrai la possibilita’ di usare qualche url nativa di piu’ e scrivere delle rules di meno, il che e’ sempre una cosa buona.

Spesso si usano 2 moduli: 1 per gli utenti registrati (per gestire i propri dati, i propri annunci) e uno per gli amministratori (per gestire tutto di tutti).

La parte di frontend e’ l’unica interessata da procedure di SEO, ed e’ l’unica per la quale gli url sono importanti.

Grazie mille! Per ora sono orientato all’uso di un solo modulo per tutta l’amministrazione.

Ti do un altro input. Io cerco di sviluppare le estensioni solo come moduli. Sviluppare un modulo significa avere a che fare con molto più codice. Però anche con un maggiore “isolamento” del codice. Hai tutto li in una sola cartella e tutto quello che devi fare è caricare un modulo. Diversamente avresti controller, moduli e view sparsi per l’applicazione. Il modulo facilita il riuso del codice.

Quindi immagina di fare un modulo per le news. A quel punto, se devi fare lo stesso in un altro tuo lavoro, puoi semplicemente spostare quel modulo nell’altro sito. Fine. Magari puoi farti moduli per la view e moduli per la logica.

Io preferisco farmi diversi widget per dei pezzi di codice piu’ piccoli, ed avere un buon paio di crud generators, uno per il backend ed uno per il frontend.

Per quella che e’ la mia esperienza, tutti i siti hanno un modulo di notizie e nessuno ce l’ha uguale ad una altro, parlo anche a livello di database.

Quando mi serve un modulo news, creo la tabella nel database, genero mode, crud interno (di solito gia’ a posto out of the box) e il crud esterno, su cui bisogna applicare la grafica.

Ho fatto un modulo e funziona, pero’ non so come generare con gii il controller i models etc… all’interno del modulo. Mi tocca fare tutto a mano.

Esiste un modo per dire a gii di creare il crud all’interno del mudulo?

Grazie

Puoi sempre crearli e poi spostarli. In ogni caso, fai attenzione a gii: mentre scrivi il nome del modulo, sulla destra dovrebbe apparire una mascherina che ti aiuta a scrivere il percorso in cui verrà salvato il model. Se non sbaglio, ti suggerisce


application.models.Model

dove Model è il nome del tuo … model =)

Se lo cambi con:


application.modules.Modulo.models.Model

dove Modulo è il nome del tuo modulo e Model il nome del tuo Model, la classe del Model verrà salvata dentro al tuo modulo.

Grazie sensorario. :rolleyes:

Basta che nella textbox controller name metti

modulo/controllerName (ci sono anche i suggerimenti)

Ciao a tutti,

scrivo perché ho seguito il consiglio di creare un modulo per il backend. Sembra proprio essere la soluzione migliore per ciò che devo fare: un pannello di controllo ai miei clienti per gestire i contenuti del proprio sito.

In questo modulo ho voluto inoltre dare la possibilità di gestire se utilizzare o meno i SEF url (ovvero il modulo UrlManager). In pratica, nel file di configurazione, UrlManager verrebbe caricato o meo a seconda di questo parametro. Fin qui tutto bene.

Però (e qui il mio problema) mi servirebbe fare in modo che il modulo UrlManager, nel modulo del backend, sia sempre abilitato, a differenza del frontend. Quindi la mia domanda è: come fare? <_<

Ho provato ad utilizzare anche setParams (http://www.yiiframework.com/doc/api/1.1/CModule#setParams-detail) e setComponents ma sembra proprio che non servano a nulla :(

Help me pleeeeeease :rolleyes:

Il frontend e il backend hanno url diversi, puoi semplicemente configurare gli url come ti servono.

Mi fai un esempio di url che devi fare carino? E in generale, che senso ha fare url search engine friendly nel backend, dove i search engine non sono autorizzate?

Salve a tutti,

stò iniziando a sviluppare la mia prima applicazione con Yii ma mi sono puntato sulla gestione di un modulo.

1)Ho creato tutte le pagine CRUD attraverso gii,

2)ho creato un nuovo modulo ‘backend’ con l’intenzione di buttarci dentro tutte le pagine di creazione/modifica lasciando il resto dell’applicazione accessibile a tutti gli utenti,

3)non riuscendo diversamente ho copiato le cartelle dei modelli dentro al modulo backend,

4)ho modificato il file protected/config/main.php aggiungendo :


'modules'=>array(

		'backend'=>array(

			'users','articles','banners','rates','sim'

		),

		

	),

ora se provo ad andare su localhost/miaapplicazione/index.php?r=backend/users/create

mi mostra l’index generale e basta senza neanche segnalare errori.

dove sbaglio?

ci sarà sicuramente un’impostazione che ho saltato…gentilmente qualcuno mi “sblocca” :unsure:

Invece di copiare le cartelle dei modelli dentro il modulo del backend, rigenerali direttamente all’interno del modulo… in gii puoi specificare percorsi relativi anche ai moduli.

Ciao