Intégrer une classe sur Symfony 2.1 pour qu'elle soit Universell

Résolu/Fermé
WildChild4Life Messages postés 42 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 2 novembre 2013 - 15 déc. 2012 à 20:53
WildChild4Life Messages postés 42 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 2 novembre 2013 - 16 déc. 2012 à 23:59
Bonjour,

Je suis actuellement entrain de développer sous Symfony 2.1.
J'ai quelques classes que je voudrais intégrer dans le Framework pour qu'elles soient universelles (accessibles de tout les contrôleurs).
Merci de me dire l'emplacement idéal où mettre mes classes et la manière de les rendre universelles.
A chaque fois que j'ai essayé de chercher je me goure en essayant de l'ajouter sur l'autoload.php

Voilà à quoi ressemble mon app/autoload.php :

use Doctrine\Common\Annotations\AnnotationRegistry;

$loader = require __DIR__.'/../vendor/autoload.php';

// intl
if (!function_exists('intl_get_error_code')) {
require_once __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs/functions.php';

$loader->add('', __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs');
}

AnnotationRegistry::registerLoader(array($loader, 'loadClass'));

return $loader;


Merci à l'avance pour vos réponses.


1 réponse

theshadoo Messages postés 786 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 3 mai 2016 123
16 déc. 2012 à 17:06
pas besoin de l'ajouter à l'autoload (cela va se faire automatiquement), le truc que tu dois te souvenir c'est vraiment la philosophie des bundles.

Tu n'auras certainement pas qu'une class à mettre dans le future et que tu veuilles appeler via les namespaces, alors pour cela créer toi un répertoire library si tu veux et dans ce répertoire tu créais tes bundles si tu as besoin de fonctionnalité plus étendu que des class.

Si non tu créais tout simplement un bundle que tu pourrais appeler comme tu veux, exemple CoreBundle et dans ce bundle tu pourras mettre autant de class, lib que tu souhaites, il te suffira de l'instancier via le namespace en appelant dans ton controller
Core\CoreBundle\etc.... par exemple dans ce bundle rien ne t'empêche d'avoir un dossier librairie et autre, tu fais ce que tu veux.

Ton bundle sera intégré de toute façon automatiquement dans le router autoload donc du coup tu pourras disposer du chemin de ton bundle pour appeler n'importe quelle class contenu dans ton bundle
2
WildChild4Life Messages postés 42 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 2 novembre 2013 2
16 déc. 2012 à 23:59
Je vois très bien là où tu veux en venir, merci theshadoo pour ta réponse!
0