Espace de nom déjà utilisé

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Espace de nom déjà utilisé

    Bonjour,

    Ce n'est pas un problème spécifiquement Joomla, mais avec l'arrivée des espaces de nommage nous allons rencontrer le problème.

    Mon souci: j'ai mis à jour mon plugin SCSS-Compiler avec le dernier script de Leafo qui utilise maintenant les espaces de noms. Une petite adaptation du code et ça marche impeccable. Sauf que sur un site avec un template Gantry qui utilise aussi ce script et ce même espace de nommage, j'ai ce beau message :
    Code:
    Fatal error: Cannot declare class Leafo\ScssPhp\Compiler, because the name is already in use in xxxxxxxxxxxx/plugins/system/scsscompiler/scssphp/src/Compiler.php on line 57
    J'ai essayé de tester son existence sans succès. J'ai trouvé une solution en préfixant tous les espaces de nom dans tous les fichiers utilisés et utilisateurs, mais cela fait un peu gros bourrin.

    Avez-vous une solution plus élégante ?
    Dernière édition par lomart à 02/10/2017, 10h26
    UP, le plugin universel à découvrir sur https//up.lomart.fr
    bgMax
    , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

  • #2
    Re : Espace de nom déjà utilisé

    J'ai rencontré ça avec je ne sais plus quelle extension il y a quelques semaines, en commençant à tester la 4.0 dev, et je me suis dit que les modifications à faire dans toutes les extensions allaient être énormes, après avoir jeté un œil au code.

    Avec l'ampleur de ce travail d'adaptation, on risque fort de voir disparaître beaucoup d'extensions, mais aussi de voir diminuer considérablement le nombre d'extensions gratuites...
    "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
    MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

    Commentaire


    • #3
      Re : Espace de nom déjà utilisé

      Bonjour Robert,
      Avec l'ampleur de ce travail d'adaptation, on risque fort de voir disparaître beaucoup d'extensions, mais aussi de voir diminuer considérablement le nombre d'extensions gratuites...
      J'ai bien peur que tu aies raison
      UP, le plugin universel à découvrir sur https//up.lomart.fr
      bgMax
      , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

      Commentaire


      • #4
        Re : Espace de nom déjà utilisé

        Bonjour

        Tu as déjà essayé un truc du style avant l'inclusion de ton require ?

        Code PHP:
        if (!class_exists('...')) {
            require_once(
        'class.php');

        PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites in the world.
        Christophe (cavo789)
        Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
        Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

        Commentaire


        • #5
          Re : Espace de nom déjà utilisé

          Bonjour,

          J'ai trouvé un petit article sur le sujet et la portée des namespace : http://blog.mageekbox.net/?post/2011...ons-de-classes

          Pascal
          If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

          Commentaire


          • #6
            Re : Espace de nom déjà utilisé

            Christophe

            Dans mon cas, l'espace de nom est défini par : use Leafo\ScssPhp\Compiler; if suffit donc de ceci :
            Code PHP:
            if (! class_exists('Leafo\ScssPhp\Compiler')) {             
                require_once(
            'scssphp/scss.inc.php');

            Je pense que cela va être une habitude à prendre avant les require de script public pour se prémunir d'une utilisation par une autre extension.

            Note: je comprends l'utilité d'un espace de nom avec une classe qui se nomme compiler
            UP, le plugin universel à découvrir sur https//up.lomart.fr
            bgMax
            , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

            Commentaire

            Annonce

            Réduire
            Aucune annonce pour le moment.

            Partenaire de l'association

            Réduire

            Hébergeur Web PlanetHoster
            Travaille ...
            X