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 :

Les espaces de noms, pas faciles à intégrer


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de a028762
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 419
    Par défaut Les espaces de noms, pas faciles à intégrer
    Soit les classes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    namespace Toto;
    class Espece {
        var $Nom;
    function __construct() {
        $this->Nom = "Nom Toto";
    }
    }
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    namespace Titi;
    class Espece {
        var $Nom;
    function __construct() {
        $this->Nom = "Nom Titi";
    }
    }
    je souhaitais les utiliser dans une application
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    define (br,"<br />");
    require_once "essai_toto.php";
    require_once "essai_titi.php";
    use Toto\Espece;
    $UneEspece = new Toto\Espece();
    echo $UneEspece->Nom.br;
     
    use Titi\Espece;
    $AutreEspece = new Titi\Espece();
    echo $AutreEspece->Nom.br;
    et là, peau de balle !
    Impossible de créer des classes de même nom dans 2 espaces différents .
    C'est du moins ce que je cherche à faire ...
    la syntaxe use Toto est déjà refusée avec le message :
    The use statement with non-compound name 'Toto' has no effect in ...
    ce qui est déjà curieux ... vu de ma fenêtre ...
    je pensais que ces namespaces étaient utilisés justement pour "étanchéïfier" des classes les unes par rapport aux autres ... s'il faut aussi les renommer, je ne vois pas bien l'intérêt ....

  2. #2
    Membre éclairé Avatar de a028762
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 419
    Par défaut Un peu d'effort, on va y arriver
    En reprenant mon code final
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    define (br,"<br />");                 # Je n'aime pas le HTML mélangé avec du PHP :-)
    require_once "essai_toto.php";
    require_once "essai_titi.php";
    use Toto\Espece as ToEspece;
    $UneEspece = new ToEspece();
    echo $UneEspece->Nom.br;
     
    use Titi\Espece as TiEspece;
    $AutreEspece = new TiEspece();
    echo $AutreEspece->Nom.br;
    Je crois avoir trouvé une solution qui me conviendrais ...
    Il faudra aussi vérifier que les extends soient utilisés à travers plusieurs espaces ....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Les espaces de noms en PHP 5.3
    Par RideKick dans le forum Langage
    Réponses: 33
    Dernier message: 26/01/2009, 05h29
  2. [DOM] Générer dans un document DOM les espaces de nom + schemaLocation
    Par be_tnt dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 09/10/2006, 14h28
  3. Supprimer les espaces des noms de fichier
    Par Cathy dans le forum Linux
    Réponses: 20
    Dernier message: 04/08/2005, 18h13
  4. [typedef] protection à travers les espaces de noms
    Par PINGOUIN_GEANT dans le forum C++
    Réponses: 7
    Dernier message: 02/02/2005, 21h21

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