Bonjour,
est-il possible de faire des packages en PHP, comme en java ?
(un package rassemblant plusieurs classes)
Merci d'avance !
--
François
Forum Programmation.php Y'a-t-il des /packages/ en PHP, comme en java ?
Posté par santos .
Étiquettes :
aucune
8
juin
2008
# namespaces en PHP
Posté par Vincent ORDY . Évalué à 5.
http://fr.php.net/manual/fr/language.namespaces.php
[^] # Re: namespaces en PHP
Posté par santos . Évalué à 1.
merci pour cette info.
Par contre, ce n'est pas tout à fait ça que je cherche.
Le système de packages de java a plusieurs avantages, dont la résolution du problème de redondance potentielle dans le nom des classes, avantage reproduit en PHP avec les namespaces, en effet.
Mais moi, ce qui m'intéresse, c'est surtout de formaliser le fait qu'une partie de mon application est "indépendante", et pouvoir importer toutes ses classes dans n'importe quel programme à l'aide d'une simple ligne, comme en java :
import monPackage.*
A l'heure actuelle, je suis obligé de faire :
include ("monPackage/uneClasse.php");
manuellement pour chaque classe du répertoire "monPackage".
Y'a-t-il une solution en PHP pour résoudre ce problème ? (je n'ai pas l'impression que les namespaces le résolvent)
[^] # Re: namespaces en PHP
Posté par fabien . Évalué à 4.
une page "deps.inc.php" dans laquelle tu mets tes dependances (avec require_once qui est preferable a include)
et dans ton modele de page il suffit de faire le require_once("deps.inc.php");
ainsi, une nouvelle depedance se rajoute un une seule ligne, comme en java (puisque c'est apparement ca ton probleme).
[^] # Re: namespaces en PHP
Posté par santos . Évalué à 1.
oui, à vrai dire c'est déjà ce que je fais ;-)
Mais en vue de fournir mon package à des tiers, c'est plus pratique d'avoir un système "universel" comme l'outil d'importation en java.
Du coup je relance la question : est-ce que ça existe, ou bien il faut se contenter de la solution expliquée ci-dessus par Fabien ?
[^] # Re: namespaces en PHP
Posté par fcartegnie . Évalué à 3.
Ca promet encore un beau bordel.
# Autochargement des classes
Posté par H_francis . Évalué à 2.
function __autoload($class_name) { include('class_' . $class . '.php') ; }Cette fonction __autoload est appelée par le script PHP dès qu'un appel à une classe non définie est réalisée. $class_name est la chaine contenant le nom de la classe appelée (attention : "$class_name" est en minuscule même si la classe originale contient des majuscules). D'après mon exemple, si je fais quelque chose comme : , et que la classe ObjectType n'est pas encore définie, la fonction __autoload est appelée (si elle est définie dans la portée globale) avec l'argument "objecttype". Après, il faut étudier les possibilités, comme par exemple utiliser un préfixe pour les noms de fichier, comme dans mon exemple, nommer (ou pas) tous les fichiers de classe avec comme 'class_classname.php' , etc. Tout se passe dans le corps de la fonction __autoload(). le lien vers la documentation[^] # Re: Autochargement des classes
Posté par H_francis . Évalué à 3.
[^] # Re: Autochargement des classes
Posté par santos . Évalué à 1.
C'est plutôt ça que je cherchais.
[^] # Re: Autochargement des classes
Posté par ethtezahl . Évalué à 2.
Donc tu peux, mais avec précaution. Et pour voir le niveau de tes perfs, je te conseille la librairie xdebug: http://xdebug.org/
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.