TYPO3 v9 has reached its end-of-life September 30th, 2021 and is not maintained by the community anymore. Looking for a stable version? Use the version switch on the top left.
You can order Extended Long Term Support (ELTS) here: TYPO3 ELTS.
About This Manual¶
TYPO3 is known for its extensibility. To really benefit from this power, a complete documentation is needed: "TYPO3 Explained" aims to provide such information to everyone. Not all areas are covered with the same amount of detail, but at least some pointers are provided.
The document does not contain any significant information about the frontend of TYPO3. Creating templates, setting up TypoScript objects etc. is not the scope of the document, it addresses the backend and management part of the core only.
The TYPO3 Documentation Team hopes that this document will form a complete picture of the TYPO3 Core architecture. It will hopefully be the knowledge base of choice in your work with TYPO3.
This document is intended to be a reference for TYPO3 CMS developers and partially for integrators. The document explains all major parts of TYPO3 and the concepts. Some chapters presumes knowledge in the technical end: PHP, MySQL, Unix etc, depending on the specific chapter.
The goal is to take you "under the hood" of TYPO3 CMS. To make the principles and opportunities clear and less mysterious. To educate you to help continue the development of TYPO3 along the already established lines so we will have a consistent CMS application in a future as well. And hopefully this teaching on the deep technical level will enable you to educate others higher up in the "hierarchy". Please consider that as well!
Many of the code examples found in this document come from the TYPO3 Core itself.
Quite a few others come from the "styleguide" extension. You can install it, if you want to try out these examples yourself and use them as a basis for your own extensions.
Feedback and Contribute¶
If you find an error in this manual, please be so kind to hit the "Edit me on GitHub" button in the top right corner and submit a pull request via GitHub.
Alternatively you can just report an issue on GitHub.
You can find more about this in Writing Documentation:
Contribute to the TYPO3 documentation : Make a change by editing directly on GitHub and creating a pull request
Workflow #2: "Local editing and rendering with Docker" : If you are experienced with Docker and Git you can edit and render locally.
If you are currently not reading the online version, go to https://docs.typo3.org/typo3cms/CoreApiReference/.
Maintaining high quality documentation requires time and effort and the TYPO3 Documentation Team always appreciates support.
If you want to support us, please join the slack channel #typo3-documentation on Slack (Register for Slack).
And finally, as a last resort, you can get in touch with the documentation team by mail.
This manual was originally written by Kasper Skårhøj. It was further maintained, refreshed and expanded by François Suter.
The first version of the security chapter has been written by Ekkehard Guembel and Michael Hirdes and we would like to thank them for this. Further thanks to the TYPO3 Security Team for their work for the TYPO3 project. A special thank goes to Stefan Esser for his books and articles on PHP security, Jochen Weiland for an initial foundation and Michael Schams for compiling the content of the security chapter and coordinating the collaboration between several teams. He managed the whole process of getting the Security Guide to a high quality.
I want to dedicate this document to the people in the TYPO3 community who have the discipline to do the boring job of writing documentation for their extensions or contribute to the TYPO3 documentation in general. It's great to have good coders, but it's even more important to have coders with character to carry their work through till the end - even when it means spending days writing good documents. Go for completeness!