Bonjour à tous,
Récent utilisateur de Symfony2, j'aimerai implémenter un bundle de newsletter dans mon projet (le bundle : IbrowsNewsLetterBundle).
N'étant pas à l'aise dans la configuration en général de symfony, j'avoue être complètement paumé pour ce bundle (même si j'ai déjà implémenté le bundle fixture auparavant ).
Ce que j'ai fait :
Précisons que mon projet est un bundle et qu'il utilise un autre bundle (user) que j'ai fait. Ces 2 bundles se trouve dans le même dossier root (.... src/myRoot/bundle1 ... src/myRoot/bundle2). Bon jusqu'ici rien extraordinaire (enfin j'espère ).
J'ai ensuite installé le bundle IbrowsNewsletterBundle comme explicité sur github/IbrowsNewsLetterBundle :
- je l'ai ajouté dans composer.json
- installé via composer (commande : php composer.phar update ibrows/newsletter-bundle ),
- et ajouté dans appKernel.php
Jusqu'ici encore rien d'extraordinaire (me semble t-il ^^ ), mais c'est ensuite que ça se complique :
Avant de continuer précisons que suite à l'installation j'ai maintenant un dossier : vendor/ibrows/newsletter-Bundle.
J'ai suivi à la lettre la configuration en remplaçant tout de même les 'yourBundle' par le nom de mon bundle (évidemment ), encore que je ne comprend pas bien :
dans 'ibrows_newsletter.yml', que mettre à la place 'yourBundle' ?
En effet dans la propriété user, il n'y a rien qui correspond à Ibrows\qqueChose\Entity\User, de même pour les lignes suivantes : ce n'est pas 'mon bundle' qu'il faut mettre mais bien 'NewsletterBundle' (à priori) car les fichiers existent bien dans ce namespace là.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 classes: # needed entities - see next step for creating them model: # most likely fos user user: Ibrows\YourBundle\Entity\User # depends on the namespace you set at mandant: Ibrows\YourBundle\Entity\Newsletter\Mandant newsletter: Ibrows\YourBundle\Entity\Newsletter\Newsletter subscriber: ......
Et pareil pour le fichier app/config/config.yml :
Dans default/mapping j'aurais tendance à dire qu'il faut mettre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 entity_managers: default: connection: default mappings: YourBundle: ~ UserBundle: ~ # ... mandantA: connection: mandantA mappings: ibrows_newsletter: type: annotation prefix: YourBundle\Entity\Newsletter dir: "%kernel.root_dir%/../src/Ibrows/YourBundle/Entity/Newsletter" is_bundle: false mandantB: connection: mandantB ....
monRootmonBundle (ou monBundle d'ailleurs ?) et,
monRootmonBundleUser (ou monBundleUser)
Ensuite pour les mandant, j'ai vu sur la doc symfony que le prefix se mettait ss la forme (dans mon cas) : myRoot\monBundle\Entity
Mais par contre pour la propriété 'dir', si je met le nom de mon bundle à la place de 'yourBundle', ça ne colle pas du tout !
Quoi qu'il en soit lorsque je veux créer la database ( php app/console doctrine:schema:create --em default ), j'ai le message d'erreur :
Je me dit que cela doit être dû au fait que l'entité n'est pas écrite mais encore une fois lorsqu'il donne le code de l'entité user, c'est précisé que ce fichier est dans " YourBundle\Entity\User" mais qu'est-ce qu'ils entendent par "yourbundle" ???
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 [InvalidArgumentException] Specified non-existing directory "/home/moi/Documents/web_dev/private/Symfony/app/ ../src/Ibrows/Bundle/NewsletterBundle/Entity/Newsletter" as Doctrine mapping source .
Je ne comprends pas non plus ce qu'est le paramètre dbal/type ou encore dbal/connections
Voilà je me rend compte que c'est assez laborieux tout ça mais j'espère quand même que des âme charitable vont m'aiguiller
Merci d'avance
Partager