I oto się stało. Pierwszy raz użyłem przestrzeni nazw w PHP! Nie do wiary? A jednak. Nie było jakichkolwiek problemów z samą instalacją, ponieważ do pobrania jest paczka (pod Win ;)), która zachowuje się jak wszystkie inne pobrane z php.net. Przykłady podane na necie działają, więc nie pozostaje nic innego jak zabrać się za używanie przestrzeni nazw. :)
Oto listingi, które działają: [php]< ?php
import class a:::AFactory; import class a:::A;
namespace a { class AFactory { public static function create() { return new A; } } private class A {} }
// works perfectly: AFactory::create();
// fails with ‘Fatal error: Cannot use class ‘a:::A’ outside of its namespace, as it is private’ // new A;
?>[/php]
Oraz: [php]< ?php
import namespace a;
function __autoload($classname) { foreach (get_imported_namespaces() as $ns) { $filename = str_replace( ‘:::’, ‘/’, $ns ) . ‘/’ . $classname . ‘.php’; if (file_exists($filename)) { require_once($filename); // will require a/A.php autoload_import_class($classname, $ns); // will import class a:::A } } }
new A;
?> // file a/A.php: < ?php
namespace a { class A {} }
?>[/php]