Symfony2 и Twitter Bootstrap
Я только что наткнулся на Twitter Bootstrap сегодня, на SO. У меня снято через некоторые онлайн-уроки, и если мое понимание до сих пор верно, использование TB по существу состоит из:
- Загрузка TB, извлечение файлов CSS и т.д.
- Ссылка на необходимые файлы CSS, JS в вашем HTML-документе и использование определенных шаблонов CSS
Я хочу использовать Twitter Bootstrap с Symfony2. Учитывая мое понимание того, как использовать ТБ, я думал, что было бы относительно легко использовать его с Symfony, поэтому я был очень удивлен, увидев, что есть (фактически несколько) Связок для использования с Symfony.
Итак, мои вопросы:
-
Почему Bundle необходимо использовать Twitter Bootstrap с Symfony2? - не будет ли описанный выше метод не работать (т.е. добавлять ссылки непосредственно в шаблон ветки)?
-
Так как имеется несколько пакетов Bootstrap для Twitter (в конце концов есть 3), что является самым простым в использовании (оно должно быть тем, которое активно поддерживается недавними коммитами, а не мертвым проектом)
Ответы
Ответ 1
Я уверен, что эти Bundles великолепны, но у них есть преимущества и недостатки. Вы также можете использовать TB без Bundle непосредственно в своем проекте. То, что я лично делаю, таким образом:
- git клон TB в сети/(для получения последних обновлений и обновления)
- Я напрямую вызываю bootstrap.less в своих шаблонах ветки с помощью Assetic и менее фильтра. Таким образом, я могу создать свои собственные .less файлы, которые @imports TB и использовать их удивительные миксины, например.
Это действительно мощно. В сочетании с yui-компрессором, когда я использую Assetic в режиме без отладки, все мои js и меньше файлов скомпилированы в один единственный .css-вывод и один единственный выход .js. И вы могли бы воспользоваться всеми функциями TB, в .less, not.css
Ответ 2
Есть 2 основных пакета, которые обеспечивают интеграцию symfony с Twitter Bootstrap:
По-моему:
MopaBootstrapBundle является более сложным, предоставляет собственную структуру компоновки (из-за того, что вы также можете создать свой собственный) и множество определенных функций, дополнительных усложнений, форм и другой интеграции.
BcBootstrapBundle более простой и понятный, вы используете свою собственную структуру макета, и есть много определенных функций, дополнительных усложнений, форм и другой интеграции.
не использовать какой-либо пакет intergtaion также вариант, но вы теряете интеграцию с формами, assetic, less и so (как упоминалось в его комментарии @Acyra)
Я предпочитаю использовать BcBootstrapBundle с его дополнительными функциями интеграции и использовать собственную собственную структуру компоновки.
Ответ 3
Вы можете использовать Twitter Boostrap (TB), чтобы добавить css в свой проект. И тогда у вас есть отправная точка, чтобы сделать что-то более визуальное, чем начинать с нуля. Как вы описали в первой части.
Но вы также можете получить более интересные материалы из Bundle, которые обрабатывают интеграцию шаблонов с TB. Например:
Например, с symfony 1.4 (я знаю, что этот пост говорит о sf2), у вас есть плагин, который может добавить новую тему в генератор администратора, чтобы иметь хорошую интеграцию с TB вместо стандартного. Я знаю, что в sf2 нет официального администратора-генератора, но он может использоваться для CRUD.
Еще одна вещь, которая может быть правдой, поскольку symfony 1.0, не все пакеты очень хорошо реализованы, разработаны, поддерживаются, протестированы, задокументированы и т.д. (кроме сообщений из основной команды (FOS * Bundle, Doctrine, Propel и т.д.)..)). Поэтому я рекомендую вам протестировать их все, посмотреть, соответствует ли один из них вашим потребностям, иначе вдохните их, чтобы улучшить их (они почти все на github) или создать собственный.
И btw, есть много Bundle..
Ответ 4
ОБНОВЛЕНИЕ к Symfony и Bootstrap: Symfony всегда немного отстает в деталях своей документации, поэтому здесь обновляется Symfony. Версия 2.6 и выше теперь включает базовую интеграцию с Twitter Bootstrap.
http://symfony.com/blog/new-in-symfony-2-6-bootstrap-form-theme
Надеюсь, это экономит время и может заставить его работать, как они объясняют в документации Symfony выше!