WARNING This extension is obsolete and will not be updated anymore. You are encouranged to use Extbase and TYPO3 >= 6.2.
This is a TYPO3 "simplemvc" extension. It adds a simple high performance MVC framework to TYPO3.
The extension allows you to have a full MVC stack without using any heavy overheads or obsolete methods. The goals of this project are:
There are three main components:
Controllers handle actions. Actions are methods inside the controller that look like indexAction
(the default action if no parameters are given) or formAction
. Actions are passed as parameters to the controller.
Controllers contain many helper methods to get data from the configuration, use language labels, handle ReCaptcha or CSRF protection.
Models contain various predefined methods such as getId
or save
to manipulate models. There is no separate database handler or model repository because those components do not fit into the MVC model. So the model is responsible for loading and saving data. It knows when to insert or update records.
Models do not require to define properties or methods to fetch data, though the programmer can define some methods. Normally $model->getMyField()
or $model->setMyField()
will magically get and set the my_field
for you.
Models can handle certain relations and return instances of other models. This requires minimal configuration in the model class.
Views render the content. It is up to the view how to render the content.
The extension exists in two main branches. Branch _TYPO34x is mature and used in production on some high load TYPO3 web sites. Branch master is currently in development and it is compatible with TYPO3 version 6.x. Most of the code in the master branch is a simple backport from the TYPO3_4x branch.
There are plans to extend the framework with certain features:
No relation whatsoever.
The extension is created and developed by Dmitry Dulepov with the help of contributors. Current contributor list includes:
Contributions are welcome as pull requests. However, please, keep separate commits for each of your changes and make separate pull requests for each of them.
Thank you!