---
title: "Extension folder Classes for PHP classes"
manual: "TYPO3 Explained"
version: "12.4"
permalink: "https://docs.typo3.org/permalink/t3coreapi:extension-classes@12.4"
source: "ExtensionArchitecture/FileStructure/Classes/Index.rst"
rendered: "2026-10-21T15:29:37+00:00"
---

> [!WARNING]
> **Attention**
>
> TYPO3 v12 has reached end-of-life as of April 30th 2026 and
> is no longer being maintained. Use the version switcher on the top
> left of this page to select documentation for a supported version of TYPO3.
>
> Need more time before upgrading?
> You can purchase Extended Long Term Support (ELTS) for TYPO3 v12 here:
> [TYPO3 ELTS](https://typo3.com/services/extended-support-elts).

# Extension folder `Classes` for PHP classes {#extension-classes}

Contains all PHP classes. One class per file. Should have sub folders like
`Controller/`, `Domain/`, `Service/` or `View/`.
For more details on class file namings and PHP namespaces, see chapter
[namespaces](https://docs.typo3.org/permalink/t3coreapi:namespaces@12.4).

Typical PHP classes in this folder:

-   **SomeController.php**

    -   *Scope:* extension
    -   *Path (Composer):* packages/my_extension/Classes/Controller/SomeController.php
    -   *Path (Classic):* typo3conf/ext/my_extension/Classes/Controller/SomeController.php

    Contains MVC Controller classes. In Extbase extensions the classes inherit
    from `\TYPO3\CMS\Extbase\Mvc\Controller\ActionController`.

    See also chapter [Extbase Controller](https://docs.typo3.org/permalink/t3coreapi:extbase-controller@12.4).

-   **Something.php**

    -   *Scope:* extension
    -   *Path (Composer):* packages/my_extension/Classes/Domain/Model/Something.php
    -   *Path (Classic):* typo3conf/ext/my_extension/Classes/Domain/Model/Something.php

    Contains MVC Domain model classes. In Extbase they inherit from
    `\TYPO3\CMS\Extbase\DomainObject\AbstractEntity`. See also
    [Extbase Model](https://docs.typo3.org/permalink/t3coreapi:extbase-model@12.4).

-   **SomethingRepository.php**

    -   *Scope:* extension
    -   *Path (Composer):* packages/my_extension/Classes/Domain/Repository/SomethingRepository.php
    -   *Path (Classic):* typo3conf/ext/my_extension/Classes/Domain/Repository/SomethingRepository.php

    Contains data repository classes. In Extbase a repository inherits from
    `\TYPO3\CMS\Extbase\Persistence\Repository`. See also
    [Extbase Repository](https://docs.typo3.org/permalink/t3coreapi:extbase-repository@12.4).

-   **MyViewHelper.php**

    -   *Scope:* extension
    -   *Path (Composer):* packages/my_extension/Classes/ViewHelpers/MyViewHelper.php
    -   *Path (Classic):* typo3conf/ext/my_extension/Classes/ViewHelpers/MyViewHelper.php

    Helper classes used in Fluid templates. See also
    [Developing a custom ViewHelper](https://docs.typo3.org/permalink/t3coreapi:fluid-custom-viewhelper@12.4).
