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 :

Include Vs function


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 169
    Points : 34
    Points
    34
    Par défaut Include Vs function
    Bonjour.

    Y-a-t-il des différences d'exploitation entre include et function hors mis :

    - Function permet de lancer plusieurs fois une même opération sans ajouter de code.
    - Function permet une plus grande flexibilité dans les noms des variables.

    - Include permet de ne pas surcharger le serveur avec des codes inutilisés.
    - Include permet d'éviter les soucis de return de plusieurs variables sous forme d'array.


    En clair si ma fonction n'est utilisée qu'une fois et que mes variables ont toujours le même nom.
    Et si cette fonction n'est exploitée qu'a de rares occasion, ne serait-ce pas pus judicieux d'en faire un include (sans function) qui se lance à son chargement ?

    Bonne journée

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Bonjour,

    functionet includen'ont strictement rien à voir et ne serve pas à la même chose. Vouloir les comparer dans leur fonctionnement c'est comme comme comparer une patate et une voiture.

    Une function sert à regrouper un ensemble d'instruction pour en faciliter l'appel. Une fonction retourne ou non une valeur après avoir été appelé.

    Un include quant à lui sert à venir inclure du code qui se trouve ailleurs. Par exemple j'ai un fichier A , qui à besoin d'un code se situant dans le fichier B , je vais utiliser un include (ou require) qui va concaténé le contenu des 2 fichiers pour que le code de B devienne connu de A.

    On peut donc utiliser un include pour utiliser une function se trouvant dans un autre fichier.

    Exemple :
    myfunction.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function multiply($a,$b)
    {
        return $a * $b
    }
    index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    include 'myfunction.php'; // obligatoire , sinon multiply() est inconnu
    echo multiply(2,2); // affiche 4
    Quand on inclus un fichier, ça doit être un fichier structuré comme par exemple une classe ou un ensemble de fonction. On évite au maximum d'inclure un fichier qui contient du code seul. c'est source de problème.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 169
    Points : 34
    Points
    34
    Par défaut
    Merci pour cette réponse.

    On évite au maximum d'inclure un fichier qui contient du code seul. c'est source de problème.
    C'est ca qui m’intéresse.
    Car point de vu économie serveur charger tout un tas de fonctions inutiles ca alourdie grandement.
    C'est pour cela que je pensais à utiliser include pour les codes non récurrents.

    C'est quoi les risque d'injection de codes directement actif via un include ?

    Pour mes fonctions ponctuelles, si je colle une fonction dans une fichier puis que j’include se ou ses fichiers en début de page pour les exécuter ensuite au moment voulu est-ce acceptable ?



    Bonne journée

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Citation Envoyé par westernz Voir le message
    Car point de vu économie serveur charger tout un tas de fonctions inutiles ca alourdie grandement.
    À moins que tu ne programmes sur un Raspberry Pi (et encore!), l'effet de charger des fonctions inutilisées est négligeable, et avec PHP 5.5 et + c'est encore plus infime.

    Citation Envoyé par westernz Voir le message
    C'est quoi les risque d'injection de codes directement actif via un include ?
    - C'est du code actif, çad qui s'exécute tout de suite. Tu dois donc placer les includes au bon endroit dans le fichier, et tu finis par te retrouver avec des includes qui incluent des includes qui incluent des includes. Un cauchemar pour la maintenance.

    - C'est moins flexible. Tu modifies le résultat d'une fonction en modifiant ses paramètres. Pour modifier le résultat d'un code exécutable dans un include, il faut modifier des variables globales qui affectent tout le fichier (et les fichiers qu'il inclut, et les fichiers qui l'incluent), et avoir des effets secondaires (= bugs) à des endroits imprévus.

    - C'est difficilement réutilisable, que ce soit dans un autre fichier ou dans une autre application.

    - Les classes et les fonctions sont mis en cache par Opcache (PHP 5.5 et +) afin que leur réutilisation soit plus rapide, bien que les variables simples soient aussi mises en cache. Tu améliores donc ta performance en les utilisant.

  5. #5
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Citation Envoyé par westernz Voir le message
    Car point de vu économie serveur charger tout un tas de fonctions inutiles ca alourdie grandement.
    Ne te prend pas la tête a essayer d'optimiser quoi que ce soit.

    Les micros optimisations c'est dans 99% des cas une perte de temps tout simplement car les plus grosses pertes de performance viennent avant tout d'algorithme mal pensé ou de base de données mal conçues.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Include et function
    Par BRUNO71 dans le forum Langage
    Réponses: 4
    Dernier message: 31/03/2011, 19h36
  2. Warning: include() [function.include]: Failed opening
    Par FotoXe33 dans le forum Langage
    Réponses: 2
    Dernier message: 12/07/2009, 18h49
  3. include or die function ?
    Par mathieu3392 dans le forum Langage
    Réponses: 3
    Dernier message: 03/07/2008, 13h33
  4. [Système] PB d'include : "can't redefine function .."
    Par popovitch130 dans le forum Langage
    Réponses: 5
    Dernier message: 17/10/2007, 11h16
  5. Réponses: 8
    Dernier message: 16/11/2005, 14h11

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