Dans la fonction dois-je faire quelque chose de différent? p> J'ai remarqué que cela fonctionne si j'appelle sinon je pourrais utiliser p> qui apparaît Abit plus intuitif? P> P> configure () code>, j'ai essayé d'obtenir le conteneur de service
Erreur fatale PHP: appelez à une fonction de membre getkernel () sur un non-objet dans ... \ symfony \ Bundle \ frameworkbundle \ commande \ conteneurawarecommand.php à la ligne 37 code> p> P>
blockQuote>
getcontainer < / code> dans
exécuter () code>. Mais je me demande si c'est possible de
getContainer () code> dans
configure () code>. Je souhaite obtenir un paramètre de configuration à utiliser dans
ADDOPTION code> argument de valeur par défaut. P>
3 Réponses :
Il apparaît que le conteneur de service n'a pas été initialisé dans Comme pour les valeurs par défaut des options de console, je peux utiliser quelque chose comme p> dans de nombreux cas Symfony2 vous permet de définir une valeur par défaut lors de la récupération des paramètres / variables. Donc, un raccourci pour la solution mentionnée ci-dessus serait simplement: p> configurer code>. Je peux y accéder dans
exécuter code>.
$opt1 = $input->getOption('opt1', $default);
appel $ ceci-> conteneur = ceci-> getApplication () -> getkernel () -> getContainer (); code> dans Execute ().
Voir https://stackoverflow.com/a/7517803/297679 p>
$ ceci-> conteneur code> a un accès privé, vous ne pouvez donc pas la définir dans une classe extension.
Malgré toutes les informations que j'ai trouvées sur Google (y compris ce fil), rien ne semble fonctionner. J'ai finalement compris pourquoi je n'étais pas capable de recevoir un noyau.
dans une copie 1: 1 de la documentation, j'ai créé une application de fichier.php: p> Puis exécutez l'application en exécutant: p> ./ Application.php this: tandis que ou php application.php this: que p> Cela n'a pas fonctionné pour moi. Pour une raison quelconque, le noyau n'est pas disponible lorsque cela faisait cela. Cependant, c'est lorsque j'exécute l'application à l'aide de: P> App / Console PHP Ceci: que P> mon devinette est cette application d'application / console d'application fait beaucoup plus que mon application.php fait, comme le démarrage d'un noyau. p> avec l'exécution de l'application comme "PHP App / Console Ceci: que" tout fonctionne bien et je suis capable d'utiliser: p> qui était ce que je nécessaire. p> p>
Je pense que le problème est de savoir comment vous le faites. L'ajout d'une option Basing sur une valeur de configuration n'est pas une très bonne solution. Qu'essayez-vous exactement d'atteindre?
Je veux définir les valeurs par défaut dans les paramètres.ini. Quelque chose accessible via l'application et la console. Bien que sur la 2e pensée, je pourrais peut-être m'éloigner avec une défaillance de la couleur codée ... Hmm ... Quel est le problème avec ma façon de le faire?
Je suis désolé, j'ai mal compris ce que vous essayez d'atteindre. Il n'y a rien de mal à faire de votre façon de le faire. Je pense que la seule solution peut être de définir la valeur par défaut sur
false code> dans
configure () code> puis définissez-le manuellement dans
exécuté () code>.