Skip to content

Repository presents Symfony project with multiple kernel approach.

Notifications You must be signed in to change notification settings

partikus/symfony-multiple-kernels

Repository files navigation

Symfony Multiple Kernels

Repository presents Symfony project with multiple kernel approach.

Multiple Kernels

Symfony Multiple Kernels allows you create many independent Kernels. Thanks to that you can: manage the bundles you use and separate configuration for every kernel.

Introduction

Let's assume your project has two parts:

  • api
  • admin

And just only for admin version you need to use Twig which is useless for api part. To achieve this you have to create two instances of AppKernel:

Those two classes extend from AppKernel. This way you can get separate bundle list for each kernel.

Configs, Sessions, Caches & Logs

To separate configuration, sessions, caches and logs you need overwrite AppKernel.php methods;

New directory structure

app

app/
├── .htaccess
├── AdminKernel.php
├── ApiKernel.php
├── AppCache.php
├── AppKernel.php
├── KernelFactory.php
├── Resources
│   └── views
├── autoload.php
└── config
    ├── admin
    └── api

cache

var/cache/
├── .gitkeep
├── admin
│   └── dev
└── api
    └── dev

sessions

var/sessions/
├── .gitkeep
├── admin
│   └── dev
└── api
    └── dev

logs

var/logs
├── .gitkeep
├── admin
│   ├── dev.log
│   └── prod.log
└── api
    ├── dev.log
    └── prod.log

Multiple parameters.yml

Separate parameters require custom parameters builder, and replacement in composer.json.

Switch between Multiple App Kernels

This action can be handle by exporting APP_NAME env like SYMFONY_ENV or by adding -a admin or --app-name=admin command's options. e.g. bin/console --app-name=admin

About

Repository presents Symfony project with multiple kernel approach.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published