He tenido un ligero problema con la carga automática en mi espacio de nombres. Como se muestra en el manual de PHP aquí: http://us.php.net/manual/en/language.namespaces.rules.php, debería poder cargar automáticamente las funciones del espacio de nombres con un nombre completo calificado, p. \ glue \ common \ is_email().PHP carga automática en espacios de nombres
Cosa es que tengo una función spl_autoload_register (array ($ import, "load")); dentro del espacio de nombres inicial, pero cada vez que intento llamar a \ glue \ common \ is_email() desde el espacio de nombres inicial, no pasará esa función de autocarga, pero cuando se usa is_email() (en el contexto de una clase) lo hará. No entiendo, el manual dice que puedo cargar automáticamente nombres completos, pero no puedo:
Aquí está mi código:
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);
También probé este código así:
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);
y finalmente este código:
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);
reetiquetado como PHP5.3 ya que esto es un 5,3-única pregunta. –