Comment utiliser silex avec l'orm Doctrine EntityManager?
Je suis nouveau sur le Silex cadre. Et je voudrais faire simple SQL DB connexion à l'aide de la doctrine de l'entité gestionnaire. Veuillez donner quelques exemples simples.
Ici est un exemple de travail de toutes les conditions suivantes d'installation ci-dessous. Il y a aussi un YouTube tutoriel expliquant que le programme d'installation. Ou si vous voulez juste quelque chose qui fonctionne maintenant essayer: cette.
Sinon, ce qui suit est une tentative pour expliquer une façon de configuration et de "utilisation de silex avec l'orm Doctrine EntityManager":
Configurer votre base de données et des mappages d'entité. Vos chemins peuvent être différents. Une meilleure et plus détaillée de l'explication peut être trouvée dans le ORM Doctrine Fournisseur de Services README:
<?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),
));
Le prendre pour un spin
À ce stade, vous devriez être en mesure de vider certaines schéma à partir de la ligne de commande en supposant que vous avez annotéles entités dans $newDefaultAnnotationDrivers chemin:
Avec la configuration ci-dessus, vous devez également être en mesure d'utiliser $app['orm.em'] à partir d'une méthode de contrôleur:
$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');
cli-config.php est la partie la plus délicate, votre réponse m'a beaucoup aidé, je vous remercie. Notez que $config->newDefaultAnnotationDriver($newDefaultAnnotationDrivers); prend également un second argument booléen (à l'aide de simples annotations?). Il peut vous causer une No Metada Classes to process. des maux de tête. "dflydev/doctrine-orm-service-provider": "^2.0" - je pas faire de travail de la version pour moi.
Il n'y a pas une Doctrine ORM fournisseur de services de Silex seulement la DBAL, mais il y a plusieurs les tiers fournisseurs de services vous pouvez essayer.
Ici est un exemple de travail de toutes les conditions suivantes d'installation ci-dessous. Il y a aussi un YouTube tutoriel expliquant que le programme d'installation. Ou si vous voulez juste quelque chose qui fonctionne maintenant essayer: cette.
Sinon, ce qui suit est une tentative pour expliquer une façon de configuration et de "utilisation de silex avec l'orm Doctrine EntityManager":
Installer
Ajouter cette ligne dans le compositeur.json:
À partir de la ligne de commande exécuter:
Registre
Enregistrer le fournisseur de service:
Configurer
Configurer votre base de données et des mappages d'entité. Vos chemins peuvent être différents. Une meilleure et plus détaillée de l'explication peut être trouvée dans le ORM Doctrine Fournisseur de Services README:
Vous aurez probablement envie de configuration
cli-config.php
pour plus d'informations, lisez la La Doctrine De La Configuration De La Documentation:Le prendre pour un spin
À ce stade, vous devriez être en mesure de vider certaines schéma à partir de la ligne de commande en supposant que vous avez annoté les entités dans
$newDefaultAnnotationDrivers
chemin:Avec la configuration ci-dessus, vous devez également être en mesure d'utiliser
$app['orm.em']
à partir d'une méthode de contrôleur:Notez que
$config->newDefaultAnnotationDriver($newDefaultAnnotationDrivers);
prend également un second argument booléen (à l'aide de simples annotations?). Il peut vous causer uneNo Metada Classes to process.
des maux de tête."dflydev/doctrine-orm-service-provider": "^2.0" - je pas faire de travail de la version pour moi.
OriginalL'auteur ooXei1sh
Il n'y a pas une Doctrine ORM fournisseur de services de Silex seulement la DBAL, mais il y a plusieurs les tiers fournisseurs de services vous pouvez essayer.
Je l'ai regardé à l'aide de dflydev-doctrine-orm-prestataire de service qui a le plus d'commence dans github et agréable.
OriginalL'auteur olanod