Skip to content

Instantly share code, notes, and snippets.

@ezimuel
Created June 22, 2012 14:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ezimuel/2972974 to your computer and use it in GitHub Desktop.
Save ezimuel/2972974 to your computer and use it in GitHub Desktop.
Proposal for support ignore annotation with wildcard for Doctrine
namespace MyCompany\Annotations {
/**
* @Annotation
*/
class Foo
{
public $bar;
}
/**
* @Annotation
*/
class Bar
{
public $foo;
}
}
namespace {
/**
* @MyCompany\Annotations\Foo(bar="bar")
* @MyCompany\Annotations\Bar(foo="foo")
* @ZF2\Form
*/
class User
{ }
require_once '/home/enrico/Lavoro/Git/doctrine-common/lib/Doctrine/Common/ClassLoader.php';
$loader = new \Doctrine\Common\ClassLoader("Doctrine", '/home/enrico/Lavoro/Git/doctrine-common/lib');
$loader->register();
use Doctrine\Common\Annotations\AnnotationReader;
$reader = new AnnotationReader();
AnnotationReader::addGlobalIgnoredName('ZF2\\*');
$reflClass = new ReflectionClass('User');
$classAnnotations = $reader->getClassAnnotations($reflClass);
var_dump($classAnnotations);
foreach ($classAnnotations AS $annot) {
if ($annot instanceof \MyCompany\Annotations\Foo) {
echo "Bar: {$annot->bar} \n"; // prints "foo";
} else if ($annot instanceof \MyCompany\Annotations\Bar) {
echo "Foo: {$annot->foo} \n"; // prints "bar";
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment