Includes & PHP - 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 : Includes & PHP (/showthread.php?tid=1873) Pages :
1
2
|
RE: Includes & PHP - Galaan - 18-10-2007 J'imagine que sont include doit etre dans un if donc il ne veut pas le faire si la condition est pas vrai. J'en reviens a ma question : est-ce que le gain en performance est vraiment significatif ? Galaan RE: Includes & PHP - naholyr - 18-10-2007 Tu peux aussi utiliser un truc qui vient du C : malib.php Code : <?php Ainsi tu seras sûr de pouvoir inclure sereinement ce fichier dans d'autres scripts, même sans utiliser include_once. Pour faire court, tu ajoutes simplement en première ligne de tes fichiers de déclaration de fonctions la ligne "!defined('H_NOM-UNIQUE') or return false; define('H_NOM-UNIQUE', true);" Note que si tu utilises partout "include_once" en lieu et place de "include" tu n'auras pas le problème que tu nous indiques. Ce n'est tout simplement pas possible, il reste donc des include simples quelque part RE: Includes & PHP - Ludvig - 19-10-2007 Message effacé par erreur par naholyr... [edit lud] pas grave, j'ai trouvé un vieux copie, donc tout y est peut-être pô :p Merci pour tout ces réponses ! Dans le désordre : @Findel >Si tu écris en POO, Oui mais il faudrait inclure des classes tout le temps et de plus mon code est ce qu'il y a de plus "function-nel " @Galaan Hormis les frames qui contient de l'information (caracs, carte etc) j'ai une page qui include l'action que le joueur decide de réaliser (après des tests anti triche, un include là aussi dépendant de l'action) et comme il y en a beaucoup d'actions, et que certains peuvent dépendre d'autres actions alors il faudrait que j'includerait le tout dans la page "action" c.a.d un surpoids de ~300kb et qui grandira des que je rajoute des nouvelles fonctionnalités/actions... donc je pense que ça nuirait au perfs un de ces 4 @pascaltje >ha oui, et faire un include_once en plein milieu d'une fonction... bof bof. Même réponse qu'à Galaan ^^ Sinon c'est vraiment pratique, j'ai des fichiers d'include pour selectionner un certain chose (objet non identifié, ennemie, moi-même,...), un qui fais de l'anti triche et l'action lui même. Puis dans le DB une liste des noms d'actions et quel fichier inclure. Je peux alors rajouter une nouvelle sortilège en quelques clics et 1 copier colle et cela sans toucher aux perfs ... @naholyr j'ai essayé des choses de type : if(!$included_nomfunc)include 'nom_func.php'; Et ca marche pas. Ni le include_once. Mais j'ai enfin trouvé ce qui ne va pas dans le php : Quand on fais une include (_once) dans un fichier, le NOM du fonction est déclaré d'un façon globale mais le fonction lui même est déclaré dans le scoop du fonction ! On peux dont pas l'appeler car on a pas accès, mais on ne peut pas non plus le rédéclarer vue que le nom est déjà pris d'un façon globale ! [edit lud²] le reste du message doit se trouver dans le grand cimetière internet des messages perdus :haha: RE: Includes & PHP - Dradge - 19-10-2007 C'est avec une problématique comme celle-ci que l'utilisation de l'objet est un plaisir. Sinon pour le problème, je préconise l'utilisation de function_exists pour encadrer la définition de chacune des fonctions. RE: Includes & PHP - pascal - 19-10-2007 j'ai l'impression que c'est un problème d'architecture tout ça, et que tu devrais passer à l'objet, avec des design pattern pour gérer toutes les actions ( strategy ? ) A+ Pascal RE: Includes & PHP - naholyr - 19-10-2007 Je suis vraiment désolé, j'ai effacé ton message par erreur en me trompant de bouton (éditer au lieu de quote...). J'ai eu beau jouer du back/forward ce fut peine perdue, je suis confus... Enfin bref voici ma réponse : Citation :car j'ai enfin trouvé ce qui ne va pas dans le php :C'est faux, exemple : lib.php Code PHP :
main.php Code PHP :
Résultat de l'exécution de main.php Citation :coucou Il n'y a pas en PHP (contrairement à Javascript, où ce que tu as dit y est bien vrai) de "portée" de déclaration d'une fonction ou d'une classe. Quelque soit l'endroit où tu déclares une fonction ou une classe, elle est globale. Donc ton problème ne vient pas de là. En ce qui concerne le commentaire de pascaltje sur les include_once au milieu d'une fonction, je ne suis pas tout-à-fait d'accord, ça peut parfaitement se justifier. Si le fichier n'est pas toujours utilisé, il peut être bon de ne l'inclure que si on en a besoin, c'est par exemple ce qu'a fait PEAR::Cache_Lite (et ce que permet de manière transparente l'__autoload finalement) qui n'inclut le fichier de déclaration de PEAR::Error qu'uniquement en cas d'erreur RE: Includes & PHP - joshua - 19-10-2007 Ca y est, encore un admin qui abuse de ses pouvoirs RE: Includes & PHP - exopi - 19-10-2007 Moi aussi j'ai eu ce genre de probleme, et j'ai reussit à le resoudre grace à eval : $fichier=file_gets_contents('fichier.php'); eval($fichier.';'); RE: Includes & PHP - naholyr - 19-10-2007 Heu là je vais être méchant mais : ça c'est la pire des solutions possibles, ça ne résoud rien (l'erreur function already declared surviendra quand-même), ça prend des ressources infiniment supérieures à un simple include (pour aucun gain), et c'est une source de faille potentielle (toute utilisation d'eval est une source de faille potentielle). RE: Includes & PHP - Ludvig - 20-10-2007 arf, maintenant c'est moi qui est confus , j'arrive pas a reproduire le bug ... Se peut-il que j'ai oublié un include quelque part :pleure2: Merci pour tout les réponses, je vais écumer mon code plus en profondeur (ça s'approche d'un mega du code quand même) ... Juste à pascaltje : Le oop à pour moi aucun utilité dans mon projet, pour des gros projets OK, pour du C++ OK, pour quelques lignes de php écrit d'une personne bof bof... enfin je dis ça, c'est mon avis personnelle hein /Lud |