What does it do?¶
This package is a simple backport of some aspects of FLOW3. It provides a simplified API to handle Components. Component-Objects marked as 'singleton' are cached. Constructor dependencies are autowired and injected (no setter injection by now).
GimmeFive! is intended to get in touch with some of the great features of FLOW3. It can help to close the gap between today and the day TYPO3 5.0.0 is released.
You can also use GimmeFive! to write code for "real live" extensions as it is planned to get a stable release this summer.
What does it NOT?¶
GimmeFive! is not intended to be a "compatibility mode", a "small version" or even a "replacement" for FLOW3. It utilizes code fragments of FLOW3 but it does not use FLOW3 as an underlying framework.
How to use it?¶
Then install the package "gimmefive" as usually with the Extension Manager. No static templates have to be included. Write your own package considering the TYPO3 4.x constraints described below.You may want to install the example package "MyPackage" following these steps:
- copy the subfolder "mypackage" in the folder "typo3conf/ext/"
- install the package with the Extension Manager
- insert the two static templates
- insert the plugin on a page
If the View says "Hello" to you, everything is in place.
TYPO3 V4 constraints¶
There are some constraints on using the FLOW3 Coding Guide Lines in V4. By now we have to cope with these constraints.
In V4 classes have to be prefixed by 'tx_'. If you want to get a deeper FLOW3-feeling and use 'F3_' as prefix, you have to set
$TYPO3_CONF_VARS[FE][userFuncClassPrefix] = 'F3_';
$TYPO3_CONF_VARS[FE][userFuncClassPrefix] = NULL;
If you can't change this setting, because it is already in use, you have to prefix all the classes called by TYPO3 (formerly known as 'class.tx_myext_pi1.php') with 'tx_'. Inside your Package you have to prefix your files with 'F3_'.
The first method called by the Framework has to be main(). Otherwise it might not be called in some cases.
The configuration in FLOW3 is done in a PHP file. GimmeFive is using TS for that purpose. Have a look at the example package for more information.
The configuration of Components and the settings of the Package should be seperated from each other. This can be solved only using appropriate subfolders in the directory "Configuration" because all TS Setup files have to be named 'setup.txt'.
How to contribute?¶
You have some experiences with OOP, Patterns and Unit Tests? Great! You are welcome as a contributor as there are still some features to be implemented. Use the capabilities of FORGE.