Bug #5929
Gimmefive: unnecessary loading recursion (Major bug)
| 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
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".