I assume ::: is being used because it simply works and the discussion on
which seperator to use might still go on for some time ;). You have a point
about import statements being allowed only in the beginning. This would be
nice:
class X
{
public function foo()
{
import class bar:::MyClass;
$obj = new MyClass();
$obj->doSomething();
}
}
This would be nice, because __autoload() only needs to be called if my
method foo() is being called. bar:::MyClass is not a dependency for the
whole file, but only for X::foo(). Performance-wise it would be a good thing
if importing namespaces would not extend the dependency to the whole file.
Also, it could prevent unnecessary aliasing:
class X
{
public function foo()
{
import class bar:::MyClass;
$obj = new MyClass();
$obj->doSomething();
}
public function fubar()
{
import class bla:::MyClass;
$obj = new MyClass();
$obj->doSomething();
}
}
In this example, bar:::MyClass and bla:::MyClass are used. Two different
classes, each in their own namespace. Aliasing is not required, because the
imported namespaces are limited to the scope of the methods foo() and
fubar().
- Ron
"Marian Kostadinov" <[EMAIL PROTECTED]> schreef in bericht
news:[EMAIL PROTECTED]
First I must say - a nice job:)
The namespaced version works fine.
I found just 3 problems (things I don't like):
1.Import statements are allowed only in the beginning of the script.
2.Global function calls are not allowed in a namespace.
3.The example below does not work.
<?
import class ABC:::TEST as ABC_TEST;
import function ABC:::FUNC;
namespace ABC {
class TEST {}
function FUNC() {
new TEST;
}
}
FUNC();
?>
Anyway, the patch seems to be stable.
Also ::: is veeery long. I wrote it a lot of times and usually I got
:: instead of :::
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php