Ars Longa, Vita Brevis

Отучаем ExtDevEval присваивать значения переменной $this

Так уж случилось, что пришлось заняться разработкой расширений для Typo3. Так вот получилось, что буквально через 15 минут тесного знакомства я нарвался на фатальную ошибку, вызванную расширением ExtDevEval:

Fatal error: Cannot re-assign $this in /var/www/typo3.sjinks.org.ua/typo3conf/ext/extdeveval/class.tx_extdeveval_fetchContentTopMenu.php on line 36



Код, честно говоря, поражает:

[-]
View Code PHP
/**
 * Adding content to display in top frame; Listing of links for developers
 *
 * @author      Kasper Skaarhoj <kasper@typo3.com>
 * @coauthor    Michael Stucki <michael@typo3.org>
 * @package TYPO3
 * @subpackage tx_extdeveval
 */

class tx_extdeveval_altTopMenuDummy {
        function fetchContentTopmenu_processContent (&$this)    {
                $output='';

                if ($GLOBALS['BE_USER']->isAdmin())     {
                        global $TYPO3_CONF_VARS;

                                // Render the links from the script options in TYPO3_CONF_VARS
                        $links=array();
                        if (is_array($TYPO3_CONF_VARS['SC_OPTIONS']['ext/extdeveval/class.ux_sc_alt_topmenu_dummy.php']['links']))      {
                                foreach($TYPO3_CONF_VARS['SC_OPTIONS']['ext/extdeveval/class.ux_sc_alt_topmenu_dummy.php']['links'] as $linkConf)       {
                                        $aOnClick = "return top.openUrlInWindow('".$linkConf[1]."','ShowAPI');";