public function onRegistration(BundleTranslationsEvent $event) { $bundleAlias = $event->getBundleAlias(); $bundle = $this->kernel->getBundle($bundleAlias); $bundleNamespace = $bundle->getNamespace(); $bundlePath = $bundle->getPath(); if (!is_dir("{$bundlePath}/Api")) { return; } $classes = $this->classCollector->collect("{$bundlePath}/Api", false, false); foreach ($classes as $class) { $classRefl = new ReflectionClass($class); $fileLocation = "@" . str_replace($bundlePath, $bundleAlias, $classRefl->getFileName()); $traitProps = $this->getTraitProperties($classRefl); foreach ($classRefl->getProperties() as $propRefl) { if ($propRefl->class !== $class || array_key_exists($propRefl->name, $traitProps)) { continue; } $name = $this->annotationReader->getPropertyAnnotation($propRefl, "Agit\\ApiBundle\\Annotation\\Property\\Name"); if (!$name) { continue; } $translation = new Translation($name->get("context"), $name->get("value")); $translation->addReference($fileLocation); $event->addTranslation($translation); $names[] = $name->get("value"); } } }