JeuWeb - Crée ton jeu par navigateur
petite question sur include. - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : petite question sur include. (/showthread.php?tid=1966)

Pages : 1 2 3


petite question sur include. - gameprog2 - 29-09-2010

Bonjour, une tite question car je suis en train de faire la page des tests et inscription, merci ^^

Est-ce que l'include du fichier de connection peut se faire à n'importe quel endroit de la page PHP qui appelle ?


RE: petite question sur include. - niahoo - 29-09-2010

oui, mais généralement on se débrouille pour inclure tout ce qui est fichier de config en début de script.


RE: petite question sur include. - Aleskweb - 29-09-2010

Oui, le mieux, selon moi c'est de le foutre direct avant tout htlm.


RE: petite question sur include. - niahoo - 29-09-2010

avant tout html bien sur, mais pas que ! avant tout traitement également. enfin ça dépends de l'architecture de ton programme, mais moi généralement dans mes devs je n'inclus que des librairies. (et avec "require_once", pas 'include')


RE: petite question sur include. - Globe - 29-09-2010

(29-09-2010, 06:37 PM)niahoo a écrit : avant tout html bien sur, mais pas que ! avant tout traitement également. enfin ça dépends de l'architecture de ton programme, mais moi généralement dans mes devs je n'inclus que des librairies. (et avec "require_once", pas 'include')

Je me posais justement la question de l'intérêt des require_once et include_once. J'ai bien compris que c'est pour que le fichier ne soit appelé qu'une fois mais quel intérêt pratique ? Une question de sécurité peut être ou de performances ?


RE: petite question sur include. - Ter Rowan - 29-09-2010

avant tout une question de déclaration de classe / variable / etc

Supposons un modèle de classe du type :


C hérite de A
B hérite e A


dans c.php tu mettras include_once A."php"
dans b.php tu mettras include_once A."php"



dans toto.php ou tu inclus c.php et b.php

tu es certain que a ne sera inclut qu'une fois


RE: petite question sur include. - niahoo - 29-09-2010

require déclenche une erreur fatale si le fichier n'est pas trouvé, donc ton script ne continue pas de s'exécuter avec du code manquant, ce qui empêche de voir 40 erreurs successives.

require est fait pour n'appeller qu'une seule fois le fichier, nickel pour charger une librairie. Include, lui, permet d'inclure plusieurs fois le même fichier, ça peut être pratique pour inclure un fichier de vue contenant la vue pour un post par exemple, et si tu dois afficher 5 posts tu mets l'include dans une boucle. perso je suis pas fan de cette méthode.
avec require, si le fichier à déjà été appelé, la demande est ignorée.

enfin, les '_once' permettent de ne pas avoir d'erreur si le fichier appelé contient une définition de fonction, de constante(pas sur), ou de classe. sinon tu aurais "fonction déjà définie dans tel fichier, à telle ligne, errrrrror".
mais si tu suis ma logique, les includes ne sont pas censés contenir des définitions. quant au require, si le fichier était vraiment ignoré lors d'un second appel, il n'y aurait pas besoin du '_once'. encore un illogisme de php peut-être, ensuite tout ce que je dis je l'ai lu sur la doc mais je n'ai jamais vraiment fait de tests.

edit@ter rowan : il te faut mettre require, et pas include, sinon, si le fichier a.php est manquant, tu auras une belle erreur d'impossibilité d'hériter. bon, ceci dit, dans l'autre cas tu auras une belle erreur de fichier manquant.


-----------------------------

bon, après être allé lire la doc, require balance une erreur de compilation et pas une fatal error.
par contre, même si le fichier n'est pas inclus une seconde fois avec require, il est quand même évalué, d'où la nécéssité du '_once'.


RE: petite question sur include. - Globe - 29-09-2010

Donc si j'ai bien compris c'est plus ou moins au cas ou c'est le gros bordel dans tes pages ? :good:


RE: petite question sur include. - niahoo - 29-09-2010

non c'est pour bien masquer les erreurs.
edit: pas masquer, mais avoir l'erreur la plus proche de la réalité, et une erreur blocante.
dans mes librairies, je mets tous les require en haut de fichier. et je les mets en commentaire, j'utilise ensuite la fonction __autoload ou un fichier qui inclut tout en masse au départ (dans lequel je peux commenter les lignes pour les fichiers qui ne serviront pas à telle ou telle appli. ça fait un genre de fichier de sélection des fonctionnalités).

mais quand tu vois les imports en python à côté, tu pleures. php à été pensé comme un langage compilé je trouve, et ça c'est pas très dynamique.


RE: petite question sur include. - Globe - 29-09-2010

Ok, bah c'est sûrement parce que quand je code c'est souvent très simple, j'utilise les bonnes fonctions mais je me demandais juste pourquoi il fallait les privilégier. Perso j'évite à tout prix d'avoir des inclusions dans les fichier que j'ai déjà inclus ça me fait tourner la tête après de réfléchir ou se trouve quoi.