2012-08-13 3 views
7

Oke quindi sto per creare un sito Web usando symfony 2.Per cosa dovrei fare un pacchetto? (Symfony 2)

Devo solo creare un bundle "principale" che controlli/raggruppa tutti gli altri bundle? Con altri pacchetti sto pensando di dire un pacchetto "galleria" che controlla le cose relative alle foto e un pacchetto "negozio" che controlla una parte del negozio.

Quale sarebbe la migliore (o almeno una buona pratica) pratica e come faranno i team professionisti?

risposta

3

In base alla documentazione di symfony, un pacchetto deve essere una struttura coerente e chiusa. Quindi, se per esempio "negozio" e "galleria" sono in qualche modo collegati (ad esempio, usano lo stesso modello), allora dovrebbero essere in un unico pacchetto (AppBundle, CoreBundle, PlatformBundle - qualunque cosa tu voglia). Ma se la galleria è una parte di codice completamente separata e può essere facilmente aggiunta a un altro progetto, è consigliabile escluderla per separare il pacchetto.

Penso che una buona idea sia guardare alcuni progetti su github e guardare come gli altri gestiscono questo.

+0

In realtà non so come funziona il github o come trovare un progetto che corrisponda a quello che voglio fare in un discreto lasso di tempo. Ma quello che dici è: fai 1 bundle (appBundle o coreBundle) che avrà il sito web di base e poi per le parti speciali che potrebbero essere utilizzate per altri progetti (galleria e negozio) hanno il loro bundle? –

+0

Sì - esattamente. Questo approccio ha diversi vantaggi. Ad esempio 1) È leggermente più efficiente 2) Puoi vedere cosa puoi usare in altri posti a prima vista. 3) IMO è più facile gestire i test in questo modo 4) La tua app è più "portatile". Oltre alle parti indipendenti della tua app, puoi prendere in considerazione la creazione di un bundle separato per le cose utili (come diciamo un po 'di classe o classe Math definisce stati HTTP ecc.) O parte che logicamente è molto diversa dall'applicazione (ad esempio AdminBundle). E generalmente dopo molte esplorazioni ho scoperto questa la soluzione più comoda e popolare. – Cyprian

2

Vedi le seguenti domande e le mie risposte a loro:

In sostanza, nei miei ultimi progetti non sto usando fasci di app specifica codice; l'unica eccezione è per le cose che sono codificate in un pacchetto - come Doctrine Fixtures - che ho inserito in AppBundle. Tutto il resto - modelli, controller, servizi, tipi di moduli, ecc. - sono fuori da qualsiasi pacchetto.

+0

Grazie per il vostro anser, sono al corrente di symfony2 al momento, quindi cambiare molte cose sull'installazione di base potrebbe non essere una cosa intelligente per ora. Ma darò un'occhiata a questo approccio. –

+0

Hey Elnur, ho letto alcuni dei tuoi altri thread e non sto capendo come posizionare cose come controller, form, ecc. Al di fuori di qualsiasi pacchetto. Come funziona esattamente? A che scopo servono in realtà i pacchi? –

+0

Sto pianificando di espandere la mia risposta sulla prima domanda dall'elenco che ho fornito qui con esempi di definizione di controller, moduli, ecc. Al di fuori dei pacchetti. Mi serve solo un po 'di tempo. –

1

Come @Cyprian ha detto che un pacchetto è un insieme di funzionalità che può funzionare da solo. Come accade durante lo sviluppo, non sempre sappiamo quando le cose sono separate. Viene con il tempo.

Personalmente, sto lavorando con Symfony2 da febbraio e non ho mai smesso di leggere il manuale e i libri correlati per capire più a fondo. Questo mi ha aiutato molto ed è molto interessante, ti assicuro :)

Ecco il mio top favourites documentation pages, en enlightening blog posts on delicious.

Per la tua domanda immediata, dimentica "frontend" e "backend" come facevamo in symfony 1.x. Basti pensare alle entità Modello (come in UNA riga SINGOLA) e creare in un unico pacchetto. Man mano che il tuo codice aumenterà, vedrai come smontare e separare i pacchetti. Devi solo ricordare di separare le tue funzionalità in piccoli metodi e refactoring.