---
title: "Configuration methods for extensions"
manual: "TYPO3 Explained"
version: "14.3"
permalink: "https://docs.typo3.org/permalink/t3coreapi:extension-configuration@14.3"
source: "ExtensionArchitecture/HowTo/Configuration.rst"
rendered: "2026-10-01T15:20:05+00:00"
---

# Configuration methods for extensions {#extension-configuration}

There are several possibilities to make your extension configurable. From the
various options described here each differs in:

-   the scope to what the configuration applies (extension, pages,
    plugin)
-   the access level required to make the change (editor, admin)

## TypoScript and constants {#extension-configuration-typoscript-constants}

You can define configuration options using TypoScript.
These options can be changed via TypoScript constants and setup in the backend.
The changes apply to the current page and all subpages.

> [!NOTE]
> **See also**
>
> -   [Extbase TypoScript configuration](https://docs.typo3.org/permalink/t3coreapi:extbase-configuration-reference@14.3)
> -   [Constants](https://docs.typo3.org/m/typo3/reference-typoscript/14.3/en-us/UsingSetting/Constants.html#typoscript-syntax-what-are-constants)

## Extension configuration {#extension-configuration-global}

Extension configuration is defined in the file [`ext_conf_template.txt`](../FileStructure/ExtConfTemplate.md#file-extension-ext-conf-template-txt)
using TypoScript constant syntax.

The configuration options you define in this file can be changed in the
backend **System > Settings > Extension Configuration** and is
stored in `config/system/settings.php`.

<!-- TODO: no Markdown rendering for "versionchanged" -->

This module has been moved from Admin tools to
Settings.

Use this file for general options that should be globally applied to
the extension.

> [!NOTE]
> **See also**
>
> -   [ext_conf_template.txt](https://docs.typo3.org/permalink/t3coreapi:extension-options@14.3)

## FlexForms {#extension-configuration-flexforms}

[FlexForms](https://docs.typo3.org/permalink/t3coreapi:flexforms) define
forms that can be used by editors to configure plugins and content elements.

In Extbase plugins, settings made in the FlexForm of a plugin
override settings made in the TypoScript configuration of that plugin.

If you want to access a setting via FlexForm in Extbase from your controller via
`$this->settings`, the name of the setting must begin with **settings**,
directly followed by a dot (`.`).

> [!NOTE]
> **See also**
>
> -   [FlexForms](https://docs.typo3.org/permalink/t3coreapi:flexforms)

## Access settings {#extension-configuration-settings}

The settings can be read using `$this->settings` in an
Extbase controller action and via `{settings}` within Fluid.

### Example: access settings in an Extbase controller {#extension-configuration-settings-example-access-settings}

**Class MyVendor\\MyExtension\\Controller\\PostController**

```php
<?php

declare(strict_types=1);

namespace MyVendor\MyExtension\Controller;

use MyVendor\MyExtension\Domain\Repository\BlogRepository;
use Psr\Http\Message\ResponseInterface;
use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;

class PostController extends ActionController
{
  public function __construct(BlogRepository $blogRepository) {}

  public function displayRssListAction(): ResponseInterface
  {
    $defaultBlog = $this->settings['defaultBlog'] ?? 0;
    if ($defaultBlog > 0) {
      $blog = $this->blogRepository->findByUid((int)$defaultBlog);
    } else {
      $blog = $this->blogRepository->findAll()->getFirst();
    }
    $this->view->assign('blog', $blog);
    return $this->responseFactory->createResponse()
        ->withHeader('Content-Type', 'text/xml; charset=utf-8')
        ->withBody($this->streamFactory->createStream($this->view->render()));
  }
}

```

## YAML {#extension-configuration-yaml}

Some extensions offer configuration in the format YAML, see
[YAML](https://docs.typo3.org/permalink/t3coreapi:config-overview-yaml@14.3).

There is a [YamlFileLoader](https://docs.typo3.org/permalink/t3coreapi:yamlfileloader@14.3) which can be used to load YAML
files.
