Bug #37915

Cache negative ux_* look up in autoloader

Added by Christian Kuhn 12 months ago. Updated 11 months ago.

Status:Resolved Start date:2012-06-11
Priority:Should have Due date:
Assignee:- % Done:

100%

Category:Default
Target version:6.0.0-alpha2
TYPO3 Version:6.0 Complexity:medium
PHP Version:5.3
Votes: 0

Description

For every class instance that is requested via
t3lib_div::makeInstance(), a lookup for ux_"classname" is done
and that class is instantiated if it exists, instead of the original
class. If no ux_ class is found with class_exists(), the requested class
is instantiated. This is the basic "XCLASS" handling in the core.

The patch adds autoloader rows for unsuccessful (NULL) ux_* lookups to the
autoloader cache file. The file is updated during shutdown. This way the
information that a XCLASS does NOT exist is cached between consecutive calls.
This leads to a performance improvement and is an advantage over the
current makeInstance class name cache that worked only for one call.
The old "cache for one call only" code is dropped with the patch.

Associated revisions

Revision c50007f7
Added by Christian Kuhn 11 months ago

[FEATURE] Cache negative ux_* look up in autoloader

For every class instance that is requested via
t3lib_div::makeInstance(), a lookup for ux_"classname" is done
and that class is instantiated if it exists, instead of the original
class. If no ux_ class is found with class_exists(), the requested class
is instantiated. This is the basic "XCLASS" handling in the core.

The patch adds autoloader rows for unsuccessful (NULL) ux_* lookups to the
autoloader cache file. The file is updated during shutdown. This way the
information a XCLASS does NOT exist is cached between consecutive calls.
This leads to a performance improvement and is an advantage over the
current makeInstance class name cache that worked only for one call.
The old "cache for one call only" code is dropped with the patch.

Change-Id: I70573146600d658d218dc9b31694748341fc7a20
Resolves: #37915
Releases: 6.0
Reviewed-on: http://review.typo3.org/11943
Reviewed-by: Susanne Moog
Tested-by: Susanne Moog
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn

Revision 15934daa
Added by Christian Kuhn 10 months ago

[FEATURE] Cache negative ux_* look up in autoloader

For every class instance that is requested via
t3lib_div::makeInstance(), a lookup for ux_"classname" is done
and that class is instantiated if it exists, instead of the original
class. If no ux_ class is found with class_exists(), the requested class
is instantiated. This is the basic "XCLASS" handling in the core.

The patch adds autoloader rows for unsuccessful (NULL) ux_* lookups to the
autoloader cache file. The file is updated during shutdown. This way the
information a XCLASS does NOT exist is cached between consecutive calls.
This leads to a performance improvement and is an advantage over the
current makeInstance class name cache that worked only for one call.
The old "cache for one call only" code is dropped with the patch.

Change-Id: I70573146600d658d218dc9b31694748341fc7a20
Resolves: #37915
Releases: 6.0
Reviewed-on: http://review.typo3.org/11943
Reviewed-by: Susanne Moog
Tested-by: Susanne Moog
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn

History

Updated by Christian Kuhn 12 months ago

Fun fact: I've done about a dozen pre-patches in the bootstrap and autoloader area to make this happen ;)

Updated by Gerrit Code Review 12 months ago

  • Status changed from New to Under Review

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

Updated by Gerrit Code Review 12 months ago

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

Updated by Gerrit Code Review 11 months ago

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

Updated by Christian Kuhn 11 months ago

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

Also available in: Atom PDF