sirve que para not nombre namespace mismo found example definir define con clases php class namespaces alias

que - php class not found namespace



PHP: ¿Cómo obtener un nombre de clase totalmente calificado de un alias? (2)

En PHP, si quiero obtener el nombre de clase totalmente calificado de una clase que se incluye con una declaración de use , ¿cómo hago eso? Por ejemplo,

<?php namespace MyNamespace; use Namespace/To/Class as MyClass; function getNamespaceOfMyClass() { // Return ?? } echo getNamespaceOfMyClass();

Sé que una forma es hacer get_class(new MyClass()) , pero ¿qué get_class(new MyClass()) si no puedo / no quiero hacer una instancia de MyClass ? ¡Gracias!


En PHP 5.5 en adelante puedes hacer esto usando ::class :

echo MyClass::class;

Desafortunadamente, esto no es posible en versiones anteriores, donde tienes que codificar el nombre de la clase o crear una instancia primero y usar get_class en él.


En la versión inicial de PHP (es decir, PHP <5.5) puede obtener el nombre de la clase a través de Reflection API, así:

namespace App/Core; use Symfony/Component/Form/Extension/Core/Type; class MyClass {} $refclass = new /ReflectionClass(new Type/DateType); print $refclass->getName(); $refclass = new /ReflectionClass(new MyClass()); print $refclass->getName();

Por supuesto, si esto no es costoso para su caso.

Nota
Desde PHP 5.4:

$classname = (new /ReflectionClass(new Type/DateType))->getName();