Estoy implementando espacios de nombres en mi proyecto existente. Descubrí que puede usar la palabra clave 'usar' para importar clases en su espacio de nombres. Mi pregunta es, ¿también puedo importar todas las clases de 1 espacio de nombres a otro? Ejemplo:PHP cómo importar todas las clases desde otro espacio de nombres
namespace foo
{
class bar
{
public static $a = 'foobar';
}
}
namespace
{
use \foo; //This doesn't work!
echo bar::$a;
}
Actualización para PHP 7+
Una nueva característica de PHP 7 se agrupa declaraciones. Esto no significa que sea tan fácil como usar 1 'declaración de uso' para todas las clases en un espacio de nombres dado, pero hace que sea un poco más fácil ...
códigoEjemplo:
<?php
// Pre PHP 7 code
use some\namespace\ClassA;
use some\namespace\ClassB;
use some\namespace\ClassC as C;
// PHP 7+ code
use some\namespace\{ClassA, ClassB, ClassC as C};
?>
Ver también: https://secure.php.net/manual/en/migration70.new-features.php#migration70.new-features.group-use-declarations
Ten en cuenta que "importación" no significa que en realidad se puede encontrar esa clase. Aún necesita tener esa clase disponible a través de una solicitud manual o un autocargador. – Nanne
Por supuesto, pero no sé cómo decirlo en otras palabras. – Rob
Pensé que sí, pero para evitar confusiones :) – Nanne