У меня была небольшая проблема с автозагрузкой в моем пространстве имен. Как показано в руководстве по PHP здесь: http://us.php.net/manual/en/language.namespaces.rules.php, вы должны иметь возможность автоматически загружать функции пространства имен с полным именем, например. \ Клей \ Common \ is_email ().
Дело в том, что у меня есть функция spl_autoload_register (array ($ import, "load")); в начальном пространстве имен, но всякий раз, когда я пытаюсь вызвать \ glue \ common \ is_email () из начального пространства имен, он не пропускает эту функцию автозагрузки, но при использовании нового is_email () (в контексте класса) это происходит Я не понимаю, что в руководстве написано, что я могу автоматически загружаться с полностью определенных имен, но я не могу:.
Вот мой код:
namespace glue;
require_once 'import.php';
use glue\import as import;
use glue\core\router as router;
$import = new import();
spl_autoload_register(array($import, "load"));
/** Works and echos glue\router **/
$router = new router();
/** Don't do nothing **/
$cheese = \glue\common\is_email($email);
Я тоже пробовал этот код:
namespace glue;
require_once 'import.php';
use glue\import as import;
use glue\core\router as router;
use glue\common;
$import = new import();
spl_autoload_register(array($import, "load"));
/** Works and echos glue\router **/
$router = new router();
/** Don't do nothing **/
$cheese = common\is_email($email);
и, наконец, этот код:
namespace glue;
require_once 'import.php';
use glue\import as import;
use glue\core\router as router;
use glue\common\is_email as F;
$import = new import();
spl_autoload_register(array($import, "load"));
/** Works and echos glue\router **/
$router = new router();
/** Don't do nothing **/
$cheese = F($email);