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 :

[POO] Instanciation d'une classe [Fait]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Par défaut [POO] Instanciation d'une classe
    Bonjour à tous,

    J'aimerai un petit renseignement technique

    Je voudrai savoir se qui se passe au niveau de l'occupation mémoire lors des différentes phases de l'utilisation d'une classe.

    1°) lors du include :
    tous le fichier de la class est il chargé dans la page ? ou juste l'adresse de la classe ?

    2°) lors de l'instanciation (new maClass() ) :
    toutes les fonctions sont elles lues, ou juste le constructeur ?

    autrement dit :

    faut-il chercher à réduire le volume de code d'une classe par l'utilisation de sous-classes qui ne seront appelées que si on a besoin de fonctions spécifiques ?

    Merci d'avance de m'éclairer un peu sur ces points

  2. #2
    Membre éprouvé Avatar de Grepsd
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 96
    Par défaut
    Bonjour,

    il me semble que l'interpréteur fait un premier passage et qu'il référence tout pour y accéder quand il en aura besoin(si c'est le cas), c'est pour ça qu'une erreur de syntaxe dans une fonction d'une classe inutilisé (class non instanciée, fonction non appelée) provoque tout de même une erreur.

    Pour répondre à ta question, oui je pense que tout est mis en mémoire pour être réutilisable rapidement.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Par défaut
    Salut Grepsd et merci de ta réponse.

    Il semble donc qu'il faille chercher à faire des classes ciblées (autant que possible ) et des sous classes avec des fonctions supplémentaires bien spécifiques.

    à éviter absolument les classes fourre-tout

    N'hésitez pas à continuer à me donner vos avis et conseils sur cette question.

    Je laisse ce POST ouvert encore un moment

    Si toutefois un modo pense à un moment qu'il faut le clore... ne pas hésiter à me le dire et je mettrai le tag "resolu"

    Bonne continuation à tous

    PS : quelqu'un a-t-il une idée de l'utilisation mémoire ou du temps d'execution d'une classe (pour un volume donné bien sûr) ?

    Je ne sais pas si on doit parler en nombre de lignes ou autre unité de mesure ?

  4. #4
    Membre éprouvé Avatar de Grepsd
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 96
    Par défaut
    http://fr2.php.net/manual/fr/functio...-get-usage.php
    http://fr2.php.net/manual/fr/functio...peak-usage.php

    et

    http://fr2.php.net/manual/fr/function.microtime.php

    Ça devrait t'aider à travailler.

    Mais oui il faut avoir des class portant sur une fonctionnalité précise et éviter les classes fourres-tout.

    Cependant le temps nécessaire pour l'interpréteur PHP à explorer ton code est relativement court, tant que tu n'abuse pas, tu resteras dans des proportions relativement acceptable, c'est le temps d'exécution qui pose souvent problèmes avec des scripts non optimisés/crado

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Par défaut
    Merci Grepsd,

    effectivement c'est une bonne idée de faire ce genre de tests

    d'autant que je dispose d'un programme web que j'avais écrit en procédural avant de le ré-écrire en objet.

    Au delà du coté plus pratique et plus clair de ce programme en POO ça vaut le coups de voir ce que cela donne au niveau des délais d'exécution.

    car même si cela se joue en quelques 1/100 de secondes c'est interessant de voir si c'est 1/100 ou 2/100 car on passe du simple au double.

    ça va pas être evident de comparer car la POO m'a permis de rajouter des fonctionnalités à la plupart des pages (surtout parce qu'elles sont devenues plus lisibles )

    Je viendrai mettre des résultats sur le forum des que j'aurai fait des tests.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2005
    Messages : 138
    Par défaut
    Lorsque tu charge une page l'interpréteur charge tout tes includes liste les classe et méthodes qui pourront être appellé.

    Si par ailleur tu n'utilises (n'instancie pas) pas une des classes (je parle bien de classe POO) chargé, cela ne provoque en aucune manière des erreurs, c'est juste que ta page va mettre un pouillième de seconde de plus a se charger...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/09/2007, 08h55
  2. Réponses: 19
    Dernier message: 02/02/2006, 23h30
  3. Réponses: 3
    Dernier message: 02/12/2005, 15h58
  4. instanciation d'une classe
    Par firejocker dans le forum C++
    Réponses: 6
    Dernier message: 15/11/2005, 11h54
  5. Réponses: 7
    Dernier message: 10/11/2005, 10h09

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