The "Symfony Sonata Edition" distribution
Welcome to the Symfony Sonata Distribution - a fully-functional Symfony2 Sonata application that you can use as the skeleton for your new application.
This distribution exists to save you from repeating all the steps needed to create a basic Sonata app.
This document contains information on how to download, install, and start using Symfony with Sonata. For a more detailed explanation, see the Installation chapter of the Symfony Documentation.
NOTE: For older Symfony versions use the corresponding branch.
- Installing the Sonata Distribution
When it comes to installing the Symfony Sonata Distribution, you have the following options.
As Symfony uses Composer to manage its dependencies, the recommended way to create a new project is to use it.
If you don't have Composer yet, download it following the instructions on http://getcomposer.org/ or just run the following command:
curl -s http://getcomposer.org/installer | php
Then, use the
create-project command to generate a new Symfony Sonata application:
php composer.phar create-project -s dev jmather/symfony-sonata-distribution path/to/install
Composer will install Symfony and all its dependencies under the
To quickly test Symfony Sonata, you can also download an archive of the Sonata Distribution and unpack it somewhere under your web server root directory.
You also need to install all the necessary dependencies. Download composer (see above) and run the following command:
php composer.phar install
- Checking your System Configuration
Before starting coding, make sure that your local system is properly configured for Symfony.
check.php script from the command line:
config.php script from a browser:
If you get any warnings or recommendations, fix them before moving on.
- Set up, initialize and browse the app
Before you can run the server and log in to Sonata you need to create the tables first.
You can either create a handful of users like this (one of the usernames is 'superadmin' with password 'test')
Or you can manually create a user yourself
./app/console fos:user:create username email@example.com password ./app/console fos:user:promote username ROLE_SONATA_ADMIN
./app/console assets:install --symlink --relative web
Congratulations! You're now ready to use Symfony Sonata
Now you can login as user 'superadmin' with password 'test' at
Currently .htaccess is configured to use app_dev.php but not app.php (production - no debug). When you launch your application don't forget to use app.php.
config.php page, click the "Bypass configuration and go to the
Welcome page" link to load up your first Symfony page.
You can also use a web-based configurator by clicking on the "Configure your
Symfony Application online" link of the
To see a real-live Symfony page in action, access the following page:
- Getting started with Symfony
This distribution is meant to be the starting point for your Symfony applications, but it also contains some sample code that you can learn from and play with.
A great way to start learning Symfony is via the Quick Tour, which will take you through all the basic features of Symfony2.
Once you're feeling good, you can move onto reading the official Symfony2 book.
A default bundle,
AcmeDemoBundle, shows you Symfony2 in action. After
playing with it, you can remove it by following these steps:
remove the routing entries referencing AcmeBundle in
remove the AcmeBundle from the registered bundles in
security.firewalls.secured_areaentries in the
security.ymlfile or tweak the security configuration to fit your needs.
The Symfony Sonata Distribution is based on the Symfony Standard Edition. Additionally the following bundles are used to configure a fully functional Sonata application:
SonataCoreBundle - The foundation on which the Sonata bundles rest
SonataAdminBundle - The main bundle needed to create the admin interface
SonataDoctrineORMAdminBundle - Integrates Doctrine ORM project with the admin bundle
FOSUserBundle - Provides user management
SonataUserBundle - Integrates the FOSUserBundle and adds some features
SonataBlockBundle - This bundle provides a block management solution
There are some more bundles necessary to run the application so take a look at the composer.json file.
The Symfony Standard Edition is configured with the following defaults:
Twig is the only configured template engine;
Doctrine ORM/DBAL is configured;
Swiftmailer is configured;
Annotations for everything are enabled.
It comes pre-configured with the following bundles:
FrameworkBundle - The core Symfony framework bundle
SensioFrameworkExtraBundle - Adds several enhancements, including template and routing annotation capability
DoctrineBundle - Adds support for the Doctrine ORM
TwigBundle - Adds support for the Twig templating engine
SecurityBundle - Adds security by integrating Symfony's security component
SwiftmailerBundle - Adds support for Swiftmailer, a library for sending emails
MonologBundle - Adds support for Monolog, a logging library
AsseticBundle - Adds support for Assetic, an asset processing library
JMSSecurityExtraBundle - Allows security to be added via annotations
JMSDiExtraBundle - Adds more powerful dependency injection features
WebProfilerBundle (in dev/test env) - Adds profiling functionality and the web debug toolbar
SensioDistributionBundle (in dev/test env) - Adds functionality for configuring and working with Symfony distributions
SensioGeneratorBundle (in dev/test env) - Adds code generation capabilities
AcmeDemoBundle (in dev/test env) - A demo bundle with some example code