[TYPO3-ect] div/lib extensions

Ernesto Baschny [cron IT] ernst at cron-it.de
Tue May 2 11:28:29 CEST 2006


Hi Elmar and Elmar-fans,

In my current project, I'm starting to use the proposed div/lib
extensions. Here are my first impressions and suggestions:

They currently only work on PHP5, but the changes needed to make it work
also on PHP4 are very small (and I did it, because I need my extension
working on PHP4):

1) change "self::" with "<classname>::", as "self" is not known. In this
particular cases it shouldn't matter (1x in div/class.tx_div.php and 3x
in lib/class.tx_lib_t3Loader.php).
2) remove the "private function v", as "private" is not known in PHP4.
These functions seems not to be used anyway.

Other than that I needed an easy way of generating singletons of some of
my classes. The easiest and most generic method I found is the one
described in [1]: a helper class. It would be cool to have such a helper
as tx_div::getSingleton($className) which could also use the fancy
"class finder" routines (load et all). Something like:

    /**
     * Static method to get a singleton
     *
     * @param   string  classname 'tx_key_path_file'
     * @param   mixed   loadertype 't3', 'pear', 'classPear', 'hippie'
resp. 2, 3, 6, 9, 68
     * @return  object  the instance else FALSE
     */
    function getSingleton($className, $type = 3) {
        static $instances = array();  // array of instance names
        $className = str_tolower($className);
        if (!array_key_exists($className, $instances)) {
            // instance does not exist, so create it
            $instances[$class] =& tx_div::makeInstance($class, $type);
        }
        $instance =& $instances[$class];
        return $instance;
    }


And while I am not a 100%-fan of the TYPO3 coding style, it would be
nice to use it in these extensions to set an example. In this case,
indenting with a TAB, using TABs before opening "{" and using phpdoc
comments like in TYPO3-core (@params instead of @par). Maybe others, but
those are the ones that I first noticed.


Cheers,
Ernesto

[1]
http://www.developertutorials.com/tutorials/php/php-singleton-design-pattern-050729/page4.html



More information about the TYPO3-team-extension-coordination mailing list