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 :

Séparer le code d'une classe en x fichiers


Sujet :

Langage PHP

  1. #1
    Membre actif Avatar de Gulix
    Inscrit en
    Septembre 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    Points : 273
    Points
    273
    Par défaut Séparer le code d'une classe en x fichiers
    Pour plus de clarté, j'aimerai séparer les différrentes composantes de mes classes en plusieurs fichiers. Par exemple, j'aimerais avoir un fichier concernant tout le code "objet dynamique", et un autre avec le code "statique" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <?php
      class MaClasse
      {
        function __construct()
        {
     
        }
     
        public function MaFonction()
        {
     
        }
     
        include("MaClasse.static.php");
      }
    ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
      function static Statique()
      {
     
      }
    ?>
    Le include du premier fichier ne fonctionne pas et me renvoie l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION
    J'en ai déduit qu'il était impossible d'utiliser include dans une classe. Mes recherches ne m'ont pas montré le contraire, ni ne m'ont indiqué que c'était le cas.
    Comment faites-vous ? Faut-il impérativement que tout le code se trouve dans le même fichier ?

    Merci

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    C'est clairement mentionné dans la documentation :
    Citation Envoyé par http://fr.php.net/manual/fr/language.oop.php
    Vous NE POUVEZ PAS couper la définition d'une classe en plusieurs fichiers.
    (dans la partie php4 mais est toujours valable)

    Faut-il à la place s'orienter sur de l'héritage ?

  3. #3
    Membre actif Avatar de Gulix
    Inscrit en
    Septembre 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    Points : 273
    Points
    273
    Par défaut
    OK, merci pour l'info.
    J'avais cherché dans la doc, mais au niveau du include, et le livre dont je dispose ne mentionne rien à ce niveau.

    Je vais voir pour l'héritage, ça peut être une piste.
    Merci

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

Discussions similaires

  1. Voir le code d'une classe en mode débogage
    Par ensi_en dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 08/10/2010, 16h11
  2. Réponses: 16
    Dernier message: 24/02/2010, 14h14
  3. Comment mettre ce code dans une classe ?
    Par oranocha dans le forum Langage
    Réponses: 2
    Dernier message: 16/07/2008, 14h51
  4. Découper une classe en plusieurs fichiers de code
    Par Christophe_ dans le forum Visual Studio
    Réponses: 1
    Dernier message: 21/06/2007, 20h54
  5. Réponses: 4
    Dernier message: 10/02/2005, 16h10

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