[TYPO3-dev] Are performance improvements part of maintaince releases?

Rupert Germann rupi at gmx.li
Wed Jun 24 16:19:43 CEST 2009


Ingmar Schlecht wrote:
> No, what I mean is a scenario like this:
> 
> A FE plugin does this:
>  - first fetches the page record with getPage_noCheck($uid)
>  - then it changes the record using an UPDATE SQL statement
>  - then it calls getPage_noCheck($uid) again to get the updated result
> 
> ...or something like this.
> 
> From my experience, that is the most frequent way in which such caches
> break something.
> 
> However, I agree that such a situation appears quite improbable for the
> specific function we're talking about.

ok, I think I got the point. In case I have a plugin which does this:

function main ($content,$conf) {
  $pid = $conf['pid'];
  $content = $this->renderManyLinksToTheSamePage($pid);

  $this->changePageRecord($pid);

  $content .= $this->renderManyLinksToTheSamePage($pid);

  return $content;
}

Then the resulting typolinks of the second call to
renderManyLinksToTheSamePage() will always have been wrong (at least in
TYPO3 4.2.x). tslib_content->typolink() also calls function
sys_page->getPage() which already caches its results during one page
request (introduced with rev 2626 published with 4.2.0).
besides the pageID this cache also takes some other parameters into account
but $this->where_groupAccess, $this->where_hid_del and
$this->sys_language_uid will not change after class t3lib_page is
initialized. So this function will not detect a possibly deleted page (and
also no versions and language overlays).

So adding another cache will not change the behaviour.

greets
Rupert








More information about the TYPO3-dev mailing list