Le Thu, 13 May 2004 02:13:35 +0000, Luc Martineau a écrit :
Bonjour,
Bonjour,
J'aimerais savoir comment vous modularisez vos scripts php.
Exactement comme tu le fais dans ton exemple (enfin peut-être pas non plus une seule fonction par fichier mais c'était un exemple là).
Merci
Avec plaisir, -- Nicolas Cavigneaux | GPG KeyID : F0954C41 | http://bounga.ath.cx
Stephane Thomas
Salut,
Puisse que l'on parle de require() et de include() j'aimerai savoir si quelqu'un peut m'éclairer sur les différences entre ces deux fonctions qui d'un point de vue fonctionnel font la même chose ? Parce que voilà ce que moi j'en ai compris :
require() intègre le code du fichier appelé dans le fichier appelant avant d'interpréter le fichier appelant. include() interprète le fichier appelé et stock le résultat en mémoire.
Ce qui fait que require() est plus gourmand en ressources (on réinterprète à chaque fois) mais sur, tandis que include() et plus rapide mais plus dur à gérer car il faut penser à la portée de cet appel.
Je sens que je suis peut-être pas très clair là, sinon, j'ai bien compris ou je retourne RTFM ?
Personnelement j'utilise tout le temps require()
Et require_once() c'est encore différent ?
Stef
Salut,
Puisse que l'on parle de require() et de include() j'aimerai savoir si
quelqu'un peut m'éclairer sur les différences entre ces deux fonctions
qui d'un point de vue fonctionnel font la même chose ? Parce que voilà
ce que moi j'en ai compris :
require() intègre le code du fichier appelé dans le fichier appelant
avant d'interpréter le fichier appelant.
include() interprète le fichier appelé et stock le résultat en mémoire.
Ce qui fait que require() est plus gourmand en ressources (on
réinterprète à chaque fois) mais sur, tandis que include() et plus
rapide mais plus dur à gérer car il faut penser à la portée de cet appel.
Je sens que je suis peut-être pas très clair là, sinon, j'ai bien
compris ou je retourne RTFM ?
Puisse que l'on parle de require() et de include() j'aimerai savoir si quelqu'un peut m'éclairer sur les différences entre ces deux fonctions qui d'un point de vue fonctionnel font la même chose ? Parce que voilà ce que moi j'en ai compris :
require() intègre le code du fichier appelé dans le fichier appelant avant d'interpréter le fichier appelant. include() interprète le fichier appelé et stock le résultat en mémoire.
Ce qui fait que require() est plus gourmand en ressources (on réinterprète à chaque fois) mais sur, tandis que include() et plus rapide mais plus dur à gérer car il faut penser à la portée de cet appel.
Je sens que je suis peut-être pas très clair là, sinon, j'ai bien compris ou je retourne RTFM ?
Personnelement j'utilise tout le temps require()
Et require_once() c'est encore différent ?
Stef
Luc Martineau
Stephane Thomas wrote:
Salut,
Salut
require() intègre le code du fichier appelé dans le fichier appelant avant d'interpréter le fichier appelant. include() interprète le fichier appelé et stock le résultat en mémoire.
Ce que j'avais compris à propos de la différence entre require() et include() est que require() fait planter le script si le fichier n'est pas là tandis que l'on a un "warning" avec include().
Ce qui fait que require() est plus gourmand en ressources (on réinterprète à chaque fois) mais sur, tandis que include() et plus rapide mais plus dur à gérer car il faut penser à la portée de cet appel.
De plus, on dit que require() et include() sont identiques, sauf dans leur façon de gérer les erreurs.
http://ca.php.net/manual/fr/function.require.php
Donc j'imagine qu'il n'y a pas de différence à propos de la gourmandise
Personnelement j'utilise tout le temps require()
Et require_once() c'est encore différent ? Je ne sais pas.
Luc
Stephane Thomas wrote:
Salut,
Salut
require() intègre le code du fichier appelé dans le fichier appelant
avant d'interpréter le fichier appelant.
include() interprète le fichier appelé et stock le résultat en mémoire.
Ce que j'avais compris à propos de la différence entre require() et include()
est que require() fait planter le script si le fichier n'est pas là tandis que
l'on a un "warning" avec include().
Ce qui fait que require() est plus gourmand en ressources (on
réinterprète à chaque fois) mais sur, tandis que include() et plus
rapide mais plus dur à gérer car il faut penser à la portée de cet appel.
De plus, on dit que require() et include() sont identiques, sauf dans leur façon
de gérer les erreurs.
http://ca.php.net/manual/fr/function.require.php
Donc j'imagine qu'il n'y a pas de différence à propos de la gourmandise
Personnelement j'utilise tout le temps require()
Et require_once() c'est encore différent ?
Je ne sais pas.
require() intègre le code du fichier appelé dans le fichier appelant avant d'interpréter le fichier appelant. include() interprète le fichier appelé et stock le résultat en mémoire.
Ce que j'avais compris à propos de la différence entre require() et include() est que require() fait planter le script si le fichier n'est pas là tandis que l'on a un "warning" avec include().
Ce qui fait que require() est plus gourmand en ressources (on réinterprète à chaque fois) mais sur, tandis que include() et plus rapide mais plus dur à gérer car il faut penser à la portée de cet appel.
De plus, on dit que require() et include() sont identiques, sauf dans leur façon de gérer les erreurs.
http://ca.php.net/manual/fr/function.require.php
Donc j'imagine qu'il n'y a pas de différence à propos de la gourmandise
Personnelement j'utilise tout le temps require()
Et require_once() c'est encore différent ? Je ne sais pas.
Luc
Olivier Miakinen
Le 14/05/2004 04:17, Luc Martineau répondait à Stéphane Thomas :
require() intègre le code du fichier appelé dans le fichier appelant avant d'interpréter le fichier appelant. include() interprète le fichier appelé et stock le résultat en mémoire.
http://ca.php.net/manual/fr/function.require.php
Donc j'imagine qu'il n'y a pas de différence à propos de la gourmandise
Et require_once() c'est encore différent ? Je ne sais pas.
Là encore la réponse est dans la doc. http://ca.php.net/manual/fr/function.require-once.php
<cit.> La principale différence est qu'avec require_once(), vous êtes assurés que ce code ne sera ajouté qu'une seule fois, évitant de ce fait les redéfinitions de variables ou de fonctions, génératrices d'alertes. </cit.>
Le 14/05/2004 04:17, Luc Martineau répondait à Stéphane Thomas :
require() intègre le code du fichier appelé dans le fichier appelant
avant d'interpréter le fichier appelant.
include() interprète le fichier appelé et stock le résultat en mémoire.
http://ca.php.net/manual/fr/function.require.php
Donc j'imagine qu'il n'y a pas de différence à propos de la gourmandise
Et require_once() c'est encore différent ?
Je ne sais pas.
Là encore la réponse est dans la doc.
http://ca.php.net/manual/fr/function.require-once.php
<cit.>
La principale différence est qu'avec require_once(), vous êtes assurés
que ce code ne sera ajouté qu'une seule fois, évitant de ce fait les
redéfinitions de variables ou de fonctions, génératrices d'alertes.
</cit.>
Le 14/05/2004 04:17, Luc Martineau répondait à Stéphane Thomas :
require() intègre le code du fichier appelé dans le fichier appelant avant d'interpréter le fichier appelant. include() interprète le fichier appelé et stock le résultat en mémoire.
http://ca.php.net/manual/fr/function.require.php
Donc j'imagine qu'il n'y a pas de différence à propos de la gourmandise
Et require_once() c'est encore différent ? Je ne sais pas.
Là encore la réponse est dans la doc. http://ca.php.net/manual/fr/function.require-once.php
<cit.> La principale différence est qu'avec require_once(), vous êtes assurés que ce code ne sera ajouté qu'une seule fois, évitant de ce fait les redéfinitions de variables ou de fonctions, génératrices d'alertes. </cit.>
Bruno Desthuilliers
Luc Martineau wrote:
Bonjour,
J'aimerais savoir comment vous modularisez vos scripts php.
Comme on peut... A la hache, en général !-)
En lisant la doc, j'ai vu qu'il y a deux fonctions pour inclure des fichiers dans un script php : require et include.
Heu... la modularité, c'est bien, mais point trop n'en faut. Une fonction par fichier, c'est peut-être un poil excessif, non ? Regroupe les fonctions qui travaillent ensemble, ce sera plus lisible et plus facile à maintenir.
Par ailleurs, PHP est *très* limité du point de vue des règles de visibilité et de portée des symboles : c'est ou local à une fonction, ou global, il n'y a pas de niveau 'module' intermédiaire. C'est assez chianf quand - comme c'est très souvent le cas - les fonctions 'publiques' d'un module (celles destinées à être appelées de l'exterieur) ont besoin de partager des fonctions ou des variables d'état qui ne concernent pas le code appelant, puisque ces fonctions et variables seront globalement accessibles.
Les deux solutions existantes sont : - avoir un ensemble de conventions claires et documentées (ex : toutes les fonctions et variables d'un module commencent par un prefix commun, tout ce qui relève de l'implémentation du module est en plus préfixé par un '_', et le code appelant fait comme s'il ne connaissait pas ce qui commence par un '_') - utiliser des classes, ne serait-ce que comme espace de nommage intermédiaire entre le niveau global et le niveau local. Ce n'est pas réellement de la POO au sens où on le comprend aujourd'hui, mais bon, les classes sont quand même, historiquement, une extension du concept de 'module' (une classe étant - si on fait abstraction des autres concepts objet - un module instanciable).
Personnellement, je privilégie en général la seconde solution.
Bruno
Luc Martineau wrote:
Bonjour,
J'aimerais savoir comment vous modularisez vos scripts php.
Comme on peut... A la hache, en général !-)
En lisant la doc, j'ai vu qu'il y a deux fonctions pour inclure des
fichiers dans un script php : require et include.
Heu... la modularité, c'est bien, mais point trop n'en faut. Une
fonction par fichier, c'est peut-être un poil excessif, non ? Regroupe
les fonctions qui travaillent ensemble, ce sera plus lisible et plus
facile à maintenir.
Par ailleurs, PHP est *très* limité du point de vue des règles de
visibilité et de portée des symboles : c'est ou local à une fonction, ou
global, il n'y a pas de niveau 'module' intermédiaire. C'est assez
chianf quand - comme c'est très souvent le cas - les fonctions
'publiques' d'un module (celles destinées à être appelées de
l'exterieur) ont besoin de partager des fonctions ou des variables
d'état qui ne concernent pas le code appelant, puisque ces fonctions et
variables seront globalement accessibles.
Les deux solutions existantes sont :
- avoir un ensemble de conventions claires et documentées (ex : toutes
les fonctions et variables d'un module commencent par un prefix commun,
tout ce qui relève de l'implémentation du module est en plus préfixé
par un '_', et le code appelant fait comme s'il ne connaissait pas ce
qui commence par un '_')
- utiliser des classes, ne serait-ce que comme espace de nommage
intermédiaire entre le niveau global et le niveau local. Ce n'est pas
réellement de la POO au sens où on le comprend aujourd'hui, mais bon,
les classes sont quand même, historiquement, une extension du concept de
'module' (une classe étant - si on fait abstraction des autres concepts
objet - un module instanciable).
Personnellement, je privilégie en général la seconde solution.
Heu... la modularité, c'est bien, mais point trop n'en faut. Une fonction par fichier, c'est peut-être un poil excessif, non ? Regroupe les fonctions qui travaillent ensemble, ce sera plus lisible et plus facile à maintenir.
Par ailleurs, PHP est *très* limité du point de vue des règles de visibilité et de portée des symboles : c'est ou local à une fonction, ou global, il n'y a pas de niveau 'module' intermédiaire. C'est assez chianf quand - comme c'est très souvent le cas - les fonctions 'publiques' d'un module (celles destinées à être appelées de l'exterieur) ont besoin de partager des fonctions ou des variables d'état qui ne concernent pas le code appelant, puisque ces fonctions et variables seront globalement accessibles.
Les deux solutions existantes sont : - avoir un ensemble de conventions claires et documentées (ex : toutes les fonctions et variables d'un module commencent par un prefix commun, tout ce qui relève de l'implémentation du module est en plus préfixé par un '_', et le code appelant fait comme s'il ne connaissait pas ce qui commence par un '_') - utiliser des classes, ne serait-ce que comme espace de nommage intermédiaire entre le niveau global et le niveau local. Ce n'est pas réellement de la POO au sens où on le comprend aujourd'hui, mais bon, les classes sont quand même, historiquement, une extension du concept de 'module' (une classe étant - si on fait abstraction des autres concepts objet - un module instanciable).
Personnellement, je privilégie en général la seconde solution.
Bruno
Bruno Desthuilliers
Stephane Thomas wrote:
Salut,
Puisse que l'on parle de require() et de include() j'aimerai savoir si quelqu'un peut m'éclairer sur les différences entre ces deux fonctions qui d'un point de vue fonctionnel font la même chose ? Parce que voilà ce que moi j'en ai compris :
require() intègre le code du fichier appelé dans le fichier appelant avant d'interpréter le fichier appelant. include() interprète le fichier appelé et stock le résultat en mémoire.
Ce qui fait que require() est plus gourmand en ressources (on réinterprète à chaque fois) mais sur, tandis que include() et plus rapide mais plus dur à gérer car il faut penser à la portée de cet appel.
Je sens que je suis peut-être pas très clair là, sinon, j'ai bien compris ou je retourne RTFM ?
PAQJS, et après avoir re RTFM, les deux fonctionnent exactement de la même façon, à l'exception du niveau d'erreur généré si le fichier n'est pas trouvé (warning pour un include, erreur pour un require).
Personnelement j'utilise tout le temps require()
Personnellement, j'utilise require_once pour les dépendances (ex: utilisation d'une bibliothèque de fonctions/classes, donc indispensable) et (plus rarement) include ou include_once pour des fichiers de config ou assimilés.
Et require_once() c'est encore différent ?
require_once et include_once, comme leur nom l'indique, n'appellent qu'une fois chaque fichier inclus. Cela permet de gérer simplement les problèmes d'inclusions multiples
ex : un script depend de deux bibliothèques de fonctions qui dépendent toutes deux d'une (même) troisième bibliothèque... Si les deux biblio utilisent require pour inclure la troisième, tu va avoir une erreur de redéfinition de symbole (ceux définis dans la troisième bibliothèque), alors qu'avec require_once la troisième bibliothèque sera appelée une fois seulement.
HTH Bruno
Stephane Thomas wrote:
Salut,
Puisse que l'on parle de require() et de include() j'aimerai savoir si
quelqu'un peut m'éclairer sur les différences entre ces deux fonctions
qui d'un point de vue fonctionnel font la même chose ? Parce que voilà
ce que moi j'en ai compris :
require() intègre le code du fichier appelé dans le fichier appelant
avant d'interpréter le fichier appelant.
include() interprète le fichier appelé et stock le résultat en mémoire.
Ce qui fait que require() est plus gourmand en ressources (on
réinterprète à chaque fois) mais sur, tandis que include() et plus
rapide mais plus dur à gérer car il faut penser à la portée de cet appel.
Je sens que je suis peut-être pas très clair là, sinon, j'ai bien
compris ou je retourne RTFM ?
PAQJS, et après avoir re RTFM, les deux fonctionnent exactement de la
même façon, à l'exception du niveau d'erreur généré si le fichier n'est
pas trouvé (warning pour un include, erreur pour un require).
Personnelement j'utilise tout le temps require()
Personnellement, j'utilise require_once pour les dépendances (ex:
utilisation d'une bibliothèque de fonctions/classes, donc indispensable)
et (plus rarement) include ou include_once pour des fichiers de config
ou assimilés.
Et require_once() c'est encore différent ?
require_once et include_once, comme leur nom l'indique, n'appellent
qu'une fois chaque fichier inclus. Cela permet de gérer simplement les
problèmes d'inclusions multiples
ex : un script depend de deux bibliothèques de fonctions qui dépendent
toutes deux d'une (même) troisième bibliothèque... Si les deux biblio
utilisent require pour inclure la troisième, tu va avoir une erreur de
redéfinition de symbole (ceux définis dans la troisième bibliothèque),
alors qu'avec require_once la troisième bibliothèque sera appelée une
fois seulement.
Puisse que l'on parle de require() et de include() j'aimerai savoir si quelqu'un peut m'éclairer sur les différences entre ces deux fonctions qui d'un point de vue fonctionnel font la même chose ? Parce que voilà ce que moi j'en ai compris :
require() intègre le code du fichier appelé dans le fichier appelant avant d'interpréter le fichier appelant. include() interprète le fichier appelé et stock le résultat en mémoire.
Ce qui fait que require() est plus gourmand en ressources (on réinterprète à chaque fois) mais sur, tandis que include() et plus rapide mais plus dur à gérer car il faut penser à la portée de cet appel.
Je sens que je suis peut-être pas très clair là, sinon, j'ai bien compris ou je retourne RTFM ?
PAQJS, et après avoir re RTFM, les deux fonctionnent exactement de la même façon, à l'exception du niveau d'erreur généré si le fichier n'est pas trouvé (warning pour un include, erreur pour un require).
Personnelement j'utilise tout le temps require()
Personnellement, j'utilise require_once pour les dépendances (ex: utilisation d'une bibliothèque de fonctions/classes, donc indispensable) et (plus rarement) include ou include_once pour des fichiers de config ou assimilés.
Et require_once() c'est encore différent ?
require_once et include_once, comme leur nom l'indique, n'appellent qu'une fois chaque fichier inclus. Cela permet de gérer simplement les problèmes d'inclusions multiples
ex : un script depend de deux bibliothèques de fonctions qui dépendent toutes deux d'une (même) troisième bibliothèque... Si les deux biblio utilisent require pour inclure la troisième, tu va avoir une erreur de redéfinition de symbole (ceux définis dans la troisième bibliothèque), alors qu'avec require_once la troisième bibliothèque sera appelée une fois seulement.
HTH Bruno
Luc Martineau
Stephane Thomas wrote:
Salut, Salut
Puisse que l'on parle de require() et de include() j'aimerai savoir si quelqu'un peut m'éclairer sur les différences entre ces deux fonctions qui d'un point de vue fonctionnel font la même chose ? Parce que voilà ce que moi j'en ai compris :
require() intègre le code du fichier appelé dans le fichier appelant avant d'interpréter le fichier appelant. include() interprète le fichier appelé et stock le résultat en mémoire.
Ce que j'avais compris à propos de la différence entre require() et include() est que require() fait planter le script si le fichier n'est pas là tandis que l'on a un "warning" avec include().
Ce qui fait que require() est plus gourmand en ressources (on réinterprète à chaque fois) mais sur, tandis que include() et plus rapide mais plus dur à gérer car il faut penser à la portée de cet appel.
De plus, on dit que require() et include() sont identiques, sauf dans leur façon de gérer les erreurs.
http://ca.php.net/manual/fr/function.require.php
Donc j'imagine qu'il n'y a pas de différence à propos de la gourmandise :-)
Et require_once() c'est encore différent ? Je sais pas.
Luc
Stephane Thomas wrote:
Salut,
Salut
Puisse que l'on parle de require() et de include() j'aimerai savoir si
quelqu'un peut m'éclairer sur les différences entre ces deux fonctions
qui d'un point de vue fonctionnel font la même chose ? Parce que voilà
ce que moi j'en ai compris :
require() intègre le code du fichier appelé dans le fichier appelant
avant d'interpréter le fichier appelant.
include() interprète le fichier appelé et stock le résultat en mémoire.
Ce que j'avais compris à propos de la différence entre require() et include()
est que require() fait planter le script si le fichier n'est pas là tandis que
l'on a un "warning" avec include().
Ce qui fait que require() est plus gourmand en ressources (on
réinterprète à chaque fois) mais sur, tandis que include() et plus
rapide mais plus dur à gérer car il faut penser à la portée de cet appel.
De plus, on dit que require() et include() sont identiques, sauf dans leur façon
de gérer les erreurs.
http://ca.php.net/manual/fr/function.require.php
Donc j'imagine qu'il n'y a pas de différence à propos de la gourmandise :-)
Et require_once() c'est encore différent ?
Je sais pas.
Puisse que l'on parle de require() et de include() j'aimerai savoir si quelqu'un peut m'éclairer sur les différences entre ces deux fonctions qui d'un point de vue fonctionnel font la même chose ? Parce que voilà ce que moi j'en ai compris :
require() intègre le code du fichier appelé dans le fichier appelant avant d'interpréter le fichier appelant. include() interprète le fichier appelé et stock le résultat en mémoire.
Ce que j'avais compris à propos de la différence entre require() et include() est que require() fait planter le script si le fichier n'est pas là tandis que l'on a un "warning" avec include().
Ce qui fait que require() est plus gourmand en ressources (on réinterprète à chaque fois) mais sur, tandis que include() et plus rapide mais plus dur à gérer car il faut penser à la portée de cet appel.
De plus, on dit que require() et include() sont identiques, sauf dans leur façon de gérer les erreurs.
http://ca.php.net/manual/fr/function.require.php
Donc j'imagine qu'il n'y a pas de différence à propos de la gourmandise :-)
Et require_once() c'est encore différent ? Je sais pas.
Luc
Sam
include est a préférer lors des tests conditionnels / boucles.
genre :
if($toto = "titi") { include("titi.inc.php"); }
ou encore :
switch($toto) { case "titi" : include("titi.inc.php"); case "tata" : include("tata.inc.php"); }
je crois que require est interprété lors de la compilation, alors que include non, ou un truc dans le genre ;-) Les puristes confirmeront :-D
"Stephane Thomas" a écrit
Puisse que l'on parle de require() et de include() j'aimerai savoir si quelqu'un peut m'éclairer sur les différences entre ces deux fonctions qui d'un point de vue fonctionnel font la même chose ?
include est a préférer lors des tests conditionnels / boucles.
genre :
if($toto = "titi")
{
include("titi.inc.php");
}
ou encore :
switch($toto)
{
case "titi" : include("titi.inc.php");
case "tata" : include("tata.inc.php");
}
je crois que require est interprété lors de la compilation, alors que
include non, ou un truc dans le genre ;-)
Les puristes confirmeront :-D
"Stephane Thomas" a écrit
Puisse que l'on parle de require() et de include() j'aimerai savoir si
quelqu'un peut m'éclairer sur les différences entre ces deux fonctions
qui d'un point de vue fonctionnel font la même chose ?
include est a préférer lors des tests conditionnels / boucles.
genre :
if($toto = "titi") { include("titi.inc.php"); }
ou encore :
switch($toto) { case "titi" : include("titi.inc.php"); case "tata" : include("tata.inc.php"); }
je crois que require est interprété lors de la compilation, alors que include non, ou un truc dans le genre ;-) Les puristes confirmeront :-D
"Stephane Thomas" a écrit
Puisse que l'on parle de require() et de include() j'aimerai savoir si quelqu'un peut m'éclairer sur les différences entre ces deux fonctions qui d'un point de vue fonctionnel font la même chose ?
Stephane Pineau
Le 18 May 2004 12:56:19 GMT, Sam <poubsam&nospam&@free.fr> écrivait:
if($toto = "titi") if ($toto=="titi")
^
switch($toto) { case "titi" : include("titi.inc.php"); case "tata" : include("tata.inc.php"); }
Rappel : ne jamais oublier (même dans un exemple, sinon ca en devient un mauvais:-) de traiter le cas par défaut d'un switch, même si on est convaincu à 100% d'avoir détaillé tous les cas de figure dans les case.... On peut être sur qu'à 101% on aura eu tort:-)
Le 18 May 2004 12:56:19 GMT, Sam <poubsam&nospam&@free.fr> écrivait:
if($toto = "titi")
if ($toto=="titi")
^
switch($toto)
{
case "titi" : include("titi.inc.php");
case "tata" : include("tata.inc.php");
}
Rappel : ne jamais oublier (même dans un exemple, sinon ca en devient un
mauvais:-) de traiter le cas par défaut d'un switch, même si on est
convaincu à 100% d'avoir détaillé tous les cas de figure dans les case....
On peut être sur qu'à 101% on aura eu tort:-)
Le 18 May 2004 12:56:19 GMT, Sam <poubsam&nospam&@free.fr> écrivait:
if($toto = "titi") if ($toto=="titi")
^
switch($toto) { case "titi" : include("titi.inc.php"); case "tata" : include("tata.inc.php"); }
Rappel : ne jamais oublier (même dans un exemple, sinon ca en devient un mauvais:-) de traiter le cas par défaut d'un switch, même si on est convaincu à 100% d'avoir détaillé tous les cas de figure dans les case.... On peut être sur qu'à 101% on aura eu tort:-)