, (*1)
Symfony micro-framework
Use Symfony as a microframework., (*2)
Installation
Create a new project with Composer., (*3)
composer create-project ikoene/symfony-micro
MicroKernelTrait
The MicroKernelTrait allows you to create a fully-functional Symfony application in as little as one file. It allows you to start with a tiny application, and then add features and structure as you need to. Its goal to give you the power to choose your bundles and structure. Since you're only enabling features and bundles you're actually going to use, your application gets a performance boost in comparison with using the Symfony full-stack framework., (*4)
Bundles
These bundles are registered in the MicroKernel:, (*5)
While you could argue what exactly should and should not be included in a microframework, I found myself always using these bundles. So they're enabled by default. Don't want to use Twig as your template engine? Remove it in the MicroKernel., (*6)
When working in a dev or test environment, the MicroKernel also registers the necesarry bundles to be able to debug your project:, (*7)
Usage
Development
Build your application in the AppBundle. You're free to structure your application as you want, but following the typical Symfony bundle structure has it's advantages. For one, it would be easier to migrate to a full-stack Symfony project if your application grows too big., (*8)
But, as I said, the choice is yours., (*9)
Register bundles
Missing some features? Register your bundles in the MicroKernel:, (*10)
...
$bundles = array(
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
new Symfony\Bundle\TwigBundle\TwigBundle(),
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
new AppBundle\AppBundle(),
);
...
Console
While this is a microframework, chances are you'll still need the console. Use it like this:, (*11)
./console
PHPUnit Testing
Run all tests with this command:, (*12)
bin/phpunit -c .
Additional info
Building your own Framework with the MicroKernelTrait, (*13)