Bonjour à tous,
J'ai besoin de votre aide parce que j'ai des messages d'erreurs que je n'arrive pas à résoudre.
Dans mon projet, j'ai un service qui s'appele 'cptservice' et qui marche bien.
Mais dedans, j'ai des valeurs codées en dur, et je souhaite les externaliser dans un fichier INI.
Pour manipuler les fichier INI, j'ai trouvé sur packagist le bundle 'hassankhan/config', que j'ai installé sans problème.
Donc je veux simplement utilser ce bundle dans mon service :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| use Noodlehaus\Config;
class projetCompteur
{
private $entitymanager;
protected $request_stack;
public function __construct(EntityManager $entitymanager, RequestStack $request_stack)
{
$this->entitymanager = $entitymanager;
$this->request = $request_stack->getCurrentRequest();
}
/**
* @param string $nom
* @param string $sens
* @param smallint $valeur
*/
public function modifierCompteur($nom, $sens, $valeur)
{
$conf = new Config('list.ini');
$data = $conf->all();
var_dump($data); |
Je ne mets pas tout le code pour ne pas faire de gros pavés, mais dans la suite de mon code, mon entitymanager et mon requeststack marchent bien.
J'ai juste ajouté au début de ma fonction la lecture de mon fichier INI, et un var_dump pour vérifier si ça marche.
Et en lançant app_dev.php, j'ai le message d'erreur suivant à la ligne '$conf = new Config('list.ini')' :
The "cptservice" service is private, getting it from the container is deprecated since Symfony 3.2 and will fail in 4.0. You should either make the service public, or stop using the container directly and use dependency injection instead.
En rajoutant 'public: true' dans la définition de mon service, j'ai le message :
Bundle inheritance is deprecated as of 3.4 and will be removed in 4.0
Avec Symfony 3.4, comment utiliser ce bundle dans un service ?
Est ce que je suis obligé de passer par l'injection de dépendances ?
J'ai lu plusieurs tutos la dessus, voilà ce que j'ai essayé :
Fichier service.yml :
1 2 3 4 5 6 7
| services:
cptservice:
class: projetBundle\Service\projetCompteur
arguments:
- "@doctrine.orm.entity_manager"
- "@request_stack"
- "@hassankhan" |
Et j'ai le message d'erreur :
The service "cptservice" has a dependency on a non-existent service "hassankhan".
Evidemment que ça ne marche pas, car hassankhan est un bundle et pas un service.
Sauf que maintenant je ne vois pas comment continuer.
Merci d'avance pour votre aide !
Partager