Translations
Info
All page names need to be in English.
en da  de  fr  it  ja  km  nl  ru  zh

FLOW3 1.0.0 alpha9

From TYPO3Wiki
Jump to: navigation, search
This page belongs to the Flow Team (category Flow)

Release Notes for FLOW3 1.0.0 alpha9

This document contains information about FLOW3 version 1.0.0 alpha 9 which was released on May 28th, 2010.

News

notice - Note

As an alpha release, FLOW3 1.0.0 alpha 9 is naturally not recommended for production use

Full Release Notes at flow.typo3.org

What's New?

For a full list of new features and improvements please see our Changelog below.

Alpha

Again, as an alpha release, FLOW3 1.0.0 alpha 9 is naturally not recommended for production use. Be warned: It's a bit slow, eats more memory than is perhaps healthy and has not yet undergone a full security review. However these issues will be addressed in the upcoming alpha releases and we're confident that FLOW3 1.0.0 final will be a rock solid framework which performs well in production environments.

Your Feedback

We want to hear your opinion! What's your experience with this release? What went well, what didn't? What features are you missing? Join our discussions in the mailing list, IRC channel and twitter ... Check out http://flow.typo3.org/get-involved/ for ways to get involved and get in touch. Get into the FLOW3! - Your FLOW3 Core Team

Download

http://flow.typo3.org/download/

MD5 checksums can be found on the download page.

Upgrading

Some changes in the persistence layer make a change to the underlying database structure necessary. It comes down to a simple statement applied to Objects.db:

ALTER TABLE "properties_data" ADD COLUMN "array" CHAR(24)

One way to do this is a simple

sqlite3 Data/Persistent/Objects.db 'ALTER TABLE "properties_data" ADD COLUMN "array" CHAR(24)'

on the command line on the FLOW3 root directory. If you use another database than the default SQLite Objects.db, you must apply this change accordingly!

For those using external tools to run the unit tests (e.g. NetBeans) take note of the fact that we removed the PHPUnit bootstrap script. Use the scripts in the distribution's build system instead!

Changelog

Changes that (may) require end-user code adjustments

  • The low-level data structure for persistence was changed, adjust the database as described above!
  • The TemplateView in Fluid now expects all template files to be UpperCamelCase as this is the general convention for filenames in FLOW3. Make sure to update the case of your template filenames!
  • The Bootstrap will now accept only "Production" or "Development" as valid contexts because this is how we currently use FLOW3.
  • If an object on the path given to ObjectAccess::getPropertyPath() is a Closure, it is executed and the result is processed further. This means it is currently NOT possible to the closure itself, as it is directly executed.
-------------------------------------------------------------------------------
  Fluid
-------------------------------------------------------------------------------

[TASK]
(View) The TemplateView now expects all template files to be UpperCamelCase as this is the general convention for filenames in FLOW3. Make sure to update the case of your template filenames! Resolves #7243 - r4321

[BUGFIX]
(Core) Adjusted call to ObjectAccess::getPropertyPath, adding closure support. Related to r4261 - r4262

[FEATURE]
(Parser) Introduced a RenderingContextAwareInterface which allows objects being rendered by the ObjectAccessorNode to get the current rendering context injected. This is currently used by TypoScript Objects in TYPO3 - r4302


-------------------------------------------------------------------------------
  DocumentationBrowser
-------------------------------------------------------------------------------

[TASK]
Tweaked CSS so double scrollbars are gone, adjusted font sizes; updated instructions in empty.html - r4184


-------------------------------------------------------------------------------
  ExtJS
-------------------------------------------------------------------------------

[TASK]
Updated ExtJS to 3.2.1 - r4268


-------------------------------------------------------------------------------
  FLOW3
-------------------------------------------------------------------------------

[BUGFIX]
Distribution: The Web/index.php used __DIR__, thus breaking our carefully crafted path to a nice error message for PHP < 5.3. Fixes #7426 - r4228
Base Distribution: Fixed bug ##7847 (Missing trailing slash in FLOW3_ROOTPATH causes fatal error) - r4338
(Cache) Fixed bug #7929 leading to entry duplication in Memcached - r4336
(Configuration) The ConfigurationManager now checks if the option "uriPattern" has been set. Fixes #7820 - r4321
(Core) Automatically set context is now checked in Bootstrap, fixes #7598, resolves #7578 - r4263
(MVC) The Router now uses strong comparison for checking the match results of routes. Fixes #7831 - r4321
(Package) Removed leftover use of the \F3\FLOW3\Package\Package::DIRECTORY_TESTS_* constants in PackageManager - r4291
(Persistence) Fixed building of hash for value objects - r4170
(Reflection) ObjectAccess::getPropertyPath now also works with classes implementing ArrayAccess - r4256
(Reflection) Introduced a new parameter for ObjectAccess::getPropertyPath so the caller of the method can decide if closures should be evaluated or not. Related to #7588 and r4256 - r4261
(Reflection) ObjectAccess->getPropertyPath() now correctly processes Closures located in an array or object implementing ArrayAccess - r4277
(Reflection) ObjectAccess->getProperty() now allows numeric indexes and supports \ArrayAccess objects. Resolves #7687 - r4276

[DOCUMENTATION]
Fixed spelling mistake, fixes #7454 - r4320

[FEATURE]
(Configuration) The ConfigurationManager now supports context directories in the FLOW3 package's Configuration directory. This allows us to deliver the FLOW3 distribution (and other distributions) with a virtually empty global Configuration directory. Resolves #7479 - r4229
(Persistence) Implemented nested array support, basics work; relates to #7495, relates to #7496 - r4246
(Reflection) ObjectAccess::getPropertyPath does support Arrays now, resolves #6390, relates to #7203 - r4185
(Reflection) If an object on the path given to ObjectAccess::getPropertyPath() is a Closure, it is executed and the result is processed further. This means it is currently NOT possible to the closure itself, as it is directly executed. Resolves #7588 - r4256
(Validation) Implemented a "label" validator which matches characters you usually would want to allow in labels. Resolves #7474 - r4213

[TASK]
(Core) The bootstrap now omits classes whose name ends with "Exception" when initializing the ReflectionService. Resolves #7688 - r4276
(Core) The Bootstrap will now accept only "Production" or "Development" as valid contexts because this is how we currently use FLOW3. As soon as we really now how we want to support additional contexts, we can make it more flexible again. As a side effect, FLOW3 won't complain about missing context directories in the global Configuration dir - r4231
(Error) The var_dump debugger now displays more information about objects implementing ArrayAccess - r4321
(MVC) The Request object now returns the case sensitive action name, even if it has been set all lowercase by a route. That means that a route http://host/package/mycontroller/myaction will be correctly resolved to myActionAction if \F3\Package\Controller\MyController::myActionAction exists. Addresses #7243 - r4337
(Package) Removed the DIRECTORY_TESTS_* constants from the Package class - r4270
(Persistence) Adjusted the code to take care of removed objects inside arrays and SplObjectStorages, fixes #7567 - r4252
(Persistence) removed getCleanState() from AbstractBackend, it was useless since the dirty checking refactoring, relates to #7567 - r4252
(Utility) Moved vital PHP6 package features to Utility\Unicode, resolves #7480 - r4216

[API]
(MVC) Controller\Argument no longer has setNewValidatorConjunction() - it was unused - r4170
(Object) The Object Manager (and the object containers) now provide a method for retrieving the implementation class name by specifying the object name. Resolves #7960 - r4337


-------------------------------------------------------------------------------
  Testing
-------------------------------------------------------------------------------

[TASK]
Removed the PHPUnit bootstrap script. Use the scripts in the distribution's build system instead - r4220
Removed the support for "integration" and "system" tests, just didn't make sense - r4270

[FEATURE]
Added getAccessibleMockForAbstractClass to our BaseTestCase - r4289

Past Release Notes

If you have skipped one version while upgrading to this version, please make sure to read those ReleaseNotes (see list) also.