2009-07-19 5 views
3

J'ai besoin de quelques informations sur l'inclusion de fichiers dans les classes PHP. PAR EXEMPLE.PHP classes et y compris les fichiers

include Foo2.php; //<--- Is this good?  
class Foo { 
     function doFoo(){ 
     include("Foo2.php"); //<--- or is this better? 
     //do something with vars from Foo2 
     } 
} 

Je me demandais quelles sont les différences à côté portée et s'il y avait d'autres façons d'inclure un autre fichier php dans une classe.

Merci d'avance pour toute réponse.

Répondre

4

inclure à l'étendue mondiale. C'est très lisible et maintenable.

+0

Bien que cela soit vrai, si j'inclue beaucoup de fichiers dans une portée globale qui pourrait ne pas être utilisée ne serait-il pas inefficace? Je suppose que ce sont des micro-efficacités et que cela n'a pas vraiment d'importance? – Mozez

+0

Utilisez le cache de bytecode, par exemple: APC, Zend Optimizer, et ce ne sera pas un problème. – erenon

+1

Voilà le compromis que j'ai trouvé: inclure en haut - facile à trouver et plus susceptible de trouver facilement des erreurs lors du refactoring (parce que vous n'avez pas à exécuter différents chemins de code pour s'assurer que quelque chose est inclus) même à l'intérieur d'un "si") et ensuite vous n'avez qu'à inclure le fichier si vous en avez besoin - et vous avez localisé des éléments (de cohésion) qui vont ensemble. – grantwparks

0

Vous ne pouvez inclure des fichiers PHP dans les fonctions d'une classe, ou en dehors de la classe complètement, de sorte que vous avez les deux moyens vers le bas. La différence est que celle qui est à l'intérieur de la fonction ne sera incluse que si vous appelez cette fonction.

Je trouve que l'intérieur de la fonction est meilleur, car alors il ne sera pas inclus automatiquement, et vous ne pouvez l'inclure que si vous avez besoin d'une fonction dans cette classe, ce qui peut être très utile si vous faites face à BEAUCOUP de fichiers.