I'm still debating whether importing all symbols from a namespace is a good
idea or not (I sometimes use Java at work, and I never import a full package
myself, and this is not recommended anyways). But, if it were to be
implemented, then below is how I would approach it. The following would be
required:

1) As I said before, the "class_path" php.ini variable would be used for
imports.
2) Each file under the class_path is named exactly like the class that it
declares. For example, my_namespace/my_class.php would define the class
"my_class" under the my_namespace namespace (just like in Java).

If an "import namespace my_namespace;" (the syntax is still tentative)
statement is found, then the directory <class-path>/my_namespace will be
opened (at compile-time). Each file under this directory would be imported.
So, assuming our class_path is "/usr/local/php-classes" and the
"/usr/local/php-classes/my_namespace" directory had two files, "class1.php"
and "class2.php", then this is what would happen:

<?php
import namespace my_namespace;

// Directory "/usr/local/php-classes/my_namespace" is opened.
// There are two files, class1.php and class2.php.
//
// 1) "my_namespace:class1" is added to the import hashtable.
// 2) The opcode for
"require_once('/usr/local/php-classes/my_namespace/class1.php')" is
generated.
// 3) "my_namespace:class2" is added to the import hashtable.
// 4) The opcode for
"require_once('/usr/local/php-classes/my_namespace/class2.php')" is
generated.
?>

There would also need to be another hashtable to indicate if a full
namespace import for a particular namespace has already been done or not, to
avoid a directory from being read over and over again.

--
Jessie


"Xuefer" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
at compile time? this means u cannot import * (all) symbols from a namespace

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to