Re: Call it: allow reserved words in a class or not?

From: Date: Fri, 07 Nov 2008 19:41:12 +0000
Subject: Re: Call it: allow reserved words in a class or not?
References: 1 2 3 4 5 6 7  Groups: php.internals 
Request: Send a blank email to internals+get-41763@lists.php.net to get a copy of this message
On Fri, Nov 7, 2008 at 7:24 PM, Stan Vassilev | FM <sv_forums@fmethod.com> wrote: >> What about adding a function that behaves like __autoload, but with >> respect to namespace wildcards? Something like: > > Hi, > > Ok so first: > > 1) We can't implement wildcards since a wildcard needs to be expanded to a > set of concrete classes at runtime for it to make sense, and we don't know > what those classes are (due to autoloads and "conditional" require/include > constructs). > > 2) There can't be a method to resolve wildcards, since namespaces currently > work 90% at the parse level, before any PHP code has executed. This is > required for good performance and simplicity. > > 3) I have emailed Greg a simple idea for solving this with a INI-like "meta" > namespace file, a simple file we can put in our include path, which > describes the resources of a namespace and optionally their location. > > For example let's say you have namespace My\Name\Space, and inside you have > classes "Foo", "Bar", functions "baz" and constants ONE, TWO. In > one of your > include paths, you'll create a file called "My.Name.Space.nsmeta" and put > the following inside: > > class Foo = "path\to\Foo.class.php" > class Bar = "path\to\Bar.class.php" > function baz = "path\to\baz.func.php" > const ONE = "\path\to\constants.php" > const TWO = "\path\to\constants.php" > > This file you can generate from your framework, or even write by hand, as > you see it's very simple to write/read, and tokenizes with the existing PHP > tokenizer. Sounds like an idea for custom extension, but I doubt this would work as a general approach. It limits dynamic nature of php, so won't be suitable for all cases Did you see this extension? http://pecl.php.net/package/automap > Since this file will be read at parse time, it has the ability to solve the > following problems: > > 1) zero-performance-impact namespace wildcards (especially with an opcode > cache like APC, XCache etc.) > 2) faster resource loading (PHP can autoload resources from the location map > above without you writing a slow __autoload runtime procedure) > 3) you can load on demand now any namespace resources: class, functions, > constant, not just classes. > > Naturally this is not for 5.3 as we all want 5.3 stable and out as soon as > possible. But it has the potential to simplify drastically some workflows, > especially in large complex frameworks, so if it picks up, maybe 5.4, or 6 > or who knows. > > Regards, > Stan Vassilev > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > > -- Alexey Zakhlestin http://blog.milkfarmsoft.com/

« previous php.internals (#41763) next »