MopaBootstrapBundle is a collection of code to integrate twitter's bootstrap (http://twitter.github.com/bootstrap/) as easy as possible into your symfony2 (http://www.symfony.com) Project.
The Bootstrap 3 support is currently experimentally working, and we are tring to fix issues asap. Please also try to use it and make PR's!
To use bootstrap 3 in your project add it via composer and let the Bundle detect version etc, automatically. An upgrade to bootstrap 3 should also be as easy as changing your composer.json to use bootstrap 3
{ "require": { "twbs/bootstrap": "v3.0.0" } }
If you want to use bootstrap 2:
{ "require": { "twbs/bootstrap": "v2.3.2" } }
To understand which versions are currently required have a look into BRANCHES.md
The bulk of the documentation is stored in the Resources/doc/index.md
file in this bundle
In any case, if something is not working as expected after a update:
Recent BackwardsCompatibility breaking changes:
- a4b78d5: Added Version Detection for BS2 or BS3
- 5f1200f: Changed the widget_addon form parameter to use type (prepend/append) instead of append (true/false)
To see the bundle, its capabilities and some more doc just have a look on
Additional Resources:
- MopaBootstrapSandboxBundle - Seperate live docs from code
- symfony-bootstrap is also available
Installation instructions are located in the
- Bootstrap Version detection via Composer Brigde
- Twig Extensions and templates for use with symfony2 Form component
- control your form either via the form builder or the template engine
- control nearly every bootstrap2 form feature
- javascript and twig blocks for dynamic collections
- A generic Navbar class to generate your Navbar outside the template
- helpers for dropdowns, seperators, etc.
- A generic Tab class to Manage bootstrap tabbing
- twig templates for KnpPaginatorBundle (https://github.com/knplabs/KnpPaginatorBundle)
- twig templates for CraueFormFlowBundle (https://github.com/craue/CraueFormFlowBundle)
- twig template for KnpMenuBundle (https://github.com/KnpLabs/KnpMenuBundle)
- icon support on menu links
We now officially suport bootstrap3 in our master branch, The default is to determine Version by composer, this means, MopaBootstrapBundle tries to determine which version you have installed, and configures itself to use it. This is done in a compiler pass and stored in local cache. If for any reason this does not wor for you, you might want to set the
We have several files seperated for bs2 and bs3 to be abled to support both e.g. forms:
- https://github.com/phiamo/MopaBootstrapBundle/blob/master/Resources/views/Form/fields_bs_2.html.twig
- https://github.com/phiamo/MopaBootstrapBundle/blob/master/Resources/views/Form/fields_bs_3.html.twig or JS:
- https://github.com/phiamo/MopaBootstrapBundle/blob/master/Resources/public/js/eyecon-bootstrap-datepicker.js
- https://github.com/phiamo/MopaBootstrapBundle/blob/master/Resources/public/js/eyecon-bootstrap-3-datepicker.js
The bs3 feature set is not yet complete, but we hope that it gets soon, with your help! E.g Form have some known issues, JS Collections, etc
To kick start your Navigation, the Navbar component got some face lift. It got even easier to integrate also the dynamic sub navbar you might have seen in the twitter bootstrap docs.
To learn how to use this features read Navbar docs (4-navbar-generation).
Also have a look into the Sandbox
To make your base HTML5 even better and let you use good practices we added to this bundle features from HTML5 BoilerPlate Project. Integration was done using setup pregenerated with support of Initializr. Actually we support HTML5 BoilerPlate v3.0.3 with Modernizr v2.5.3 and Respond.
To learn how to use this features read Initializr docs (50-Initializr.md).
The branching strategy has been adapted to be more flexible:
- The old branch for bootstrap 1.x (v1.x) still exists.
- The v2.0.x (previously v2.x_sf2.0) branch is following Symfony 2.0.x with bootstrap 2.x
- The master branch is following Symfony master with bootstrap 2.x
- The master-crud branch is following Symfony master with bootstrap 2.x but still has the CRUD Generator, which depends on SensioGeneratorBundle
If you use KnpPaginatorBundle with MopaBootstrapBundle, you can translate labels to your language. To do this add new file
Resources/translations/pagination.[YOUR LOCALE CODE].yml
As example you have there Polish translation.
If you want to contribute your code to MopaBootstrapBundle please be sure that your PR's are valid to Symfony2.1 Coding Standards. You can automatically fix your code for that with PHP-CS-Fixer tool.
You can see who already contributed to this project on Contributors page
This bundle is under the MIT license. For more information, see the complete LICENCE file in the bundle.