tutorial query getdoctrine example español create doctrine-orm entitymanager silex

query - ¿Cómo usar silex con Doctrine orm EntityManager?



query builder symfony (2)

Soy nuevo en el marco de Silex. Y me gustaría hacer una conexión simple de SQL DB usando el administrador de entidades de doctrina. Por favor dé algunos ejemplos simples.

Gracias por adelantado,
SK


Aquí hay un ejemplo de trabajo de toda la siguiente configuración a continuación. También hay un tutorial de YouTube que explica esa configuración. O si solo quieres algo que funcione ahora mismo prueba: this .

De lo contrario, lo siguiente es un intento de explicar una forma de configurar y "usar silex con EntityManager de Doctrine orm" :

Instalar

Añadir esta línea en composer.json:

"dflydev/doctrine-orm-service-provider": "1.0.6"

Desde la línea de comandos ejecutar:

~$ composer update dflydev/doctrine-orm-service-provider

Registro

Registrar el proveedor de servicios:

$app->register(new Silex/Provider/DoctrineServiceProvider()); $app->register(new Dflydev/Silex/Provider/DoctrineOrm/DoctrineOrmServiceProvider());

Configurar

Configure su base de datos y asignaciones de entidades. Tus caminos pueden ser diferentes . Puede encontrar una explicación mejor y más detallada en el archivo README de Doctrine ORM Service Provider :

$app[''db.options''] = array( ''driver'' => ''pdo_mysql'', ''charset'' => ''utf8'', ''host'' => ''127.0.0.1'', ''dbname'' => '''', ''user'' => '''', ''password'' => '''', ); $app[''orm.proxies_dir''] = __DIR__.''/../cache/doctrine/proxies''; $app[''orm.default_cache''] = ''array''; $app[''orm.em.options''] = array( ''mappings'' => array( array( ''type'' => ''annotation'', ''path'' => __DIR__.''/../../src'', ''namespace'' => ''My//Namespace//To//Entity'', ), ), );

Es probable que desees configurar cli-config.php para obtener más información, lee la Documentación de configuración de Doctrine :

<?php // http://docs.doctrine-project.org/en/latest/reference/configuration.html require __DIR__.''/vendor/autoload.php''; require __DIR__.''/path/to/app/config.php''; $newDefaultAnnotationDrivers = array( __DIR__."/src/MyNamespace", ); $config = new /Doctrine/ORM/Configuration(); $config->setMetadataCacheImpl(new /Doctrine/Common/Cache/ApcCache); $driverImpl = $config->newDefaultAnnotationDriver($newDefaultAnnotationDrivers); $config->setMetadataDriverImpl($driverImpl); $config->setProxyDir($app[''orm.proxies_dir'']); $config->setProxyNamespace(''Proxies''); $em = /Doctrine/ORM/EntityManager::create($app[''db.options''], $config); $helpers = new Symfony/Component/Console/Helper/HelperSet(array( ''db'' => new /Doctrine/DBAL/Tools/Console/Helper/ConnectionHelper($em->getConnection()), ''em'' => new /Doctrine/ORM/Tools/Console/Helper/EntityManagerHelper($em), ));

Dar un giro

En este punto, debería poder volcar algún esquema de la línea de comandos suponiendo que tiene entities annotated en la ruta $newDefaultAnnotationDrivers :

~$ php vendor/bin/doctrine orm:schema-tool:update --dump-sql

Con la configuración anterior en su lugar, también debería poder usar $app[''orm.em''] desde un método de controlador:

$app->match(''/form'', function (Request $request) use ($app) { $em = $app[''orm.em'']; $entity = new /My/Namespace/To/Entity/Form(); $form = $app[''form.factory'']->create(new /My/Namespace/To/Form/FormType(), $entity); $form->handleRequest($request); if ($form->isValid()) { $em->persist($entity); $em->flush(); } return new Response($app[''twig'']->render(''form.html.twig'', array( ''form'' => $form->createView(), ))); })->bind(''form'');