2009-10-15 8 views
1

J'ai un démon qui traite un peu de logique MVC en arrière-plan qui inclut les classes dont il a besoin à la demande. Parfois, cependant, il arrive à un point où il inclut deux classes nommées de manière identique provenant de différents modules au sein d'un même cycle. Idéalement, je voudrais "décréter" une classe avant de l'inclure à nouveau, je ne peux pas trouver dans le manuel de PHP cependant, si cela est possible.Annuler la création d'une classe en PHP

Quelque chose comme ceci:

//first foo 
class foo(){ 

} 

//undeclare foo 
undeclare foo; 

//create new foo 
class foo(){ 

} 

Répondre

10

Il est impossible de "undeclare" une classe.

Vous devriez probablement en PHP de namespacing ou, utilisez une convention pour nommer vos classes similaires à

Application_Module_Class 

vous donc appellerez

$x = new Application_Foo_Bar; 

pour inclure la classe Bar à partir du module Foo

Cela se prête également très bien à l'utilisation des fonctions autoload

+0

Malheureusement, aucune de ces solutions n'est actuellement possible dans ma situation. – clops

+0

Utilisez-vous PHP 5.3? Cela offrirait une solution. – powtac

+0

L'application ne peut pas porter vers PHP 5.3 dans son état actuel. Il est plus de 250 Mo de code;) – clops