eZ Platform & Community Bundles
About me - Jani Tarvainen
- Working on the web professionally from 2000 in various roles in development, support operations, management and consulting
- By day I help people build the web at eZ Systems
- By night I do things at Malloc for fun/profit
- On Twitter: @velmu
Agenda
- Overview of Symfony / eZ Platform Bundles
- Where we are with eZ Platform Community Bundles
- A look at a few notable Community built eZ Platform bundles
- How to build a community Bundle?
Overview of Symfony /
eZ Platform Bundles
eZ Platform & the Symfony Bundle System
- eZ Platform is built on Symfony the framework
- Symfony uses Bundles as an extension method
- eZ Platform (EE) is completely built as Bundles
- Bundles are great mechanism, but hardly perfect...
Possibilities
- Bundles are first class citizens in Symfony, everything can be overridden
- With eZ Platform Bundles can contain anything, for example:
- Templates
- Static assets
- Field types
- Admin UI extensions
- Integrations
- Authentications...
Annoyances
- Installation procedure not standard, often:
- Install Bundle
- Enable in AppKernel
- Configure
- ???
- Profit
- Template overrides in Symfony are limited in functionality
- There is a learning curve and boilerplate for development
Other notes about Bundles in general
-
A Bundle does not need to be completely original to be worthwhile
- Provide an easy-to-use library integration
- Extend an existing Symfony Bundle
-
Distribution and Installation using Composer
- Distribute via Packagist for discoverability
- Any Git repository will work as well
So... Where we are with eZ Platform Community Bundles?
- The Symfony Bundle mechanism has been proven to be solid
- Most eZ site development largely in Symfony stack for years
- We have a number of significant bundles available for eZ Platform
- Finding eZ Platform specific bundles is somewhat difficult
A look at some community
built eZ Platform bundles
lolatruche/ez-core-extra-bundle
kaliop/ezmigrationbundle
- Enables migration of data structures using YAML, SQL or PHP
-
Allows working with common data such as
- Content types
- Content objects
- Roles and policies
- User groups
- Also allows exports of content types, to make for "content packages"
- https://packagist.org/packages/kaliop/ezmigrationbundle
netgen/tagsbundle
- Adds a field type with query capabilities, etc.
-
Allows managing and searching content using a taxonomy
- Create tag tree structures
- Tag content
- Query content using tags
- An continuation of the widely used eZ Publish eztags extension
- https://packagist.org/packages/netgen/tagsbundle
novactive/ezseobundle
- Enables editors to manage SEO capabilities
-
Adds field type, templates and functionality to enable
- Metadata management (Meta, Facebook, Twitter)...
- Sitemap generation (basic system)
- Robots.txt management configuration
- Google Verification management configuration
- https://packagist.org/packages/novactive/ezseobundle
How to build a Bundle
for the Community
Some guidelines for building a community bundle
My example bundle: janit/ez-amp-bundle