Re: Function/Constant autoloading

From: Date: Tue, 26 Jul 2011 19:10:37 +0000
Subject: Re: Function/Constant autoloading
References: 1 2 3 4  Groups: php.internals 
Request: Send a blank email to [email protected] to get a copy of this message
Hi,

Thanks, that looks similar to what I'm looking for. It doesn't seem, that any of the reply is really against autoloading of functions (and maybe constants), but are against the given implementations (because they are built on top of the outdated __autoload() function), what brings me back to my "overall" question: Why it doesn't exists, but autoloading of classes exists? That makes me feel, that, since classes exists, functions (and the youngest children namespace constants) are the unloved children of the multiparadigma approach.



Just to make an example, what goes on in my mind:


// register-autoload signature
spl_autoload_register($callback, $type = SPL_AUTOLOAD_CLASS);

// register an autoloader
spl_autoload_register(function ($name, $type) use ($myLoader) {
    switch ($type) {
        case SPL_AUTOLOAD_CLASS:
            return $myLoader->loadClass($name);
            break;
        case SPL_AUTOLOAD_FUNCTION:
            return $myLoader->loadFunction($name);
            break;
        case SPL_AUTOLOAD_CONSTANT:
            return $myLoader->loadConstant($name);
            break;
    }
}, SPL_AUTOLOAD_CLASS | SPL_AUTOLOAD_FUNCTION | SPL_AUTOLOAD_CONSTANT); class-only-autoloader can simply ignore the second argument $type, thus I don't see any BC-break. Am 26.07.2011 10:53, schrieb Ferenc Kovacs:
On Tue, Jul 26, 2011 at 10:39 AM, Sebastian Krebs <[email protected]> wrote:
Hi, thanks for your reply, but I'm not talking about class loading (because thats already possible). I'm talking about autoloading of userspace functions and constants // /path/to/my/functions.php namespace my\functions; const THING = 'I am constant!'; function helloWorld () {
    echo "hello World;
} // /path/to/some/other/file.php namespace foo; use my\functions; functions\helloWorld(); // fail! echo functions\THING;
I think it's pretty clear what are you after. autofunc with a patch: http://www.mail-archive.com/[email protected]/msg43983.html __autodefine proposal and rfc: http://www.mail-archive.com/[email protected]/msg48986.html https://wiki.php.net/rfc/autodefine?s[]=autodefine from the replies I think that the idea didn't got traction from the core devs.


Thread (8 messages)

« previous php.internals (#54216) next »