[symfony] Comment implémenter IbrowsNewsletterBundle ds mon projet
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' ?
Code:
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: ...... |
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à.
Et pareil pour le fichier app/config/config.yml :
Code:
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
.... |
Dans default/mapping j'aurais tendance à dire qu'il faut mettre :
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 :
Code:
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 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" ???
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