[TYPO3-core] FYI: Raised Extbase and Fluid Version from 844 to 1181.
Sebastian Kurfürst
sebastian at typo3.org
Tue Sep 1 09:21:11 CEST 2009
Hello everybody,
I have just raised the extbase and fluid version from revision 844 to 1181.
This includes a big bunch of changes, including the persistence rewrite,
improved and new typoscript configuration, automatic cache clearing,
layout and partial support, configurable template path (via TS) and a
lot more.
Below is first a list of the most important changes, and then below the
full changelog (long!).
Greets,
Sebastian
********************** short changelog *********************************
* This commit merges the rewrite of the persistence layer back to trunk.
It will probably break your existing installation. Please check out
fluid and blog_example again.
* Change: Using $GLOBALS['EXEC_TIME'] instead of time(); resolves #3782
* Implemented cache clearing by TYPO3s clearCacheCmd.
[!!!][+FEATURE] Extbase (Persistence): Improved handling of PID columns.
There are now only three concepts explaining the mapping of records to
pages. 1) For FETCHING objects, a configurable list of pages is used.
This list is configurable inside the FE plugin options (startingpoint).
If that is empty, fall back to "General record storage page" of the
current page. If empty, fall back to the storage PIDs of the website.
(getStorageSiterootPids). 2) PIDs of UPDATED objects are never changed
by the system. Of course, you can include a "pid" property inside your
domain model and thus change the PID explicitely. 3) The PID of INSERTED
objects is determined by a TypoScript setting:
[extensionConfiguration].classes.MODEL_CLASSNAME.newRecordStoragePid. If
this setting is empty, the first entry of the PID list used for fetching
objects is used. NOTE: It is the user's responsibility that all _added_
records are fetchable as well. THIS CHANGE BREAKS BACKWARDS
COMPATIBILITY: If no storage PID is explicitely defined, the method
"getStorageSiterootPids" is used. (Before, it used the current page.)
[+FEATURE] Extbase (Persistence): Implemented ordering (eg.
$query->setOrderings(array('name' =>
Tx_Extbase_Persistence_QueryInterface::ORDER_DESCENDING));
[~CONF] Extbase: Changed the initialization of the Plugin and Extbase
Settings; These are now initialized in the Dispatcher.
[+FEATURE] Extbase: Added generic Domain Models FrontendUser and
FrontendUserGroup; added Repository for FrontendUser
[+BUGFIX] Extbase (Persistence): Fixed cache clearing. Now it works and
takes pageTSConfig into account.
[!!!] [~TASK] BlogExample (Domain): The directory structure of the
Domain has changed accordting to changes in FLOW3. The Domain folder
holds now different folders for the Model, the Repository, and-if
needed-the Validator, and Service. Please Change your folder structure
AND your class names!
[!!!] [~TASK] Extbase (Domain): The directory structure of the Domain
has changed accordting to changes in FLOW3 (see above). Please Change
your class names!
[FEATURE] Extbase (Persistence): Comma separated lists are now fully
supported to store relations - although this way is deprecated. Use
foreign keys instead.
[!!!][~TASK] Extbase (Persistence): All Query Settings are now stored
inside a QuerySettings object. It is created and injected by the Query
Factory with the default setting. To change the settings, you have to
say $query->getQuerySettings(); an manipulate them before executing the
Query. The API functions are now called setRespectStoragePageState(TRUE)
for PID checking, and setCheckVisibilityState(TRUE) for adding enable
fields. The method names may change in future!
[!!!][+FEATURE] Extbase (Settings): Custom settings now reside in
plugin.tx_extensionnname.settings instead of plugin.tx_extensionname.
THIS IS A BREAKING CHANGE, big impact as every Extension using settings
needs to be adjusted. Resolves #4177
[!!!]?\027[TASK] Extbase (Dispatcher): Renamed
Tx_Extbase_Dispatcher::getSettings() to
Tx_Extbase_Dispatcher::getExtbaseFrameworkConfiguration(). THIS IS A
BREAKING CHANGE, but of a non-public API. Related to #4177
[!!!][~TASK] Extbase (Dispatcher): committed initial version of
BackendDispatcher
[FEATURE] Fluid (TemplateView): Made templateRootPath configurable via
TypoScript "view.templateRootPath". Resolves #3296.
!!! [~TASK] Extbase (MVC): Rewrite of URIBuilder. Renaming to
"UriBuilder" and big restructuruing & refactoring. If you used
UriBuilder directly, please check your code; this is a breaking change.
Otherwise updating should work smoothly. Resolves #4030. Resolves #3981
Fluid:
[+FEATURE] Fluid: Added Layout and Partial support. This adds
<f:render>, <f:layout> and <f:section> as ViewHelpers. See the blog
example for an example.
************************* full changelog ****************************
Extbase:
[+FEAT]: Added TypoScript converter method (to convert from new TS to
classic TS). Fixes #3293.
* This commit merges the rewrite of the persistence layer back to trunk.
It will probably break your existing installation. Please check out
fluid and blog_example again.
* Implemented an Object Manager (a wrapper for t3lib_div::makeInstance())
* !!! Backport of the Query and the Query Object Model from FLOW3.
* !!! Removed Repository->fetch*()
* Splited the functionality of the Object Relational Mapper into the
Persistence Backend, the Data Mapper and the SQL Storage Backend.
* Implemented the Lazy Loading Proxy.
* supported Request types is now Tx_Extbase_MVC_Request instead of
Tx_Extbase_MVC_Web_Request.
* Changed _reconstituteProperty() to _setProperty() (according to FLOW3).
* Added _getProperty() to the Domain Object.
* The Dispatcher now instanciates and uses a PersistenceManager to
commit changes.
* Added TypoScript converter method (to convert from new TS to classic
TS). Fixes #3293.
* Renamed SqlBackend to Typo3DbBackend
* Now using constants in Tx_Extbase_Persistence_PropertyType instead of
Tx_Extbase_Persistence_Mapper_ColumnMap
* Improved conversion from table value to property value
* Persistence_Repository: findByUid() checks now for positive integer
* Fixed: Only Aggregate Roots are now registered as Reconstituted Objects
* !!! Added _isNew() to the Domain Object Interface
* Revision of the Persistence Backend (CRUD operations work now - again)
* Fixed Query Object Model "UpperCase"
* Implemented addRow(), deleteRow() and updateRow()
* Fixed: _memorizeCleanState() now clones a property value if it is an
object
* Argument->findObjectByUid() memorizes now the clean state (todo: check
if the object is an Aggregate Root)
* Removed unnecessary method getRelations()
* Fixed wrong class name of PropertyError; resolves issue #3855
* Fixed typo in Persistence Query; resolves issue #3831
* Changed: Equivalent Value Objects (all properties are equal) are now
persisted only once
* Backport and enhanced several Unit Tests (not finished yet)
* Enhanced Base Test Case
* Changed signature of hasValueObject()
* Changed: hasValueObject() returns the uid of the already persisted
value object - if any
* Fixed: relation tables are now filled with the right values if a value
object already exists in the database
* Changed: The Persistence Manager and the Query Factory are now
"injected" into the Arguments and Argument
* Deleted obsolete files
* Change: Using $GLOBALS['EXEC_TIME'] instead of time(); resolves #3782
* Fixed: back-ported LiteralInterface
* Removed unused class Literal
* Added check for having the same number of $parameters and placeholders
("?") in a statement
* Biggest issue: Objects must be registered manually as reconstituted in
the Persistence Session. I think this should be done by the data mapper.
* Fixed typo in Action Controller; Resolves #3531
* Fixed internal method _memorizeCleanState($propertyName); nothing was
memorized if $property name was set
* Removed call to $GLOBASL['TYPO3_DB']->fullQuoteString() as this should
be the job of the persistence backend
* Fixed Query and Query Object Model Factory (patch contributed by Frans
van der Veen); Resolves #3879
* Removed obsolete commit() method in Session
* Fixed invalid SQL without enableFields; Resolves #3826
* First step taken to implement the parsing of Orderings
* Implemented cache clearing by TYPO3s clearCacheCmd. This is not
particularily fine-grained, but works. references #3421
* Made AbstractEntity have a different compare method inside _isDirty()
which compares objects in-depth, and not just their references.
* Changed Argument: Check for is_object($result) instead of $result !==
NULL prevents fatal error; empty result should be catched anyway
* Change: The database handler is now injected to the Typo3DbBackend
(for better testability)
* bindVariable() uses now a unique variable name; resolves #3885
* Typo3DbBackend: the variable $sql (and its subparts) are now
initialized as arrays (related to #3885 and #3826)
* Typo3DbBackend: Implemented a class variable $useEnableFields (by now
only used for better testability)
* The Persistence Backend will now be injected via setter injection
rather than via constructor injection. The Persistence Manager can be
reached at any "place" via
t3lib_div::makeInstance('Tx_Extbase_Persistence_Manager') after its
first initialization (in the Dispatcher).
* Implemented a static function
Tx_Extbase_Dispatcher::getPersistenceManager()
* Changed Repository to invoke
Tx_Extbase_Dispatcher::getPersistenceManager()
* These changes should enable the Repository to be called from outside
(itemProcFunc); related to #3899
* Implemented the handling of values === NULL in Queries; related to
#3838 (needs feed-back)
* Changed all calls to
t3lib_div::makeInstance('Tx_Extbase_Persistence_Manager') to
Tx_Extbase_Dispatcher::getPersistenceManager()
* Fixed conversion of DateTime objects in Query values
* Fixed "NOT" ( from "(NOT foo='bar')" to "NOT (foor='bar')" )
* Fixed issue that cache is tried to be cleared even if a relation is
changed
[+FEATURE] Extbase (Persistence): Added autopopulation of PID column and
use of selected storage folder. Resolves #3698
[TASK] Extbase (Persistence): Added an exception in case of an SQL error
by the database.
[+BUGFIX] Extbase (Persistence): Only set the PID in case it is not part
of your domain object.
[+BUGFIX] Extbase (AbstractDomainObject): Made Identifier return NULL in
case it is not set yet.
[+FEATURE] Extbase (Persistence): Implemented ordering (eg.
$query->setOrderings(array('name' =>
Tx_Extbase_Persistence_QueryInterface::ORDER_DESCENDING));
[+BUGFIX] Extbase (Persistence): Now, _isDirty() works correctly if
checking a single property only. Fixes #3907.
[+FEATURE] Extbase (Dispatcher): dispatcher::extractStoragePageId() now
takes pages storage_pid into account. Relates to #3698
[+BUGFIX][~API] Extbase (Persistence): Cleaned up implementation of
TYPO3-specific query options, like PID checking or enableFields. CHANGES
API! $this->createQuery(FALSE) is not available anymore inside the
repository. Instead, create the query and call
$query->useStoragePage(FALSE)->... instead. Related to #3698. Related to
#3912.
[+BUGFIX] Extbase (Configuration): Tx_Extbase_Configuration_Manager is
not t3lib_Singleton anymore, as it needs to be Plugin-local. This fixes
a strange problem experienced by Steffen Kamper.
[+BUGFIX][~API]: Extbase (Utility): Fixed caching issue by providing two
methods to register a plugin now:
Tx_Extbase_Utility_Plugin::configureDispatcher() invoked in
ext_localconf.php and Tx_Extbase_Utility_Plugin::registerPlugin()
invoked in ext_tables.php. Thanks to Xavier Persegures who provided the
patch.
[!!! +FEATURE] Extbase (DataMapper, DataMap): Extbase resolves the table
name for a given class name. Extbase searches for configured mappings by
crawling thorough the extended classes. As default, it takes the class
name in lower case as table name. The configuration of the mapping can
be found in EXT:extbase/Configuration/Settings/setup.txt. The place for
the settings (plugin.tx_extbase) is only a preliminary solution. PLEASE
INSERT THE STATIC TEMPLATE!
[~CONF] Extbase: Changed the initialization of the Plugin and Extbase
Settings; These are now initialized in the Dispatcher; The Extbase
settings are now available through Tx_Extbase_Dispatcher::getSettings();
related to #3665
[+FEATURE] Extbase: The data array of the cObj is availabe through the
settings of extbase (this needs further discussion); related to #
[+BUGFIX] Extbase: Fixed FlexFormSettings with section (thanks to
Steffen Kamper); Resolves #3949
[+TASK] Extbase: Moved method postProcessSettings() to the Configuration
Manager and made it static
[+FEATURE] Extbase: Added generic Domain Models FrontendUser and
FrontendUserGroup; added Repository for FrontendUser (not fully
functional by now)
[+BUGFIX] Extbase (Argument): Renamed setNewValidatorChain() to
setNewValidatorConjunction()
[+TASK] Extbase (URIBuilder): Removed unnecessary require_once statements
[~TASK] Extbase: Changed the handling of storagePid; this setting is now
available through the Extbase Settings
Tx_Extbase_Dispatcher::getSettings() (this may change in future);
related to #3698
[!!! ~CONF] Extbase: The default setting for the storagePid is now 0;
related to #3698
[+TASK] Extbase: Moved extractStoragePageId() to the Configuration
Manager and renamed it
[+TASK] Extbase (PersistenceManager): Removed the reference to the
DataMapper
[+FEATURE] Extbase: Implemented limit and offset for the Query object;
resolves #3874
[+BUGFIX] Extbase (Typo3DbBackend: Fixed statement creation of
hasValueObject(); resolves #3939
[!!! ~API] Extbase: Removed Typo3Query and its interface; integrated
methods in Query object (will be integrated in the extbase settings in
the next step)
[+BUGFIX] Extbase (Typo3DbBackend): Fixed issue with question mark in
property; resolves #3943
[+TASK] Extbase: Added Extbase Settings Configuration/Settings/setup.txt
(defines table to object mapping); please include the static template
(only a preliminary solution)
[-TASK] Extbase: Removed Typo3Query files (follow up)
[~CONF] Extbase (Configuration): The configuration is now stored in
ext_typoscript_setup.txt. The TS path is now "config.tx_extbase.". You
don't need to include a static template anymore. But clear your caches,
please.
[+BUGFIX] Extbase (Utility): Fixed a really severe caching issue. The TS
conditions were wrong - mixed up = and :. I'm really happy I've found
this :-)
[+FEATURE] Extbase (MVC): Added automatic form highlighting if there is
an error. Fixes #3861.
[+TASK] Extbase (Property): Updated Property Mapper to latest FLOW3 version.
[+BUGFIX] Extbase (Persistence): Fixed cache clearing. Now it works and
takes pageTSConfig into account.
[+FEATURE] Extbase (Persistence): Implemented support for
mm_opposite_field now. Still needs some testing in the wild. Relates to
#3947.
[!!!] [~TASK] BlogExample (Domain): The directory structure of the
Domain has changed accordting to changes in FLOW3. The Domain folder
holds now different folders for the Model, the Repository, and-if
needed-the Validator, and Service. Please Change your folder structure
AND your class names!
[!!!] [~TASK] Extbase (Domain): The directory structure of the Domain
has changed accordting to changes in FLOW3 (see above). Please Change
your class names!
[FEATURE] Extbase (Domain): Implemented FrontendUserGroup (no comma
separated lists yet, only on usergroup possible)
[+BUGFIX] Extbase (Persistence): Fixed wrong tablenames in *_mm tables.
Thanks to Christian Mueller who provided a patch. Resolves #3974.
[+BUGFIX] Extbase (Persistence): Fixed Query::lessThan,
Query::lessThanOrEqual, Query::greaterThan. Resolves #3960.
[~FEATURE] Extbase (Persistence): Support for mm_opposite_field. Related
to #3947.
[-API] Extbase (DomainModel): Removed getIdentifier() from
AbstractDomainObject.
[-TASK] Extbase (Persistence): Removed unused DataMapperInterface.
[+API] Extbase (Persistence): Re-added possibility to set
"useStoragePageId" in $queryFactory->create($className, $useStoragePageId).
[FEATURE] Extbase (Persistence): Comma separated lists are now fully
supported to store relations - although this way is deprecated. Use
foreign keys instead.
[BUGFIX] Extbase (Persistence): Related objects are now deleted if they
were detached from the parent object (e.g. $blog->removePost($post)).
Still pending: Strategy for recursive deletions.
[BUGFIX] Extbase (Persistence): Adding relation to an ownerless Record
works now. Resolves #4011.
[-TASK] Extbase (Persistence): Removed $useStoragePid from the method
signature of $queryFactory->create($className).
[!!!][~TASK] Extbase (Persistence): All Query Settings are now stored
inside a QuerySettings object. It is created and injected by the Query
Factory with the default setting. To change the settings, you have to
say $query->getQuerySettings(); an manipulate them before executing the
Query. The API functions are now called setRespectStoragePageState(TRUE)
for PID checking, and setCheckVisibilityState(TRUE) for adding enable
fields. The method names may change in future!
[TASK] Extbase (Persistence): Improved parsing of the PID query part.
[TASK] Extbase (MVC): An Object Manager is now injected into the
Abstract Controller (better testability).
[!!!][BUGFIX] Extbase (Domain): Username and password was not set after
passing it to the constructor. CAUTION: Auto-Populating the BlogExample
will add Frontend Users to your installation. Don't use the BlogExample
in productive environments! No username and password will be set.
[TASK] Extbase (Domain): Optional properties are now set to a default value.
[TASK] Extbase (DomainObject): Added an internal method
_getCleanProperties().
[TASK] Extbase (Persistence): The Lazy Loading
Proxy->_loadRealInstance() invokes now
$dataMapper->fetchRelatedObjects(). Removed duplicated code.
[+FEATURE] Extbase (Persistence): Implemented support for MM_table_where.
[~CONFIGURATION] extbase: Changed from "plugin" to "fe" in ext_emconf.php.
[TASK] Extbase: Revised and cleaned up autoloader. Autoloader is now
registered inside the Dispatcher (at construction time). The autoloader
of Extbase is only invoked for extension classes. The core autoloader
takes care of the Extbase and Fluid classes (auto-generated
ext_autoload.php file). Medium performance improvement.
[~TASK] Extbase (Utility): Improved the conversion CamelCase to
under_scored. Implemented Ulility methods. Small performance improvement.
[BUGFIX] Extbase (Persistence): Fixed issue if MM_match_fields was not
set. Checks for array now. Reported by Joerg Schoppet. Resolves #4072.
[TASK] Extbase (Persistence): Cleaned-up the Persistence Backend.
Deleted unused methods deleteRelatedObjects() and
deleteRelationInRelationTable(). They will be re-implemented later on.
[+FEATURE] Extbase (Utility): Adapted the
createAutoloadRegistryForExtension() feature from exdeveval.
[BUGFIX] Extbase (Persistence): TYPO3DbBackend->addEnableFieldsStatement
is now Backend aware (patch provided by Xavier). Resolves #4081.
[!!!][+FEATURE] Extbase (Persistence): Improved handling of PID columns.
There are now only three concepts explaining the mapping of records to
pages. 1) For FETCHING objects, a configurable list of pages is used.
This list is configurable inside the FE plugin options (startingpoint).
If that is empty, fall back to "General record storage page" of the
current page. If empty, fall back to the storage PIDs of the website.
(getStorageSiterootPids). 2) PIDs of UPDATED objects are never changed
by the system. Of course, you can include a "pid" property inside your
domain model and thus change the PID explicitely. 3) The PID of INSERTED
objects is determined by a TypoScript setting:
[extensionConfiguration].classes.MODEL_CLASSNAME.newRecordStoragePid. If
this setting is empty, the first entry of the PID list used for fetching
objects is used. NOTE: It is the user's responsibility that all _added_
records are fetchable as well. THIS CHANGE BREAKS BACKWARDS
COMPATIBILITY: If no storage PID is explicitely defined, the method
"getStorageSiterootPids" is used. (Before, it used the current page.)
[TASK] Extbase (View): Added assign() and assignMultiple() to
AbstractView, as it is in FLOW3
[~BUGFIX] Configuration: Fixed storagePid detection in Configuration
Manager. This fixes #4087
[!!!] [TASK] Extbase (Persistence): Renamed
Persistence_Backend->getUidByObject to getIdentifierByObject to be
compatible with FLOW3 (and to ease backporting). This change is
non-backwards-compatible, but it is unlikely that you use this method in
custom code.
[BUGFIX] use cache table "cache_extbase_reflection" as default for
extbase, make it clearable with "clear all cache" command. Resolves #4086
[BUGFIX] moved cache definition for FE to ext_localconf
[!!!][TASK] Extbase (Persistence): Renamed two QuerySettings: from
"setRespectStoragePageState()" to "setRespectStoragePage()" and from
"setCheckVisibilityState()" to "setRespectEnableFields()". This change
is non-backwards-compatible! Please adjust your repositories accordingly.
[TASK] Extbase: Removed Extbase_Exception and renamed everything to use
Extbase_MVC_Exception instead. This is consistent with FLOW3.
[TASK] Extbase: Removed @internal annotations and started with @api
annotations. This is still work in progress. Related to #3917.
[TASK] Extbase (Persistence): Removed PreparedQuery for now, as it is
not used at all.
[TASK] Extbase (Persistence): Removed work-in-progress TCEMAIN hook as
it was not working reliably anyways.
[TASK] Extbase: Added all @api tags and cleaned up doc comments.
Resolves #3917.
[TASK] Extbase (Documentation): Added preliminary (and really ugly)
script to render API documentation
[TASK] Extbase (Documentation): Added generated API documentation so
people can have a look at them right now. I think we will still move
that API documentation to a different place before final release.
Relates to #3917.
[+BUGFIX] Extbase (Persistence): Fixed a typo in the Typo3QuerySettings.
Thanks to Mathias Gisch for pointing this out! Resolves #4164.
[~BUG] Extbase (Persistence): The findByFooBar maps the property name to
column name (fooBar -> foo_bar) now. Renamed method
DataMapper::convertClassNameToSelectorName to
DataMapper::convertClassNameToTableName(). Added Method
DataMapper::convertPropertyNameToColumnName(). Resolves #4033.
[+FEATURE] Extbase (Persistence): Parameters can be passed separately to
Query::statement($statement, array $parameters, $language) now. This
enables us to build prepared queries in the Storage Backend. Related to
#4163.
[~BUG] Extbase (Validation): Changed TextValidator to allow special
characters and newlines (backported patch from FLOW3). Still not secure
enough! Related to #4111.
[!!!][+FEATURE] Extbase (Settings): Custom settings now reside in
plugin.tx_extensionnname.settings instead of plugin.tx_extensionname.
THIS IS A BREAKING CHANGE, big impact as every Extension using settings
needs to be adjusted. Resolves #4177
[!!!][+FEATURE] Extbase (Settings): Persistence settings now reside in
plugin.tx_extensionnname.persistence instead of tt_content.list.20. ...
THIS IS A BREAKING CHANGE, but of a really new feature. Resolves #4177
[!!!]?\027[TASK] Extbase (Dispatcher): Renamed
Tx_Extbase_Dispatcher::getSettings() to
Tx_Extbase_Dispatcher::getExtbaseFrameworkConfiguration(). THIS IS A
BREAKING CHANGE, but of a non-public API. Related to #4177
[TASK] Extbase (Configuration): Cleaned up configuration manager and
renamed methods there.
[+FEATURE] Extbase (MVC): Added support of @dontvalidate annotations.
Relates to #4178.
[TASK] Extbase (ValidatorResolver): Fixed order of
ConjunctionValidators. Related to #4178
[+FEATURE] Extbase (Repository): Implemented an "Update" method. this is
work in progress. Related to #4178.
[+FEATURE] Extbase (DomainObject): Added _isClone() property on abstract
domain object. Relates to #4178.
[TASK] Extbase (Utility): Extracted cache clearing methods into new
Utility class
[+BUGFIX] Extbase (MVC): The cache is now cleared if ActionController's
errorAction is called. Resolves #4185.
[+BUGFIX] Extbase (Configuration): Cleaned up the ConfigurationManager a
bit. Resolves #4181.
[+BUGFIX] Extbase (AbstractDomainObject): Fixed typo introduced in last
commit.
[+BUGFIX] Extbase (Forms): Added default CSS for displaying wrong form
values
[+FEATURE] Extbase (MVC): Added "absolute" argument to
URIBuilder::URIFor() and URIBuilder::typolinkURI. Relates to #4202.
[+BUGFIX] Extbase (Persistence): For now fixed the RELATION_HAS_ONE, but
acutally this is not yet the correct solution. Related to #4083.
[+BUGFIX] Extbase (MVC): Fixed wrong exception name. Resolves #4200.
[!!!][~TASK] Extbase (Utility): Moved configureDispatcher() and
registerPlugin() from Tx_Extbase_Utility_Plugin to
Tx_Extbase_Utility_Extension. THIS WILL BREAK YOUR EXISTING EXTENSIONS.
Please Rename all occurrences of Tx_Extbase_Utility_Plugin to
Tx_Extbase_Utility_Extension and clear your caches. Resolves #4162.
[!!!][~BUGFIX] Extbase (Persistence): Restructured responsibilities of
Repository and Session. You don't need to register reconstituted, added,
and removed objects in your Repositories anymore. Please remove all
occurrences of
$this->persistenceManager->getSession()->register*Object($object).
Resolves #3916.
[+FEATURE] Extbase (Utility): Added registerModule() to
Tx_Extbase_Utility_Extension. Related to #3995.
[+TASK] Extbase (DomainModel): Added (internal) method _hasProperty() to
AbstractDomainModel.
[~TASK] Extbase (Property): Improved mapping of properties (not finished
yet).
[~BUGFIX] Extbase (MVC): The RequestBuilder now merges $_GET and $_POST
using t3lib_div::_GPmerged(). It expects the $_POST parameter to be
namespaced now. Resolves #3316.
[+FEATURE] Extbase(Reflection): Backported the ClassSchema from FLOW3.
This was necessary to support the Property Mapper.
[!!!][~TASK] Extbase (Dispatcher): committed initial version of
BackendDispatcher
[+BUGFIX] Extbase (Persistence): Check for existing Value Objects
respects now deleted and hidden. Rsolves #4243.
[+BUGFIX] Extbase (Persistence): The properties are now fully quoted
(t3lib_db::fullQuoteStr). This may not work with DBAL, because we do not
pass a table name.
[~BUGFIX] Extbase {Persistence): Added a check if
$columnConfiguration['config'] exits in DataMap:: setRelations().
Related to #4203.
Bugfix: #4252: Tx_Extbase_Utility_Extension::setModuleConfiguration()
expects parameters 3 and 4 to be references but gets values from
t3lib_loadmodules
[!!!][~API] Extbase: Renamed configureDispatcher() to configurePlugin()
in order to distinguish between plugins and modules. Renamed
setModuleConfiguration() to configureModule(). Please update your file
ext_localconf.php! In order to use backend modules you have to apply the
actual patches of #11651 and #11652!
[!!!][~API] Extbase (Utility): Moved all methods to convert TypoScript
array to Utility TypoScript. Renamed postProcessSettions() to
convertTypoScriptArrayToPlainArray() and convertExtbaseToClassicTS() to
convertPlainArrayToTypoScriptArray().
[~TASK] Extbase: Moved folder Scripts to Resources.
[~TASK] Extbase (Utility): Extracted the autoload function to an own
utility class.
[-TASK] Extbase (MVC): Removed unnecessary Standard Controller.
[~TASK] Extbase: Moved methods from Backend Dispatcher to the Dispatcher
and removed the Backend Dispatcher.
[+FEATURE] Extbase (MVC): It is now possible to have different templates
for different formats (".html", ".json"). We do not have an appropriate
$_GET parameter (in combination with RealURL or CoolURI. Relates to #4120.
[+TASK] Extbase (MVC): Added interfaces for Request and Response.
[+BUGFIX] Extbase (Persistence): Fixed a problem with legacy tables
where the foreign_class was not set and therefore no Data Map was found.
Related to #4148.
[+FEATURE] Extbase (MVC): It is now possible to pass a template format
(like html, json, txt or pdf) in the $_GET parameters. Example from the
BlogExample: "&tx_blogexample_pi1[format]=txt". Resolves #4120.
[+BUGFIX] Extbase: Fixed array keys. Thanks to Xavier Perseguers who
provided the patch. Related to #3995.
[+TASK] Extbase (MVC): added initializeView() to ViewInterface, it's
expected in ActionController and unit tests
[~BUGFIX] Extbase (Utility): renamed non-existing variable $file to
$filePath in extractClassNames()
[~BUGFIX] Extbase (Tests): Fixed autoload registering in
Tx_Extbase_Base_testcase
[~BUGFIX] Extbase (Tests): fixed failing unit tests. @Jochen: please
have a look at this, I just did the smallest possible changes to get the
tests "green"
[BUGFIX] Extbase (Reflection): Made class schemas return correct
information. Before, it only worked if the reflection cache was already
filled. Related to #4357.
[FEATURE] Fluid (TemplateView): Made templateRootPath configurable via
TypoScript "view.templateRootPath". Resolves #3296.
[TASK] Extbase (MVC): Removed subextensionName for now. We will
implement this cleanly after 4.3 is out.
Fluid:
[+FIX] (ViewHelpers): Removed trailing whitespace in FormViewHelper,
fixes #3814
* Adjustments to make it work with the new persistence rewrite
[+FEATURE] Fluid (ViewHelpers): Implemented automatic error handling for
forms. Relates to #3861
[+FEATURE] Fluid: Added ext_autoload.php. The core autoloader uses this
file as a registry.
[~TASK] Fluid: Removed @internal annotations and added @api annotations
[~TASK] Fluid: Now, one ViewHelperNode only ever uses one instance of a
ViewHelper
[+BUGFIX] Fluid (View): Refactored TemplateView, which is now
automatically backported to FLOW3
[+FEATURE] Fluid: Added Layout and Partial support. This adds
<f:render>, <f:layout> and <f:section> as ViewHelpers. See the blog
example for an example.
[!!!] [~TASK] Fluid (ViewHelpers): Updated AbstractFormViewHelper and
SelectViewHelper. Everything should still work as expected, but here
there might still be some issues. Please test thoroughly and report any
problems!
[+TASK] Fluid: Fresh backport with updated FluidBackporter from Fluid
package r2990
[~TASK] Fluid (ViewHelpers): FormViewHelper now extends
AbstractFormViewHelper and uses PersistenceManager to render the hidden
identity field. This is work in progress. Extbase needs to implement the
latest Changes to the FLOW3 persistence framework to fix form handling.
Relates to #4170
[TASK] Fluid: added ErrorsViewHelper to autoload list. Removed
ResourceViewHelperTest_testcase - This view helper does not exist for
TYPO3 v4
[TASK] Fluid (ViewHelpers): Updated unit tests. They run green now, as
it's supposed to be.
[+BUGFIX] Fluid (ViewHelpers): Adjusted FormViewHelper to work together
with updated persistence and form resubmission. Related to #4178.
[+FEATURE] Fluid (ViewHelpers): Added "absolute" argument to link.action
and uri.action viewhelpers. Resolves #4202.
[~BUGFIX] Fluid (ViewHelpers): Replaced usage of $GLOBALS['TSFE']->cObj
by t3lib_div::makeInstance('tslib_cObj') in CObjectViewHelper,
HtmlViewHelper and ImageViewHelper. Note: In CropViewHelper &
EmailViewHelper it does no harm to use $GLOBALS['TSFE']->cObj. Thanks
for the patch. Resolves #4063.
[+BUGFIX] Fluid (View): Improved error message in case no layout/partial
was found. Resolves #4204.
[~FEATURE] Fluid (ViewHelpers): Adjusted AbstractFormViewHelper to be
able to namespace arguments. Fixed several Unit Tests. The patch was
provided by Bastian. Thanks a lot! Resolves #3317.
[~TASK] Fluid (ViewHelpers): Follow-up. Added several files.
[+BUGFIX] Fluid (TemplateParser): The View Helper name is now resolved
correctly even if it has more than two levels (like f:foo.bar.baz).
Added Unit Test. Resolves #4231.
[+BUGFIX] Fluid: Added missing reference in ext_autoload.php. Resolves
#4287.
[+FEATURE] Fluid (View): Prepared Fluid to enable 'format' aware
templates (like "show.html" and "show.json"). Related to #4120.
[FEATURE] Fluid (TemplateView): Made templateRootPath configurable.
Related to #3296.
More information about the TYPO3-team-core
mailing list