cs_olid
Messages postés296Date d'inscriptionlundi 2 septembre 2002StatutMembreDernière intervention28 janvier 2008 7 févr. 2006 à 18:38
*****************
* 1 GOLDWIN *
* POINT *
*****************
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 7 févr. 2006 à 16:26
"le seul moyen de resoudre l'un de mes problemes"
le seul moyen que tu connais de résoudre l'un de tes problèmes ;-) sans vouloir faire de troll ^^
cs_olid
Messages postés296Date d'inscriptionlundi 2 septembre 2002StatutMembreDernière intervention28 janvier 2008 7 févr. 2006 à 12:28
Pour inclure myroot, tes bien obligé de donner le chemin. SAUF si on met myroot.lib.php dans l'include_path... Notamment la racine réel du site :o"
Tout façon, je voulais pô faire un débat. Cette source etait, et est toujours, le seul moyen de resoudre l'un de mes problemes (avec des pages perso)... J'oblige personne à l'utiliser :o|
cs_Antidote
Messages postés163Date d'inscriptionlundi 29 septembre 2003StatutMembreDernière intervention 8 mai 2010 7 févr. 2006 à 11:27
c'est ce que je voulais dire ^^
D'ailleurs je ferais remarqué à olid tout betement sa première ligne de code :
require_once("../common/myroot/myroot.lib.php");
tu l'a bien tapé à la main ce chemin relatif, faut bien connaitre le chemin vers ton fichier myroot.lib.php pour l'inclure en tout premier et donc si tu connais ce chemin tu sais t'y retrouvé dans le site.
dexiemement si je met un fichier admettons systeme.php à côté de myroot.lib.php et que celui-ci inclu ton fichier d'exemple tu auras une bel erreur d'inclusion dès la première ligne car le chemin du require_once("../common/myroot/myroot.lib.php"); du coup est faux...
Voilà pourquoi ton système n'est pas idéal olid.
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 6 févr. 2006 à 23:12
ça trouve son intérêt justement dans le cas où tu inclus un fichier qu'en inclus un autre en fonction de son chemin et blabla et justement ta solution est meilleure qu'une fonction pour faire ça ;-) c'est là aussi où on voulait en venir.
a +
cs_Antidote
Messages postés163Date d'inscriptionlundi 29 septembre 2003StatutMembreDernière intervention 8 mai 2010 6 févr. 2006 à 21:08
Bonjour tout le monde, je vois que cela fais débat.
Dans mes développements j'utilise les deux types (comme ça je ne facherai personne).
url absolue généralement par constante pour tout ce qui se trouve dans la racine du site et url relative pour mes oh mon dieu pas include mais surtout require_once ^^ par une variable ^^
j'écris toujours en première ligne dans tous mes fichiers ceci :
if (!isset($_base_)) $_base_ = '../../';
// représente le retour à la racine du site par rapport à l'emplacement de mon fichier
// (par exemple ici comme s'il était dans /include/special/)
Si le fichier est le premier appelé, il donne au suivant la direction à suivre pour retrouver la racine.
Si le fichier est inclu par un autre, il reprend directement le chemin vers la racine que l'autre à donné ou avait déjà récupéré précédemment.
je trouve ça très simple nécéssite qu'une ligne de code pour chaque fichier et ceci fonctionne très bien.
il me reste plus qu'a faire mes inclusion de la sorte :
require_once $_base_.'class/ma_classe.php';
// il faut écrire le chemin depuis la racine puisque $_base_ va vous y ramener.
Voilà.
J'ai envisagé une fois d'utiliser carrément la racine du serveur /home/mon_user_web/www/ par exemple dans une constante nomée ROOT.
soit jécris une tel ligne devant tous mes fichiers :
if (!defined('ROOT')) define('ROOT', '/home/mon_user_web/www/');
mais le jour ou je change de serveur ba c'est pas cool si je ne reprend pas la même structure.
Soit j'inclue un fichier qui me créer cette constante.
Mais comment inclure ce fichier, puisque je ne connais pas le chemin du serveur.
Mettre ce fichier dans un des dossier path du système ?
Paramétré mon propre path dans php.ini ?
Faut y pensé surtout si vous comme moi avez un panel de serveur jetable que vous ajouter et enlever à la voler pour faire marcher votre site.
Le plus simple pour moi ba c'est encore la première solution que j'ai écrite.
Mais si vous avez mieux je suis tout ouïe =)
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 6 févr. 2006 à 13:03
"Dans l'esprit de PHP, ce n'est pas aux utilisateurs à optimiser leur code-source."
L'esprit de PHP c'est mal ^^
"Pour info, les fonctions mYRoot() et mYRootURL() utilisent des variables globales pour garder leurs précédents résultats de calcul..."
Il n'empêche que tu appelles une fonction, c'est ça qu'est coûteux en perfs...
Enfin bon perso je ne sais pas pourquoi on a besoin d'utiliser ce genre de scripts, même le $_SERVER['DOCUMENT_ROOT'] je ne vois pas à quoi ça peut servir quand on bosse en chemins relatifs, suffit de connaître la structure de son site ;-)
cs_olid
Messages postés296Date d'inscriptionlundi 2 septembre 2002StatutMembreDernière intervention28 janvier 2008 6 févr. 2006 à 12:20
Héhé, Coucou... content de te revoir ;o)
Pour info, les fonctions mYRoot() et mYRootURL() utilisent des variables globales pour garder leurs précédents résultats de calcul...
Dans l'esprit de PHP, ce n'est pas aux utilisateurs à optimiser leur code-source. Le systeme le fait pour eux dans les fct() standards, et moi je le fais pour eux dans cette source ;op
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 4 févr. 2006 à 15:03
t'appelles 30 fois ta fonction ici... utiliser une constante est beaucoups moins couteux...
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 3 févr. 2006 à 19:04
Faudrait que je vois des exemples histoire de m'en convaincre car pour l'instant c'est pas gagné ;-)
cs_olid
Messages postés296Date d'inscriptionlundi 2 septembre 2002StatutMembreDernière intervention28 janvier 2008 3 févr. 2006 à 18:47
Justement Antho, cette fonction donne un chemin relatif qui permet de revenir à la racine : les adresses construites avec la fct mYRoot() ne sont PAS absolue :o)
Par contre la fonction mYRootURL() renvoi une URL absolue car c'est le seul moyen de contourner l'incapacité des moteurs de recherche à prendre en charge la balise BASE :o(
Mais tu noteras que dans ton source, les adresses et URL sont toujours relatives... Mais par rapport à la racine choisie, n uance ;o)
Enfin bon, si vous ne voyez pas l'avantage de pouvoir faire des include() récursifs, cette source n'est pas d'un grand interet :o|
Exemple: vous pouvez faire un include d'un fichier config.php qui lui fera l'include de tous les autres fichiers que vous auriez besoin... Et çà marche à tous les niveaux d'arborescence
Perso, je charge dés le début mYRoot avec un include_once (qui execute le code apres inclusion)... Et justement à la fin de myroot.lib.php, je fais tous mes include :o)
Il y a aussi d'autres champs d'application... Comme mettre un systeme de plugin par fichier à inclure quand ils existent dans un dossier :o"
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 3 févr. 2006 à 13:47
Hello,
perso, j'utilise des constantes. avec les chemins dont j'ai besoin. Il y en a rarement 36...
Je ne vois pas non plus ce qu'ajoute tes fonctions, en fait, pour être franc.
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 3 févr. 2006 à 12:23
D'où l'intérêt des chemins relatifs, comme ça aucun problème :-)
Je n'ai jamais compris comment on pouvait avoir besoin de connaître la racine alors qu'avec un chemin relatif tout roule :-) pas besoin de fonction pour faire ça à mon avis.
cs_olid
Messages postés296Date d'inscriptionlundi 2 septembre 2002StatutMembreDernière intervention28 janvier 2008 3 févr. 2006 à 12:19
Tu n'as pas compris... mYRoot() renvoie une chaine avec les backslash pour revenir à la racine du site, par exemple "../.."
Et, $_SERVER['DOCUMENT_ROOT'] n'est pas exploitable si la racine de ton site (ou appli web) n'est pas à la racine du nom de domaine (ex: pour les pages-perso)
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 2 févr. 2006 à 21:23
7 févr. 2006 à 18:38
* 1 GOLDWIN *
* POINT *
*****************
7 févr. 2006 à 16:26
le seul moyen que tu connais de résoudre l'un de tes problèmes ;-) sans vouloir faire de troll ^^
7 févr. 2006 à 12:28
Tout façon, je voulais pô faire un débat. Cette source etait, et est toujours, le seul moyen de resoudre l'un de mes problemes (avec des pages perso)... J'oblige personne à l'utiliser :o|
7 févr. 2006 à 11:27
D'ailleurs je ferais remarqué à olid tout betement sa première ligne de code :
require_once("../common/myroot/myroot.lib.php");
tu l'a bien tapé à la main ce chemin relatif, faut bien connaitre le chemin vers ton fichier myroot.lib.php pour l'inclure en tout premier et donc si tu connais ce chemin tu sais t'y retrouvé dans le site.
dexiemement si je met un fichier admettons systeme.php à côté de myroot.lib.php et que celui-ci inclu ton fichier d'exemple tu auras une bel erreur d'inclusion dès la première ligne car le chemin du require_once("../common/myroot/myroot.lib.php"); du coup est faux...
Voilà pourquoi ton système n'est pas idéal olid.
6 févr. 2006 à 23:12
a +
6 févr. 2006 à 21:08
Dans mes développements j'utilise les deux types (comme ça je ne facherai personne).
url absolue généralement par constante pour tout ce qui se trouve dans la racine du site et url relative pour mes oh mon dieu pas include mais surtout require_once ^^ par une variable ^^
j'écris toujours en première ligne dans tous mes fichiers ceci :
if (!isset($_base_)) $_base_ = '../../';
// représente le retour à la racine du site par rapport à l'emplacement de mon fichier
// (par exemple ici comme s'il était dans /include/special/)
Si le fichier est le premier appelé, il donne au suivant la direction à suivre pour retrouver la racine.
Si le fichier est inclu par un autre, il reprend directement le chemin vers la racine que l'autre à donné ou avait déjà récupéré précédemment.
je trouve ça très simple nécéssite qu'une ligne de code pour chaque fichier et ceci fonctionne très bien.
il me reste plus qu'a faire mes inclusion de la sorte :
require_once $_base_.'class/ma_classe.php';
// il faut écrire le chemin depuis la racine puisque $_base_ va vous y ramener.
Voilà.
J'ai envisagé une fois d'utiliser carrément la racine du serveur /home/mon_user_web/www/ par exemple dans une constante nomée ROOT.
soit jécris une tel ligne devant tous mes fichiers :
if (!defined('ROOT')) define('ROOT', '/home/mon_user_web/www/');
mais le jour ou je change de serveur ba c'est pas cool si je ne reprend pas la même structure.
Soit j'inclue un fichier qui me créer cette constante.
Mais comment inclure ce fichier, puisque je ne connais pas le chemin du serveur.
Mettre ce fichier dans un des dossier path du système ?
Paramétré mon propre path dans php.ini ?
Faut y pensé surtout si vous comme moi avez un panel de serveur jetable que vous ajouter et enlever à la voler pour faire marcher votre site.
Le plus simple pour moi ba c'est encore la première solution que j'ai écrite.
Mais si vous avez mieux je suis tout ouïe =)
6 févr. 2006 à 13:03
L'esprit de PHP c'est mal ^^
"Pour info, les fonctions mYRoot() et mYRootURL() utilisent des variables globales pour garder leurs précédents résultats de calcul..."
Il n'empêche que tu appelles une fonction, c'est ça qu'est coûteux en perfs...
Enfin bon perso je ne sais pas pourquoi on a besoin d'utiliser ce genre de scripts, même le $_SERVER['DOCUMENT_ROOT'] je ne vois pas à quoi ça peut servir quand on bosse en chemins relatifs, suffit de connaître la structure de son site ;-)
6 févr. 2006 à 12:20
Pour info, les fonctions mYRoot() et mYRootURL() utilisent des variables globales pour garder leurs précédents résultats de calcul...
Dans l'esprit de PHP, ce n'est pas aux utilisateurs à optimiser leur code-source. Le systeme le fait pour eux dans les fct() standards, et moi je le fais pour eux dans cette source ;op
4 févr. 2006 à 15:03
3 févr. 2006 à 19:04
3 févr. 2006 à 18:47
Par contre la fonction mYRootURL() renvoi une URL absolue car c'est le seul moyen de contourner l'incapacité des moteurs de recherche à prendre en charge la balise BASE :o(
Mais tu noteras que dans ton source, les adresses et URL sont toujours relatives... Mais par rapport à la racine choisie, n uance ;o)
Enfin bon, si vous ne voyez pas l'avantage de pouvoir faire des include() récursifs, cette source n'est pas d'un grand interet :o|
Exemple: vous pouvez faire un include d'un fichier config.php qui lui fera l'include de tous les autres fichiers que vous auriez besoin... Et çà marche à tous les niveaux d'arborescence
Perso, je charge dés le début mYRoot avec un include_once (qui execute le code apres inclusion)... Et justement à la fin de myroot.lib.php, je fais tous mes include :o)
Il y a aussi d'autres champs d'application... Comme mettre un systeme de plugin par fichier à inclure quand ils existent dans un dossier :o"
3 févr. 2006 à 13:47
perso, j'utilise des constantes. avec les chemins dont j'ai besoin. Il y en a rarement 36...
Je ne vois pas non plus ce qu'ajoute tes fonctions, en fait, pour être franc.
3 févr. 2006 à 12:23
Je n'ai jamais compris comment on pouvait avoir besoin de connaître la racine alors qu'avec un chemin relatif tout roule :-) pas besoin de fonction pour faire ça à mon avis.
3 févr. 2006 à 12:19
Et, $_SERVER['DOCUMENT_ROOT'] n'est pas exploitable si la racine de ton site (ou appli web) n'est pas à la racine du nom de domaine (ex: pour les pages-perso)
2 févr. 2006 à 21:23
$_SERVER['DOCUMENT_ROOT']