A lot has happened since the first public release of the Kunstmaan Bundles early 2013. We have built quite a few challenging new projects using these bundles (for those not under NDA, check the Showcase section), Symfony itself went through several major releases, and we have spent a lot of resources on improving and streamlining the bundles and the developer workflow with the bundles.

Today I want to announce our next big iteration of the bundles, version 2.3. This release is the result of six months of hard work by over 20 contributers who've managed to do more than 5000 contributions. It's a fair assumption to state that no line in these bundes remained untouched. Let me highlight some of these improvements:

Symfony 2.3 support and a new install procedure

Let's start off with the full support for Symfony 2.3. This LTS release of Symfony is a major milestone and if you start a new content management project, you want to use the latest, greatest and most stable version available. So, all bundles have been updated, tested and are running in our own production environments on Symfony 2.3.

We also updated our install procedure. Following the example of Symfony and Sylius, we created a standard edition distribution. This means starting a new website is nothing more than running:

php composer.phar create-project kunstmaan/bundles-standard-edition path/to/install -s dev

For a complete guide to setting up a CMS website, follow our new getting started guide.

Page templates combined with PageType and PagePart Generators

In recent months we extended our page composition system to allow the use of templates to set out regions or sections in your page. In these sections you can then add pageparts to fill in the content. These templates are set up using small YAML files like so:

name: "Home page"
rows:
    - regions:
        - { name: "slider", span: 12 }
    - regions:
        - { name: "situatie", span: 9 }
        - { name: "situatie_sidebar", span: 3 }
    - regions:
        - { name: "status", span: 9 }
        - { name: "status_sidebar", span: 3 }
    - regions: 
        - { name: "plannen", span: 12 }
    - regions:
        - { name: "omschrijving", span: 12 }
    - regions:
        - { name: "contact", span: 12 }
    - regions:
        - { name: "ligging", span: 12 }
template: "KunstmaanWebsiteBundle::Pages\\HomePage\\pagetemplate.html.twig"

Great, but even better are the additions we made to the GeneratorBundle. While the generator was capable of generating the default website setup, just creating new pagetypes and pageparts was manual copy paste work. Since the creation of the new PageTypeGenerator and PagePartGenerator, that manual work is history. Creating them is nothing more than executing:

app/console kuma:generate:page
app/console kuma:generate:pagepart
app/console doctrine:schema:update --force # Update the database (or use a migration)

In an upcoming post we will go in further detail on these generators. For now, please refer to the documentation.

Article and Search bundles and generators

Furthermore we created a new ArticleBundle. While normal pages are managed in a tree structure, there are content types that are not suitable for a tree. News articles, FAQ sections, etc. The ArticleBundle exists exactly for these sections. We also redid our entire SearchBundle. Still on top of ElasticSearch, but using a new intermediate layer and fully integrated in all components of the CMS. Both bundles have their generators so you can get started right away.

app/console kuma:generate:article
app/console kuma:generate:searchpage

Improving the frontend developer workflow

While Symfony bundles and projects usually focus most of their attention on the PHP side of development, we felt the need to improve the integration between frontend development and the bundles. We did this by adding Bower as a frontend dependency manager, combined with fully integrated Grunt tasks and a LiveReloadBundle. This way developing the user interface of your CMS is a much smoother process than it was before. In an upcoming post we will go in further detail on these new tools.

A new default theme

Previous iterations did not have a "real" frontend look and feel applied. We did this because every frontend we build is completely tailored to the specific customer. But, it does take away some of the flair when looking at a demo site, and fails to help you along if you would start a project of your own. So we remedied this by creating a new, "flat" interface that still is very light, completely removable, but looks great and can serve as a basis for your own theme. A picture says more than a thousand words, so here goes:

Check it out further on our demo site.

Conclusion

These new features, combined with hundreds of smaller ones and bugfixes, allow you to build CMS-based websites at an incredible speed. With these changes we have effectively halved the time we spend on the routine tasks of building a website.

I hope you also enjoy building sites with the Kunstmaan Bundles, and if you have questions, remarks or issues, please don't hesitate to contact us