#php #symfony #doctrine #extractor
#php #symfony #доктрина #экстрактор
Вопрос:
Как создать $ doctrineExtractor в Symfony 2.8? Для этого требуется ClassMetadataFactory в конструкторе, но я не понимаю, как его создать?
Я хочу получить информацию о свойстве объекта. Кроме того, я хочу понять, где и как использовать SerializerExtractor?
<?php
// xController;
use SymfonyComponentPropertyInfoPropertyInfoExtractor;
use SymfonyComponentPropertyInfoExtractorReflectionExtractor;
use SymfonyComponentPropertyInfoExtractorPhpDocExtractor;
use SymfonyComponentPropertyInfoExtractorSerializerExtractor;
use SymfonyBridgeDoctrinePropertyInfoDoctrineExtractor;
use SymfonyComponentSerializerMappingFactoryClassMetadataFactory;
use SymfonyComponentHttpFoundationRequest;
use SymfonyBundleFrameworkBundleControllerController;
use SensioBundleFrameworkExtraBundleConfigurationMethod;
use SensioBundleFrameworkExtraBundleConfigurationRoute;
use SensioBundleFrameworkExtraBundleConfigurationTemplate;
namespace MeetingBundleController;
/** * @Route("/x") */
class xController extends Controller {
* @Route("/", name="x_prop")
* @Method("GET|POST")
* @Template("MeetingBundle:help:prop.html.twig")
*/
public function propAction() {
$reflectionExtractor = new ReflectionExtractor();
$phpDocExtractor = new PhpDocExtractor();
$doctrineExtractor = new DoctrineExtractor(); //how to contruct here ??
$propertyInfo = new PropertyInfoExtractor(
array($reflectionExtractor),
array($doctrineExtractor, $phpDocExtractor, $reflectionExtractor),
array($phpDocExtractor),
array($reflectionExtractor) );
$propertyInfo->getProperties($entityName);
print_r($propertyInfo);
..
}}
Комментарии:
1. кажется, решение здесь
http://symfony.com/doc/current/components/property_info.html
2. ` используйте Symfony Bridge Doctrine PropertyInfo DoctrineExtractor;`
use SymfonyComponentSerializerMappingFactory;ClassMetadataFactory;
а затем в контроллере$doctrineExtractor = new DoctrineExtractor($em->getMetadataFactory());
из [ symfony.com/doc/current/components/property_info.html ]