First of all we have to understand what an extension is, in the context of TYPO3 CMS.
See Extension Architecture in TYPO3 Core API Reference.
TYPO3 is built only with extensions, there is no framework below. All features are assigned to a specific extension. This way it’s possible to build the TYPO3 that fits the project needs.
An extension is something like frontend
or backend
, which provides the TYPO3
frontend or backend. It can also be extbase
which works as an Framework
to build further extensions or fluid
an template engine.
Nowadays most installations also have a site_
or sitepackage
extensions, which
encapsulates the systems configuration and resources like assets and templates. Thus
an TYPO3 extension is the same as an composer package.
In this workshop we will concentrate on a “typical” extension that will provide a plugin and custom record types. This can be installed into any compatible TYPO3 installation. A new record type will be added, which can be edited in the TYPO3 backend. Also a new plugin will be added which can be added as a content element and displayed in frontend.
extension_key
├── Classes
│ ├── Command
│ │ └── ExampleCommandController.php
│ ├── Controller
│ │ └── ExampleController.php
│ └── Domain
│ └── Model
│ └── Example.php
├── composer.json
├── Configuration
│ ├── TCA
│ │ └── Overrides
│ │ └── tt_content.php
│ └── TypoScript
│ ├── constants.typoscript
│ └── setup.typoscript
├── Documentation
├── ext_conf_template.txt
├── ext_emconf.php
├── ext_localconf.php
├── ext_tables.php
├── readme.rst
└── Resources
└── Private
└── Templates
└── Search
└── Search.html
See Files and locations in TYPO3 Core API Reference.