typo3-extension-workshop/Documentation/source/Extension.rst

75 lines
2.6 KiB
ReStructuredText
Raw Normal View History

2018-08-13 12:25:20 +02:00
Extension
=========
2018-08-13 14:16:27 +02:00
First of all we have to understand what an extension is, in the context of TYPO3 CMS.
2018-08-13 12:25:20 +02:00
What is an extension?
---------------------
2018-08-13 14:16:27 +02:00
See :ref:`t3coreapi: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.
2018-11-05 09:20:34 +01:00
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.
2018-08-13 14:16:27 +02:00
2018-11-05 09:20:34 +01:00
Nowadays most installations also have a ``site_`` or ``sitepackage`` extensions, which
2018-08-13 14:16:27 +02:00
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
2018-08-13 14:16:27 +02:00
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.
2018-08-13 12:25:20 +02:00
Structure of an extension
-------------------------
2018-08-13 14:16:27 +02:00
.. code-block:: plain
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 :ref:`t3coreapi:extension-files-locations` in TYPO3 Core API Reference.
2018-08-13 12:25:20 +02:00
Further resources
-----------------
2018-08-13 14:16:27 +02:00
* https://extensions.typo3.org/about-extension-repository/what-are-extensions/
2018-08-13 14:16:27 +02:00
* :ref:`t3coreapi:extension-architecture` in TYPO3 Core API Reference.
* :ref:`t3coreapi:extension-files-locations` in TYPO3 Core API Reference.
* https://docs.typo3.org/typo3cms/ExtbaseFluidBook/Index.html