Task #39352

Refactor t3lib_pageSelect::getRootline

Added by Steffen Ritter 10 months ago. Updated 9 months ago.

Status:Resolved Start date:2012-07-28
Priority:Must have Due date:
Assignee:Steffen Ritter % Done:

100%

Category:Backend API
Target version:6.0.0-pre-beta1
TYPO3 Version:6.0 Complexity:
PHP Version:5.3
Votes: 0

Related issues

related to File Abstraction Layer - Bug #34611: Support for "levelmedia" getText property Rejected 2012-03-06
related to Extbase MVC Framework - Bug #39997: Failing test translateForEmptyStringKeyReturnsNull Resolved 2012-08-20
related to Core - Bug #42029: Rootline relation overlay does not work for translated pages Resolved 2012-10-15
related to Core - Bug #46000: Wrong usage of array_unique() in RootlineUtility.php Resolved 2013-03-04

Associated revisions

Revision aa378e15
Added by Steffen Ritter 10 months ago

[TASK] Refactor t3lib_pageSelect::getRootline

t3lib_pageSelect::getRootline is a function called many
times during frontend rendering and link generation.
The complete levelfield logic (incl. levelmedia) is based
on the result of this function.

The function itself has very fuzzy code, hard to read
conditions an in its current implementation a n² complexity.
Furthermore the current structure allows only very basic
caching, which does not fulfill todays needs.

The refactoring moves the "Rootline" to its own class and
splits the logic in many small chunks and helper functions.
Additionally the get(), and generateRootline() use the
CachingFramework to Cache the rootline.
Ancient "Failure Messages" in Rootline have been migrated
to useful RuntimeExceptions.
In addition as a new feature/bugfix levelfields resolve
relations so that levelmedia works with FAL again.

Change-Id: Ief215400c6552480603038966207fa29a26fe5b1
Releases: 6.0
Resolves: #39352

Revision a7d89431
Added by Steffen Ritter 9 months ago

[TASK] Refactor t3lib_pageSelect::getRootline

t3lib_pageSelect::getRootline is a function called many
times during frontend rendering and link generation.
The complete levelfield logic (incl. levelmedia) is based
on the result of this function.

The function itself has very fuzzy code, hard to read
conditions an in its current implementation a n² complexity.
Furthermore the current structure allows only very basic
caching, which does not fulfill todays needs.

The refactoring moves the "Rootline" to its own class and
splits the logic in many small chunks and helper functions.
Additionally the get(), and generateRootline() use the
CachingFramework to Cache the rootline.
Ancient "Failure Messages" in Rootline have been migrated
to useful RuntimeExceptions.
In addition as a new feature/bugfix levelfields resolve
relations so that levelmedia works with FAL again.

Change-Id: Ief215400c6552480603038966207fa29a26fe5b1
Releases: 6.0
Resolves: #39352
Reviewed-on: http://review.typo3.org/13322
Reviewed-by: Philipp Gampe
Tested-by: Philipp Gampe
Tested-by: Marcel Burkhalter
Reviewed-by: Steffen Gebert
Tested-by: Steffen Gebert

Revision 24588196
Added by Christian Kuhn 9 months ago

[BUGFIX] Failing test translateForEmptyStringKeyReturnsNull()

Since the rootline refactoring a test case fails. Solution is to only
call the rootline in backend mode if page id is not 0. This additionally
saves some cycles in backend context.

Change-Id: I224ae2655b06dfb1f239b06d6ac2cbb89206a7a8
Resolves: #39997
Related: #39352
Releases: 6.0
Reviewed-on: http://review.typo3.org/13966
Reviewed-by: Steffen Ritter
Tested-by: Steffen Ritter
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn

History

Updated by Gerrit Code Review 10 months ago

  • Status changed from Accepted to Under Review

Patch set 2 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/13322

Updated by Gerrit Code Review 10 months ago

Patch set 3 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/13322

Updated by Gerrit Code Review 10 months ago

Patch set 4 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/13322

Updated by Steffen Ritter 10 months ago

  • Status changed from Under Review to Resolved
  • % Done changed from 0 to 100

Updated by Steffen Gebert 10 months ago

  • Status changed from Resolved to Under Review
  • Target version deleted (6.0.0-alpha3)

Sorry, this is not merged, it only has been pushed to a sandbox (by myself..)!

Updated by Gerrit Code Review 9 months ago

Patch set 6 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/13322

Updated by Gerrit Code Review 9 months ago

Patch set 7 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/13322

Updated by Gerrit Code Review 9 months ago

Patch set 8 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/13322

Updated by Gerrit Code Review 9 months ago

Patch set 9 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/13322

Updated by Gerrit Code Review 9 months ago

Patch set 10 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/13322

Updated by Steffen Gebert 9 months ago

  • Target version set to 6.0.0-pre-beta1

Updated by Steffen Ritter 9 months ago

  • Status changed from Under Review to Resolved

Also available in: Atom PDF