Pregunta ¿"Usar" la declaración php múltiple?


¿Hay alguna manera de hacer un "uso múltiple"?

Estoy usando un plugin en Silex para usar ORM con él, y en cada Entidad tengo que hacer un uso como este:

use Doctrine\ORM\Mapping\Entity,
    Doctrine\ORM\Mapping\Table,
    Doctrine\ORM\Mapping\Id,
    Doctrine\ORM\Mapping\Column,
    Doctrine\ORM\Mapping\GeneratedValue,
    Doctrine\ORM\Mapping\ManyToOne,
    Doctrine\ORM\Mapping\ManyToOne;

Entonces, mi pregunta es, ¿hay en PHP un "uso múltiple" como Java? Quiero decir:

use Doctrine\ORM\Mapping\*;

¿O tal vez usando una técnica de carga automática hecha por Silex / Symfony o algo así?


5
2018-02-26 13:58


origen


Respuestas:


No, esto no es posible - por diseño.

Imagínate, tienes dos usos "comodín", como este:

use Foo\*;
use Bar\*;

Ahora, en algún lugar de tu código, estarías accediendo a una clase de uno de esos espacios de nombres, como este:

$a = new Something();

Ahora la clase Something Probablemente deba ser cargado automáticamente, pero para hacerlo, php deberá resolver la ruta completa del espacio de nombres de su clase: Foo\Something o Bar\Something? ¿O nos referimos a la clase Something dentro del espacio de nombres actual?


2
2018-02-26 18:29



Por qué no hacer esto ...

use Doctrine\ORM\Mapping as ORM;

Luego en tus anotaciones ...

/**
 * @ORM\Column(type="int")
 */
 protected $name;

Y así...


5
2018-02-26 14:00