J'ai essayé cela pendant des heures maintenant - et je n'arrive pas à trouver des messages qui fonctionnent. J'ajoute des classes PHP personnalisées au répertoire de vendeur Symfony2.
Par exemple (copié une autre structure de fournisseur) em>: p> Vendeur / MyLib / MyLib / SRC / MYLIB / LIB / CLASS.PHP STRT> EM> P> I Mise à jour du compositeur root.json en ajoutant: P> use MyLib\Lib\ClassName as ClassName;
class Cms extends ClassName
{}
4 Réponses :
dans les classes PHP sont automédés via __autoload
symfony prend Entièrement en soin, c'est chargeur de classe mais cela fonctionne en fait de la même manière. Il n'y a pas de balayage de fond de tous les répertoires, vous devez donc ajouter votre espace de noms manuellement. P>
Vous devez ajouter dans votre fichier autoload.php: p>
J'obtiens toujours l'erreur après avoir ajouté le ci-dessous à l'application / autoload.php - $ loader-> Ajouter (MyLib ',' / .. / Vendeur / MyLib / MyLIB / SRC / MYLIB / LIB ') ; code>
OK - son travail maintenant. Avec: $ loader-> Ajouter (MyLib \ Lib ', RealPath ( DIR B>.' / .. / Vendeur / MyLib / MyLib / SRC ')); I> .. Était une path typo .. merci beaucoup :)
Vous voudrez peut-être ajouter le troisième drapeau booléen true code> si vous souhaitez ajouter votre espace de noms à la liste existante créée par compositeur.
Vous devez vraiment utiliser des conteneurs de service qui est fondamentalement le moyen de symfony de charger des classes.
Voici pourquoi: p>
http://symfony.com/doc/current/book/service_container.htmlled/ A> P> init
Je vote cette réponse parce que c'est l'explication la plus rapide et la plus compréhensible sur la mise en place facilement d'un service que j'ai lu jusqu'à ce jour. Merci, ça a beaucoup aidé.
Si l'on utilise un autre projet qui utilise AutoLoader pour charger ses classes, par exemple Simplesaml, et souhaitez l'utiliser en classe dans un autre espace de noms:
namespace Study\UserBundle\Service; require_once "/full_path/simplesaml/lib/_autoload.php"; use SimpleSAML_Configuration; use SimpleSAML_Auth_Simple; use SimpleSAML_Auth_State; class SimpleSAMLLogin {
La dernière réponse est correcte: https://stackoverflow.com/a/27768442/2400373
Je travaille pour moi cependant est important. Ajouter que cela est correct mais si vous aviez avant d'installer la bibliothèque en autoload.
Dans mon cas dans Symfony 3.2.x j'ai ajouté ma bibliothèque en compositeur.json: p> et après cette instruction: p> considère p> p>
"La dernière réponse" peut changer ou être supprimé. Vous devriez inclure le lien de partage. (Aussi, pas tout à fait sûr de ce que vous dites)
Merci, j'ajoute maintenant le lien
Avez-vous exécuté
Compositeur Dump-AutoLoad Code> Après avoir ajouté votre bibliothèque à Composer.json?
Vient d'essayer ça et c'est toujours me donner la même erreur :(