__autoload proposal
| From: | Wojciech Malota | Date: | Sat, 22 Dec 2007 20:44:04 +0000 |
| Subject: | __autoload proposal | ||
| Groups: | php.internals | ||
| Request: | Send a blank email to internals+get-34225@lists.php.net to get a copy of this message | ||
I have a proposal for prototype of __autoload function in PHP 5.3.0.
In this version of PHP namespaces will be available.
Prototype of __autoload could look like this:
__autoload($classname, $namespace = null);
Now __autoload have only one argument which is a name of searched class.
Second argument could be a namespace where class is searched. It should have
default value for backward compatibility.
For example:
<?php
namespace Space1::Space2;
class A {
public function Test() {
$b = new B; // Class B isn't known at this moment
}
}
?>
When user try to create new object of unknown class B __autoload function
should be called with parameter $classname = 'B' and $namespace =
'Space1::Space2'
but int this example:
<?php
namespace Space1::Space2;
class A {
public function Test() {
$b = new Space3::Space4::B; // Class B isn't known at this moment
}
}
?>
Arguments should be: $classname = 'B' and $namespace = 'Space3::Space4';
I think it is the most flexible solution. It allows to create very useful
and effective mapping mechanisms.
--
Wojciech Ma³ota