2012-08-14 3 views
21

Ho appena incontrato Twitter Bootstrap oggi, su SO. Ho scremato attraverso alcuni tutorial online e se la mia comprensione finora è corretto, utilizzando la TB essenzialmente composto da:Bootstrap Symfony2 e Twitter

  1. Download TB, l'estrazione dei file CSS ecc
  2. riferimento al CSS richiesta, file JS nella vostra HTML doc e utilizzo dei pattern CSS definiti

Voglio utilizzare Twitter Bootstrap con Symfony2. Data la mia comprensione di come usare TB ho pensato che sarebbe stato relativamente facile usarlo con Symfony, quindi sono stato abbastanza sorpreso nel vedere che ci sono (in realtà diversi) pacchetti da usare con Symfony.

Quindi le mie domande sono:

  1. Perché è un bundle necessario per utilizzare Twitter Bootstrap con Symfony2? - il metodo che ho spiegato sopra non funzionerà (ad esempio aggiungendo i riferimenti direttamente in un modello di ramoscello)?

  2. Dal momento che ci sono diversi Twitter Bootstrap Bundles disponibili (l'ultimo conteggio ci sono 3), che è il più facile da usare (deve essere uno che è attivamente sostenuto con le recenti impegna, e non un progetto morto)

risposta

32

Sono sicuro che questi pacchetti sono fantastici, ma presentano vantaggi e svantaggi. Puoi anche utilizzare TB senza Bundle direttamente nel tuo progetto. Questo è quello che io personalmente, in questo modo:

  • git clone TB in web/(per ottenere gli aggiornamenti più recenti e tenere aggiornato)
  • chiamo direttamente bootstrap.less nei miei modelli ramoscello con Assetic e meno del filtro. In questo modo, posso creare i miei file .less che @imports TB e utilizzare i loro mixin sorprendenti, ad esempio.

È davvero potente in questo modo. Accoppiato con yui-compressor, quando uso Assetic in modalità no-debug, tutti i miei js e meno file sono compilati in un unico output .css e un singolo output .js. E potresti beneficiare di tutte le funzionalità TB, in .less, not .css

+0

Grazie per la vostra pronta risposta. Sei un risparmiatore di vita !. Mi stavo strappando i capelli, su quale direzione andare. Quando hai un momento, potresti approfondire un po 'di più? Un piccolo frammento che mostra un modello di ramoscello usando Assetic, yui-compressor, ecc., Le impostazioni di configurazione richieste ecc. Saranno superbe, poiché molte di queste sono nuove tecnologie per me. Grazie –

+3

Questo libro di cucina dovrebbe essere perfetto per te: http://symfony.com/doc/current/cookbook/assetic/yuicompressor.html;) – guillaumepotier

+0

+1 per il collegamento. –

3

Puoi usare Twitter Boostrap (TB) per aggiungere solo css al tuo progetto. E poi, hai un punto di partenza per fare qualcosa di più visivo che iniziare da zero. Come hai descritto nella prima parte.

Tuttavia, è anche possibile recuperare materiale più interessante da un pacchetto che gestisce l'integrazione dei modelli con TB. Per esempio:

Ad esempio, con symfony 1.4 (lo so questo post parla di SF2), si dispone di un plugin che può aggiungere un nuovo tema per il generatore di admin per avere una bella integrazione TB al posto del default. So che non esiste un generatore di admin ufficiale in sf2 ma può essere usato per CRUD.

Un'altra cosa che può essere vera a partire da symfony 1.0, non tutti i bundle sono molto ben implementati, sviluppati, mantenuti, testati, documentati, ecc. eccetera ..)). Quindi ti consiglio di testarli tutti, vedere se uno di essi è adatto alle tue necessità, altrimenti prendi ispirazione per migliorarli (sono quasi tutti su GitHub) o costruisci il tuo.

E a proposito, ci sono many Bundle ..

7

Ci sono 2 grandi fasci che fornisce l'integrazione con Twitter Bootstrap symfony:

A mio parere:

MopaBootstrapBundle è più complesso, offre la propria struttura di layout (di causa si può creare il proprio troppo) e sacco di funzionalità definita, Assetic in più, forme e altri integrazione

BcBootstrapBundle è più semplice e molto più chiaro si utilizza la propria struttura di layout e c'è un sacco di funzionalità definita, Assetic in più, forme e altri integrazione troppo

uso dont qualsiasi fascio intergtaion è anche un'opzione, ma l'integrazione sciolto con forme, Assetic, meno e così (come @Acyra menzionato nel suo commento)

Preferisco utilizzare BcBootstrapBundle con le sue funzionalità di integrazione extra e utilizzare la mia struttura di layout personalizzata.

1

UPDATE a Symfony e Bootstrap: Symfony sembra sempre un po 'indietro nei dettagli della loro documentazione, ecco un aggiornamento su Symfony. La versione 2.6 e successive ora include l'integrazione di base con Twitter Bootstrap.

http://symfony.com/blog/new-in-symfony-2-6-bootstrap-form-theme

Speriamo che questo consente di risparmiare tempo qualcuno e può farlo funzionare come spiegano nella documentazione Symfony sopra!

+0

ma cosa succede all'interno di pacchetti di terze parti?come Fos UserBundle – Dheeraj

+1

Secondo la documentazione di Symfony, incorporare Bootstrap dovrebbe essere facile come estendere la vista del tema o incorporare uno dei frammenti in questi documenti. Dato che Bootstrap è una libreria principalmente di JS e CSS, qualsiasi bundle dovrebbe essere in grado di accedere a queste risorse. "Il nuovo tema del modulo è disponibile in due versioni: layout normale e layout orizzontale. Per applicare questo nuovo tema a tutte le forme dell'applicazione, utilizzare la seguente configurazione: {% form_theme form 'bootstrap_3_layout.html.twig'% } {# {% form_theme form 'bootstrap_3_horizontal_layout.html.twig'%} #} " –