Solo estoy usando Symfony DI, Http, Kernel, componentes de enrutamiento en mi proyecto después de Crear su propio marco PHP (https://symfony.com/doc/current/create_framework/index.html). Proyecto, en el que yo ...

-2
Monnomcjo 23 feb. 2021 a las 09:42

1 respuesta

La mejor respuesta

Dado que su problema en este momento es con el doctrine.orm.entity_manager que falta, creo que la mejor manera de ver cómo lo hace Symfony es mirar el DoctrineBundle. Específicamente en DependencyInjection / DoctrineExtension.php y la Configuración desde la que se se reciben valores. También puede consultar el definiciones de servicio.

La clase Extension toma la configuración (generalmente en su config / packages / doctrine.yaml) que se valida a través de la Configuración y luego actualiza las definiciones de servicio en Resources / config. Este enfoque es bastante complejo, pero te ayudará a ver cómo se conectan las cosas en Symfony.

Alternativamente, puede consultar el Doctrine Docs para ver cómo obtener un EntityManager y luego convertirlo en un registro de Symfony Service Container:

$isDevMode = true;
$proxyDir = null;
$cache = null;
$useSimpleAnnotationReader = false;
$config = Setup::createAnnotationMetadataConfiguration(array(__DIR__."/src"), $isDevMode, $proxyDir, $cache, $useSimpleAnnotationReader);
// or if you prefer yaml or XML
//$config = Setup::createXMLMetadataConfiguration(array(__DIR__."/config/xml"), $isDevMode);
//$config = Setup::createYAMLMetadataConfiguration(array(__DIR__."/config/yaml"), $isDevMode);

// database configuration parameters
$conn = array(
    'driver' => 'pdo_sqlite',
    'path' => __DIR__ . '/db.sqlite',
);

// obtaining the entity manager
$entityManager = EntityManager::create($conn, $config);

Puede ver EntityManager :: create en el enlace de definición de servicio de arriba. La forma de hacer esto en tu aplicación depende en gran medida de qué tan cerca quieras construirla de Symfony y qué y cómo quieras configurar alrededor de Doctrine.

1
dbrumann 23 feb. 2021 a las 11:35