[TYPO3-core] RFC #8985: Enable USER object to become USER_INT on the fly
Dmitry Dulepov [typo3]
dmitry at typo3.org
Thu Jul 17 13:04:59 CEST 2008
Hi!
Ingo Renner wrote:
> Well, could tslib_cObj work as an adapter to
> t3lib_div::callUserFunction() ?
That's what I tried to do... It does not work. Firsts, t3lib_div::callUserFunction has this declaration:
function callUserFunction($funcName,&$params,&$ref,$checkPrefix='user_',$silent=0)
For tslib_cObj we have:
function callUserFunction($funcName,$conf,$content)
So the obvios solution seems to be:
function callUserFunction($funcName,$conf,$content) {
return t3lib_div::callUserFunction($funcName, $content, $conf,
$GLOBALS['TSFE']->TYPO3_CONF_VARS['FE']['userFuncClassPrefix']);
}
It looks ok if you do not notice that $conf passed to $ref parameter.
But there is a worse thing :( tslib_cObj::calluserFunc also sets $createdObj->cObj=$this. This is what t3lib_div::callUserFunction() does not do. So obvious implementation fails with the first called USER object... Same failure for typolink callbacks, etc.
>> And cObj's version does not accept EXT:-like syntax. Of course, code
>> can copied from t3lib_div but we all know that duplication code is bad.
>
> yeah, and as this is needed quite often I'd propose a new method
> t3lib_div::resolveExtPrefixToPath() (or similar) and make all places
> where this is needed use the new method.
+1! Good idea!
>> We could also avoid the problem adding delayedIncludeLibs. Keys could
>> be plugin titles and values are file paths. cObj's callUserFunction
>> could include file from delayedIncludeLibs when necessary. This is a
>> quick and dirty solution.
>
> sounds similar to the idea I have concerning autoload
> delayed -> lazy (that's a more common term "lazy loading")
Yes, this can be interesting. May be autoload is even better! Let PHP care for the classes it needs...
--
Dmitry Dulepov
TYPO3 Core team
More about TYPO3: http://typo3bloke.net/
Subscribe: http://typo3bloke.net/rss.xml
Latest article: http://typo3bloke.net/post-details/how_to_fill_realurl_cache/
More information about the TYPO3-team-core
mailing list