[TYPO3-core] [FYI] Raised Fluid and Extbase versions from 0.9.5 to 0.9.6

Sebastian Kurfürst sebastian at typo3.org
Thu Sep 17 16:05:11 CEST 2009


Hi everybody,

In this FYI, we raise the Extbase / Fluid versions included in TYPO3  
core from 0.9.5 to 0.9.6.
Now comes the beta phase for extbase and fluid as well, meaning that  
the API is quite stable now and we will concentrate on bugfixing.


Despite the small version number change, quite a lot has happened:
- Greatly improved support for backend modules. This is still alpha,  
but works quite well.
- Fixed the severe error with 1:1 relations
- Rewritten ValidatorResolver. Now Validation of arguments actually  
works and should be a lot more reliable than it was before.
- Implemented Flash Messages
- Added many ViewHelpers (Count, Padding, Password Input, Cycle,  
GroupedFor)
- Improved Property Mapper and error messages
- many many bugfixes

The following bugfixes imposed an API change and are NON BACKWARD  
COMPATIBLE:
[!!!][+BUGFIX] Extbase (Domain): Fixed support for usergroups and  
subgroups. Renamed properties subgroup to subgroups and usergroup to  
usergroups as they can hold multiple instances. Added mapping  
configuration. Resolves #4620.
[!!!][+BUGFIX] Extbase (MVC): Now, in case people do not specify an  
@param annotation, they will get an exception instead of Text being  
used.
[!!!][+FEATURE] Fluid (TemplateView): made layoutRootPath and  
partialRootPath configurable. Now templateRootPath defines the path to  
the "Templates" folder. LayoutRootPath & PartialRootPath can be  
specified independently. Related to #3296.

Below, you'll find the whole changelog.

Greets,
Sebastian
PS: Thanks to everybody involved in Extbase and Fluid! It's a lot of  
fun working with you!

Extbase

[+BUGFIX] Extbase (Utility): Fixed TypoScript array conversion by now  
using _typoScriptNodeValue always. Resolves #4300
[~TASK] Fluid (Tests): Renamed "URIBuilder_testcase" to  
"UriBuilder_testcase"
[+FEATURE] Extbase (MVC): Tx_Extbase_MVC_Web_Routing_UriBuilder::reset 
() now returns itself to support method chaining. This resolves #4411
[+FEATURE] Extbase (MVC): Added  
Tx_Extbase_MVC_Web_Routing_UriBuilder::setFormat(). This allows you to  
specify the format of the target (e.g. <f:link.action format="xml" / 
 >). Some smaller tweaks in UriBuilder
[+BUGFIX] Extbase (MVC): format was not reset in  
Tx_Extbase_MVC_Web_Routing_UriBuilder::reset()
[+BUGFIX] Extbase (Property): Fixed the property mapper by backporting  
the FLOW3 changes. Now we support mapping of 1:1 relations as well.  
Resolves #4357.
[+FEATURE] Extbase (Persistence): Implemented a second Lazy Loading  
strategy called "storage". In contrast to the LazyLoadingProxy it is a  
StorageObject which loads its internal storage array lazy. This  
enables the framework to intercept count($propertyValue). Furthermore,  
you don't have to load the real instance inside your domain model  
class. Related to #3596.
[+BUGFIX] Extbase (Persistence): It is now possible to pass an object  
as operand of a comparison.
[+FEATURE] Extbase (MVC): Implemented flash messages.
[+BUGFIX] Extbase (Reflection): Fixed buildClassSchema() to prevent a  
PHP warning.
[~BUGFIX] Extbase (MVC): fixed a typo in reflection service that was  
introduced in r1242 and completely disabled reflection for arguments
[-TASK] Extbase (MVC): Removed check for multiple data types. It makes  
no sense to allow multiple types.
[+BUGFIX] Extbase (Persistence): Fixed a problem with empty  
$fieldValue causing an SQL error.
[!!!][+BUGFIX] Extbase (Domain): Fixed support for usergroups and  
subgroups. Renamed properties subgroup to subgroups and usergroup to  
usergroups as they can hold multiple instances. Added mapping  
configuration. Resolves #4620.
[+FEATURE] Extbase (MVC): Now, non-domain-objects can be mapped inside  
an argument as well. Additionally, improved the exceptions in these  
cases. Related to #4631
[~TASK] Extbase (Domain): Changed property usergroups to usergroup  
(FrontendUser) and sungroups to subgroup (FrontendUserGroup) equal to  
the field names in the database (to avoid confusion).
[+TASK] Extbase: The Configuration Manager is now stored in a static  
class member variable and can be retrieved by  
Tx_Extbase_Dispatcher::getConfigurationManager() (not an API function!).
[+BUGFIX] Extbase (Persistence): Fixed sorting of m:m relations  
(sorting and sorting_foreign fields in the relation table). Resolves  
#4470.
[+FEATURE] Extbase (Configuration): Configuration is available in  
Backend modules now! Depending on TYPO3_MODE the dispatcher now  
creates an instance of Frontend- or BackendConfigurationManager.  
TypoScriptSource has been adjusted to support Backend mode. This  
resolves #4418
[~TASK] Extbase (Configuration): Moved Configuration Source Interface  
from Classes/Configuration to Classes/Configuration/Source
[+TASK] Extbase (MVC): AbstractController::redirectToURI() prepends  
'typo3/' to the absolute URI when in Backend mode
[+FEATURE] Extbase (MVC): added a call to t3lib_div::getFileAbsFileName 
() for templateRootPath to allow notations like "EXT:extension/path"  
and to validate the template path
[+FEATURE] Extbase (MVC): settings are now assigned to the view in  
AbstractController::resolveView. Now settings are available in your  
template as {settings}!
[+FEATURE] Extbase (MVC): UriBuilder can now create absolute URIs in  
Backend mode too
[+BUGFIX] Extbase (Persistence): added t3lib_BEfunc::deleteClause()  
call to enableFieldsStatement in Backend mode. Otherwise deleted  
records would be selected in BE
Renamed reflection cache table to "tx_extbase_cache_reflection" to fit  
conventions
[+BUGFIX] Extbase (Persistence): Removed call to undefined method  
Tx_Extbase_Persistence_Query::getSource(). Thanks to Nikolas  
Hagelstein. Resolves #4642.
[+BUGFIX] Extbase (Configuration): Fixed the configuration manager so  
that the storage PID can be set from the plugins "Startingpoint"  
selector.
[!!!][~FEATURE] Extbase (MVC): Improved the way flash messages are  
handled. Now there is a separate "FlashMessages" object which  
encapsulates handling the flash messages. This removes $this- 
 >pushFlashMessage and $this->popFlashMessages inside the Controller  
and {flashMessages} inside Fluid Template. PLEASE UPGRADE by replacing  
"$this->pushFlashMessage(" with "$this->flashMessages->add(" inside  
your Controllers, and use <f:renderFlashMessages /> instead of the  
custom for loop inside your templates. Note: You can set a custom CSS  
class for outputting flash messages by using <f:renderFlashMessages  
class="..." /> inside your templates. Related to #4638.
[+BUGFIX] Extbase (MVC): Fixed instanciation of Reflection Service  
(instanciated twice).
[+BUGFIX] Extbase (Persistence): Fixed wrong variable name ($uid ->  
$identifier).
[+TASK] Extbase (Persistence): Implemented a first level cache to  
reduce number of calls to the storage backend (in the Repository).
[+TASK] Extbase: Minor cleanups.
[+BUGFIX] Extbase (Persistence): The function in_array is now used to  
determine which objects of an aggregate were removed as array_diff  
tries to convert objects to strings. Resolves #4655.
[~BUGFIX] Extbase (Persistence): Reverted the method to count elements  
of a comma separated list relation because it ignores hidden elements.  
Related to #3596, #4669, #4635.
[~TASK] Extbase: Changed status from alpha to beta. Extbase is now  
attached to category "misc".
[+FEATURE] Extbase (MVC): made layoutRootPath and partialRootPath  
configurable. Now view.templateRootPath defines the path to the  
"Templates" folder. view.layoutRootPath & view.partialRootPath can be  
specified independently. Related to #3296.
[~TASK] Extbase (MVC): Fixed doc comment in UriBuilder
[-API] Extbase (MVC): Removed enableValidation() and disableValidation 
() on the Controller Argument. They are not needed anymore.
[!!!][+BUGFIX] Extbase (MVC): Now, in case people do not specify an  
@param annotation, they will get an exception instead of Text being  
used.
[+BUGFIX] Extbsee (MVC): Cleaned up validator registration in  
ActionController. Now, @dontvalidate annotations only disable the  
model-based validators.
[+BUGFIX] Extbase (Validation): Cleaned up ValidatorResolver. Now,  
Validators which check the data type from the @param annotation are  
also added to the validator chain.
[!!!][+BUGFIX] Extbase (Validation): @param string is now validated as  
string, and not anymore as Text. This fixes numerous bug reports in  
Fluid.



Fluid

[+FEATURE] Fluid (ViewHelpers): added "format" argument to action- and  
page-viewHelpers. Now you can create links like "<f:link.action  
format="xml" />"
[+BUGFIX] Fluid: Fixed fatal error and missing uid to __identifier  
conversion.
[+FEATURE] Fluid (ViewHelpers): Added a simple CountViewHelper.
[+BUGFIX] Fluid (ViewHelpers): Fixed TranslateViewHelper. LLLabels can  
now be overwritten via TS  
(plugin.tx_blogexample.settings._LOCAL_LANG .default.read_more = more).
[+FEATURE] Fluid (ViewHelpers): Added a PaddingViewHelper
[+FEATURE] Fluid (ViewHelpers): Added a RenderFlashMessages ViewHelper
[TASK] Fluid (Core): Added a PaddingViewHelper
[TASK] Fluid (Core): Added an exception if ViewHelpers declare an  
argument multiple times.
[+FEATURE] Fluid (ViewHelpers): Added a Form Password ViewHelper, to  
generate password input boxes. Resolves #4648.
[~TASK] Fluid: tweaked exception that is thrown when trying to iterate  
through non-traversable objects in ForViewHelper
[+FEATURE] Fluid: added CycleViewHelper. Resolves #4458
[+FEATURE] Fluid: added GroupedForViewHelper. Resolves #4460
[+TASK] Fluid: added test case for PaddingViewHelper. Relates to #4459
4207[~TASK] Fluid: made action argument optional in Uri/ 
ActionViewHelper. Relates to #4207.
[!!!][+FEATURE] Fluid (TemplateView): made layoutRootPath and  
partialRootPath configurable. Now templateRootPath defines the path to  
the "Templates" folder. LayoutRootPath & PartialRootPath can be  
specified independently. Related to #3296.

--
Gimme five!



More information about the TYPO3-team-core mailing list