IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Namespace et use global


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Par défaut Namespace et use global
    Bonjour tout le monde,

    pour une besoin extrêmement spécifique (mais important), j'ai besoin de faire une sorte de use global, ou au pire un use avec une variable.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #fichier main
    global use Anything as Lib;
     
    #fichier 1
    namespace Toto;
    Lib\test();
    ou au pire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    namespace Totot;
    use $myLib as Lib;
    D'après mes recherches et mes tests ce n'est pas possible. Mais peut-être quelque chose m'a échappé ?

    PS: je ne souhaite pas rentrer dans le débat propre/pas propre, j'ai un besoin auquel je souhaite répondre, pourquoi pas par cette solution si elle existe, c'est tout

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bonjour Halleck,

    J'ai déjà été confronté à ce problème et j'arrive à la même conclusion que toi : c'est impossible en l'état du PHP ou du moins après tout un tas d'essais, je n'y suis pas arrivé.

    Par contre je suis arrivé à contourner cette limitation en jouant judicieusement avec l'autoloader. Enfin je ne sais pas si ton problème est lié à l'autoloading ou pas.

  3. #3
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Par défaut
    Oui l'autoloader permet de contourner le problème de chargement, mais pas de typage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function toto(\Lib\Totot $oTotot) {}

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    je vois pas trop l'intérêt de faire ca ? c'est pour évité de faire un use par classe ?

  5. #5
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Par défaut
    Je bosse sur un contexte très particulier, sur un très gros projet et une archi très complexe (que je ne peux pas détailler ici car trop grosse), qui nous oblige à avoir plusieurs contextes pour une même application.

    Un use global nous simplifierait la vie. Après, si ce n'est pas possible, et bien on trouvera autre chose

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    use c'est uniquement les classes et malheureusement y'a pas de wildcard comme dans les autres langages (ça viendra peu être... *)
    * d'après les devs ça ralentirai le code de faire de cette façon
    http://bugs.php.net/bug.php?id=47872

Discussions similaires

  1. namespace sans using
    Par xavierdestev dans le forum Débuter
    Réponses: 3
    Dernier message: 23/06/2013, 18h39
  2. Réponses: 9
    Dernier message: 23/08/2011, 10h18
  3. namespaces et using redondants
    Par leiwulang dans le forum ASP.NET
    Réponses: 3
    Dernier message: 01/07/2008, 15h55
  4. probleme avec : using namespace
    Par firejocker dans le forum C++
    Réponses: 3
    Dernier message: 28/11/2005, 12h15
  5. using namespace std...
    Par miminou dans le forum SL & STL
    Réponses: 14
    Dernier message: 24/10/2005, 10h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo