Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kunstmaan - presentatie_tech

Kunstmaan - presentatie_tech

The more technical revision of the Kunstmaan bundles presentation.

35617c1bde6460e06755ffada7d55ee8?s=128

Bart Van den Brande

August 18, 2015
Tweet

Transcript

  1. Bundle up your cms worries Kunstmaan bundles for Symfony 2

  2. Bart Van den Brande @denbatte

  3. Why Kunstmaan bundles? Some examples Bundles and their functions What’s

    next? Today’s show! 1 3 2 4
  4. Why Kunstmaan bundles? • We needed a new solution for

    our clients • Fast to build, fast to run (~150ms), fl exible • Easy to set up, easy to maintain • Less own code to maintain to fi ght the not invented here syndrome • Standard base to simplify maintenance and to DRY • No longer getting up at all hours because some site had an out-of-memory exception
  5. Zend Framework • ZF1 was old • ZF2 was suffering

    of Perpetual Alpha Release Syndrome • First stable version about 1 year after we needed a solution Symfony 2 • Pretty new but very good • Lots of support Play! framework • Fast • Lightweight • Developer friendly workfl ow • No built in, nor third party localisation options available
  6. Why we chose Symfony 1. Flexible yet stable 2. It

    should work out of the box 3. Multilingual 4. Versioning 5. Proven technology: mysql, php, symfony 2, doctrine ORM 6. Ability to add 3rd party packages
  7. A three tier solution • We started with the Symfony

    standard edition • We used as much community bundles as possible • KnpMenu, Liip imagine, Pagerfanta, FOS User Bundle, CMF Routing, … • If it’s great, use it (community works) • Add cms functionality, admin interface and example frontend through our own bundles
  8. Some examples

  9. None
  10. • Belgium • Netherlands • France • Australia • Canada

    • Czech Republic • New Zealand • Equador • Germany • Tunisia • Lithuania • Austria • Bulgaria • Poland • Belarus • Ukraine • UK • ... We built it, who is using it?
  11. Let’s get technical

  12. Requirements • Basic web stack • Composer • Symfony requirements

    • Npm (frontend requirements) OSX LINUX WINDOWS (thanks to contributors)
  13. Dev tools • Behat and Unit test •  Generatorbundle •

    Gulp out of the box but not required • Front end style guide • Carefully chosen custom events
  14. Kunstmaan generators • Doing the same things over and over…

    • Optimize our workfl ow • Very fl exible: generate and adapt if needed
  15. Installing the Kunstmaan bundles Create frontend assets composer create-project kunstmaan/bundles-standard-edition

    demo app/console kuma:generate:bundle app/console kuma:generate:default-site --demosite app/console doctrine:database:create app/console doctrine:schema:create app/console doctrine:fixtures:load bundle install npm install bower install gulp build app/console assets:install —symlink app/console assetic:dump
  16. Backend interface • Fully responsive • Smooth Google Analythics integration

    • Client friendly
  17. Media library • Consistent media manager • Bulk management •

    Drag and drop support • Update your media in one place • Images • Files • Video • Slides
  18. Generating pages and pageparts • Just entities •  Very easy

    to generate •  Different kinds • Auto generated behat tests
  19. Managing pages • Overview in tree • Powerfull fi ltering

    • Easy add different types (sub)pages • Drag and drop to re-arrange pages
  20. Generating a page app/console kuma:generate:page

  21. Editing a page • Page types • Page type templates

    • Template regions • Region pageparts • ACL’s for permissions • Versioning • SEO • Social media management
  22. Generating a new pagepart app/console kuma:generate:pagepart

  23. Admin lists • CRUD solution • Powerful fi ltering •

    Export functions • Bulk actions
  24. Creating a new adminlist app/console kuma:generate:adminlist app/console kuma:generate:entity

  25. Translations • Multilingual • Inline translations • Import from translation

    fi les • Translatable pages
  26. Search • Automatic indexing • Elasticsearch as backend

  27. What’s next? • Community is important • Speed things up

    even more • Increase number of tests • Further document our workfl ow • Try to increase contributions futher • Expose api’s • Decouple sub bundles
  28. Want to try by yourself? bundles.kunstmaan.be

  29. Questions?