CoreCommunity ExtensionsIncubatorDistributionsTYPO3 4.5 ProjectsTYPO3 4.6 ProjectsTYPO3 4.7 ProjectsTYPO3 6.0 ProjectsTYPO3 6.1 ProjectsTYPO3 6.2 Projects (+)

Bug #5929

Gimmefive: unnecessary loading recursion (Major bug)

Added by Fabien Udriot over 3 years ago. Updated over 2 years ago.

Status:Closed Start date:2010-01-08
Priority:Should have Due date:
Assignee:Fabien Udriot % Done:

0%

Category:Code and Architecture
Target version:Stable v1.0
Votes: 0

Description

I have find out that Gimmefive does not cache file classes when loading the framework. In other words, method loadClass() rebuilds for each class a big array by the mean of method buildArrayOfClassFiles().

This unnecessary task is very resource consuming.

Associated revisions

Revision 5916
Added by Christian Welzel almost 6 years ago

fixed closing bracket in generated template (Closes: #5929)

History

Updated by Fabien Udriot over 3 years ago

  • Status changed from New to Closed

Patch has been sent to the trunk. This fix should have a positive impact on performance.

Maybe it is worth shipping a new version to the TER. The last bug corrected by erep brings an important fix (USER vs USER_INT).

My wishes for the new year 2010 to all of you!

Updated by Reinhard Führicht over 3 years ago

Thank you very much for the fix! This should increase the performance massively since the creation of the class files array should take quite some time.

Anyway, again thanks for the work and a happy new year to you too!

Updated by Alexander Bohndorf almost 3 years ago

The caching causes a new bug: It is not possible to load classes from another extension because $this->buildArrayOfClassFiles is only called once for the core classes ($classNameParts1 == 'Formhandler') and after that it is always taken from cache. There must be separate caches for different packages, i.e. for different $classNameParts1.

example TS:
plugin.Tx_Formhandler.settings.predef.conference_attendee {
finishers {
10 {
class = Tx_smsconference_Finisher_extendedDB
...

Class file resides in:
/typo3conf/ext/smsconference/Classes/Finisher/Tx_smsconference_Finisher_extendedDB.php

but the class loader never tries to load classes for the package "smsconference".

Also available in: Atom PDF