Partage
  • Partager sur Facebook
  • Partager sur Twitter

[SF4] bind et services

    10 mai 2018 à 8:30:06

    Bonjour,

    J'ai suivi a priori les principes de démo de SF4. Or je suis confronté à une erreur pour laquelle la googlelisation ne donne rien:

    Voici ma config de services:

    parameters:
        locale: 'en'
        app_locales: en|fr|de|es|cs|nl|ru|uk|ro|pt_BR|pl|it|ja|id|ca|sl|hr|zh_CN
        app.notifications.email_sender: sender@email.fr
    
    services:
    
        _defaults:
            autowire: true      
            autoconfigure: true 
            public: false       
    
            bind:               
                $locales: '%app_locales%'
                $defaultLocale: '%locale%'
                $emailSender: '%app.notifications.email_sender%'
    
        App\:
            resource: '../src/*'
            exclude: '../src/{Entity,Migrations,Tests,Kernel.php}'
    
        App\Controller\:
            resource: '../src/Controller'
            tags: ['controller.service_arguments']

    Or avec cette config je reçois le message d'erreur:

    (1/1) InvalidArgumentException

    Unused binding "$locales" in service "abstract.instanceof.App\Repository\UserRepository".

    Je mets ici le userRepository des plus classiques!!!

    <?php
    
    
    namespace App\Repository;
    
    use App\Entity\User;
    use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
    use Doctrine\Common\Persistence\ManagerRegistry;
    
    /**
     */
    class UserRepository extends ServiceEntityRepository
    {
        public function __construct(ManagerRegistry $registry)
        {
            parent::__construct($registry, User::class);
        }
    }

    Je rajoute que quand j'enlève les lignes bind dans la config des services cela fonctionne mais du coup je ne peux plus récuperer la fonction locales dans mon template de base.

    Merci de vos conseils.

    • Partager sur Facebook
    • Partager sur Twitter
      10 mai 2018 à 9:03:12

      bonjour,

      je pense qu'il faut ajouter des "globals" à tes configs twig :

      https://symfony.com/doc/current/templating/global_variables.html

      • Partager sur Facebook
      • Partager sur Twitter
      READ THE DOCS !
        10 mai 2018 à 14:02:15

        Merci nico pour cette proposition

        Mlalheureusement, le problème reste entier et dans les mêmes termes!

        • Partager sur Facebook
        • Partager sur Twitter
          10 mai 2018 à 14:06:40

          je n'utilise pas bind.

          apparement c'est pour injecter des params dans tous les services du services.yaml. Si ce n'est pas ton cas, ne l'utilises pas. et fait du cas par cas

          • Partager sur Facebook
          • Partager sur Twitter
          READ THE DOCS !
            10 mai 2018 à 14:59:09

            Nico,

            J'ai suivi ton conseil et j'ai contourné. C'est poourtant dans le projet symfony-demo et je n'arrive aps à le cecortiquer suffisamment pour voir ou j'ai loupé!

            • Partager sur Facebook
            • Partager sur Twitter
              11 mars 2019 à 12:26:21

              Salut,

              j'ai eu le soucis aussi sur la version 3.4.23, je me suis rendu compte qu'il faut qu'au moins 1 de tes services de ton application utilise le paramètre indiqué dans bind. Je ne sais pas encore à ce stade s'il s'agit d'un bug mais à mon sens, cela ne devrait pas déclencher plus qu'un warning.

              • Partager sur Facebook
              • Partager sur Twitter

              [SF4] bind et services

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              • Editeur
              • Markdown