As Contao itself is just a Symfony bundle that’s loaded to your Symfony application or Contao Managed Edition, writing your own bundle is very similar to writing a regular Symfony bundle. It’s thus very important you read the respective Symfony documentation first.
Copying the excellent documentation of Symfony itself into the Contao documentation doesn’t make much sense thus you’ll learn about the differences between a Symfony bundle and a Contao bundle.
The first and most obvious difference between a Symfony and a Contao bundle is its
type in the
-"type": "symfony-bundle", +"type": "contao-bundle",
The one and only reason as of today is the simple fact that it allows us to distinguish Contao bundles from other
Composer packages on packagist.org. It’s especially useful for the package index of the
Contao Manager where it makes
no sense to show any other packages to the end users.
We recommend you stick to the structure recommended by Symfony in their docs. One thing that will differ are the
Contao specific resources that will go under
Contao specific resources in general are the following folders:
Although you might not need
languages because most of what used to be configured in
has moved to the Symfony Container instead and you may also write your language files using the Symfony Translator.
Also make sure you check out the Contao Skeleton Bundle which may help you to get your foundation right.
If you want to provide integration with the Contao Managed Edition make sure you checkout the documentation on the Contao Manager Plugin.