Symfony
sponsored by SensioLabs
Menu
  • About
  • Documentation
  • Screencasts
  • Cloud
  • Certification
  • Community
  • Businesses
  • News
  • Download
  1. Home
  2. Documentation
  3. Reference
  4. Configuring in the Kernel
  • Documentation
  • Book
  • Reference
  • Bundles
  • Cloud
Search by Algolia

Table of Contents

  • Configuration
    • Charset
    • Kernel Name
    • Project Directory
    • Cache Directory
    • Log Directory

Configuring in the Kernel

Edit this page

Warning: You are browsing the documentation for Symfony 4.0, which is no longer maintained.

Read the updated version of this page for Symfony 6.2 (the current stable version).

Configuring in the Kernel

Some configuration can be done on the kernel class itself (located by default at src/Kernel.php). You can do this by overriding specific methods in the parent Kernel class.

Configuration

  • Charset
  • Kernel Name
  • Project Directory
  • Cache Directory
  • Log Directory

Charset

type: string default: UTF-8

This returns the charset that is used in the application. To change it, override the getCharset() method and return another charset, for instance:

1
2
3
4
5
6
7
8
9
10
11
// src/Kernel.php
use Symfony\Component\HttpKernel\Kernel as BaseKernel;
// ...

class Kernel extends BaseKernel
{
    public function getCharset()
    {
        return 'ISO-8859-1';
    }
}

Kernel Name

type: string default: src (i.e. the directory name holding the kernel class)

To change this setting, override the getName() method. Alternatively, move your kernel into a different directory. For example, if you moved the kernel into a foo/ directory (instead of src/), the kernel name will be foo.

The name of the kernel isn't usually directly important - it's used in the generation of cache files - and you probably will only change it when using applications with multiple kernels.

Project Directory

type: string default: the directory of the project composer.json

This returns the root directory of your Symfony project. It's calculated as the directory where the main composer.json file is stored.

If for some reason the composer.json file is not stored at the root of your project, you can override the getProjectDir() method to return the right project directory:

1
2
3
4
5
6
7
8
9
10
11
12
13
// src/Kernel.php
use Symfony\Component\HttpKernel\Kernel as BaseKernel;
// ...

class Kernel extends BaseKernel
{
    // ...

    public function getProjectDir()
    {
        return realpath(__DIR__.'/../');
    }
}

Cache Directory

type: string default: $this->rootDir/cache/$this->environment

This returns the path to the cache directory. To change it, override the getCacheDir() method. Read "How to Override Symfony's default Directory Structure" for more information.

Log Directory

type: string default: $this->rootDir/log

This returns the path to the log directory. To change it, override the getLogDir() method. Read "How to Override Symfony's default Directory Structure" for more information.

This work, including the code samples, is licensed under a Creative Commons BY-SA 3.0 license.
We stand with Ukraine.
Version:
The life jacket for your team and your project

The life jacket for your team and your project

Measure & Improve Symfony Code Performance

Measure & Improve Symfony Code Performance

↓ Our footer now uses the colors of the Ukrainian flag because Symfony stands with the people of Ukraine.

Avatar of Stefan Kruppa, a Symfony contributor

Thanks Stefan Kruppa for being a Symfony contributor

4 commits • 32 lines changed

View all contributors that help us make Symfony

Become a Symfony contributor

Be an active part of the community and contribute ideas, code and bug fixes. Both experts and newcomers are welcome.

Learn how to contribute

Symfony™ is a trademark of Symfony SAS. All rights reserved.

  • What is Symfony?
    • Symfony at a Glance
    • Symfony Components
    • Case Studies
    • Symfony Releases
    • Security Policy
    • Logo & Screenshots
    • Trademark & Licenses
    • symfony1 Legacy
  • Learn Symfony
    • Symfony Docs
    • Symfony Book
    • Reference
    • Bundles
    • Best Practices
    • Training
    • eLearning Platform
    • Certification
  • Screencasts
    • Learn Symfony
    • Learn PHP
    • Learn JavaScript
    • Learn Drupal
    • Learn RESTful APIs
  • Community
    • SymfonyConnect
    • Support
    • How to be Involved
    • Code of Conduct
    • Events & Meetups
    • Projects using Symfony
    • Downloads Stats
    • Contributors
    • Backers
  • Blog
    • Events & Meetups
    • A week of symfony
    • Case studies
    • Cloud
    • Community
    • Conferences
    • Diversity
    • Documentation
    • Living on the edge
    • Releases
    • Security Advisories
    • SymfonyInsight
    • Twig
    • SensioLabs
  • Services
    • SensioLabs services
    • Train developers
    • Manage your project quality
    • Improve your project performance
    • Host Symfony projects
    Deployed on
Follow Symfony
Search by Algolia