Aller au contenu

Fonction include ou require?


Sujets conseillés

Posté

Bonjour à tous !

J'aimerais que vous me renseigneriez sur la fonction include ou bien require.

J'en ai effectivement besoin pour mon site, et quelle est la différence entre ces deux fonctions?

Merci de me répondre !

A bientôt !

PS : Pourquoi ne puis-je pas ouvrir de topic dans la ruubrique "Partenariat et échanges de liens" ?

Posté

Pour bien faire il faut utiliser require_once() ;)

http://be2.php.net/manual/fr/function.require-once.php

sinon pour la différence. require génère un erreur fatal et donc interrompt le script à la différence de l'include. Les once font juste en sorte que le script ne puisse être inclut qu'une seul fois, évitant ainsi de redéclarer des variables par exemple.

Posté (modifié)

Dsolé mais la...

ABSOLUMENT PAS D'ACCORD :o)

L'utilisation de require peut être necessaire parce que JUSTEMENT, elle génère une erreur fatale...

A savoir si l'utilisation du require inclut un fichier d'obligation de présence genre menu (menu.php).

J'explique :

Imaginons une page index avec un appel du menu de navigation... la page ne peut etre affichée sans le dit menu d'ou l'utilité d'une erreur fatale.

En fait cette fonction require est extremement utile dans la prévention d'affichage non buggé dans l'état ou justement l'affichage ne se fait pas. En gros si le menu "menu.php" n'existe pas, require() fera une erreur fatale utile dans le sens ou une autre fonction type include() n'affichera pas d'erreur et donc aucune information n'est transmise directement en affichage quand au fichier manquant.

Selon l'importance de ton fichier d'appel, il faudra plus opter pour require() qu'autre chose. Sauf en cas de soucis esthétique mais de par le fait, tu risques de ne pas etre au courant d'un manquement de fichier.

Donc en gros :

Si ton fichier appellé est extremement important pour l affichage de ta page il est préférable d'avoir une erreur directement grossiere et forte qui permettra a un tier de te prévenir.

Enfin il me semble. Sauf si tu es tout le derriere tes page et tes logs pour la gestion des erreurs.

:)

J'espère ne choquer personne :)

PS:

Evidement, cette explication est valable pour un skill novice en développement, car pour une véritable résolution on fait un appel par création de fonction propre pour vérifier la validité et la présence et également renvoyer une close d'erreur immédiate. Mais c'est un autre sujet.

Modifié par ASC
Posté

Je suis d'accord avec toi, ASC, mais je pondèrerai différemment l'importance des fichiers.

Selon moi, un require ne doit s'effectuer que pour des fichier de configuration (appels de fonctions, connexion à la BDD, etc). Tous les fichiers de présentation peuvent être appelés par include; je préfère avoir une page sans menu (mais avec du contenu référençable) qu'une page sans rien (ni menu, ni contenu).

Posté
L'utilisation de require peut être necessaire parce que JUSTEMENT, elle génère une erreur fatale...
J'ai du mal à suivre cette argumentation. Je ne vois pas trop à quoi ça sert avec un script testé de manière sérieuse.

Personne n'est à l'abri d'un bug, mais prétendre que "require" doit être utilisé pour détecter des erreurs ne me convainc pas: si tu suspectes que la fonction pourrait déjà être définie, pourquoi n'ajoutes-tu pas un test dans ton script ?

Jean-Luc

Posté
Dsolé mais la...

ABSOLUMENT PAS D'ACCORD :o)

L'utilisation de require peut être necessaire parce que JUSTEMENT, elle génère une erreur fatale...

Evidement, cette explication est valable pour un skill novice en développement, car pour une véritable résolution on fait un appel par création de fonction propre pour vérifier la validité et la présence et également renvoyer une close d'erreur immédiate. Mais c'est un autre sujet.

Il TRY, il CATCH ET et et ... Bah c'est qu'on a dit ^^ je préconise le require et encore mieux le require_once

Posté
[...] Je ne vois pas trop à quoi ça sert avec un script testé de manière sérieuse.[...]

Jean-Luc

C'est ce que je dis quand je parle de skill :o) en fait la dans ce cas il semble que les vérifications 'sérieuse' ne soient pas faites en amont. Donc pour être sur qu'il est bien un message d'erreur en cas de plantage l'utilisation de require() permettra qu'il soit informé de l'erreur (puisqu'apparement il n'y a aucune verifs sérieuse en amont)

Après comme je le dis c'est vraiment pour ce cas spécifique. Dans le cas d'un script avec une vérification sérieuse... le problème ne se pose même plus.

Comme j'essayais de l'expliquer dans ce cas précis... l'utilisation de require() permettra de savoir si il y a un plantage.

Cette fonction (jamais utilisé à un certain niveau) servira de message d'erreur et donc permettra de savoir qu'il y a un problème à résoudre.

Mais comme dit par jean luc,

Pour un script propre il faut déjà avoir une vérification en amont du dit script et l'utilisation de require() là ne sert absolument pas.

D'ailleurs comme dit pas tous à un certain niveau require() est prohibé.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...