Extbase is a basic framework of PHP classes which can be used for the creation of a TYPO3 extension.
The entire object-oriented framework uses different paradigms and design patterns which have proven their worth in software development:
Domain Driven Design (DDD) takes place in the planning phase of a software project. The focus is on the domain of the application; that is to say upon the objects that need to be reproduced and the technical terms of the "real" world, and not upon the data that needs to be processed. This design method requires a different mentality in the production of object oriented software than that of conventional techniques.
Model View Controller (MVC) is a widely-used design pattern for software. Efforts are made to achieve a clear distinction between the data model (model), presentation (view) and management (controller). The purpose of this approach among others is to increase the reusability of the code, to accelerate and simplify changes as well as to make data output as flexible as possible.
For developers who have up until now programmed their extensions in the "usual" way (by extending the
tslib_pibase class), the extensive conventions regarding directory structure and the naming of classes and data may appear somewhat strange and constricting.
However the advantages will soon become obvious. You are quickly relieved of many tasks and the generated code has a significantly better structure.
Extbase is fully functional from TYPO3 version 4.4 onwards.
A TYPO3 extension that is based on Extbase can be considered as equipped for future TYPO3 versions. The utilised class structure can again be found in the FLOW3 framework, which serves as the foundation for the completely revised TYPO3 version 5 ("Phoenix"). Porting to this new version should therefore be relatively easy to implement.
A new template engine for the output of content and data called Fluid has been developed which can be seamlessly integrated into an Extbase application.
A new and more comfortable Kickstarter for Extbase is already in development.