2010-10-26 18 views
3

J'ai un problème, où j'ai deux classes de bibliothèques tierces que je dois étendre et utiliser ensemble. Mais les deux ont la même convention de nommage et deux noms de classe ont le même nom.Comment utiliser la même classe nommée en PHP sans espace de noms?

Puisque je ne peux pas étendre deux classes, je ne sais pas comment les réparer, comment créer un wrapper contre un. Je ne peux pas utiliser PHP Namespaces car la version de PHP est juste 5.2.10 et non 5.3.

Quelles options j'ai?

+0

sont-ils tous deux chargés automatiquement ou inclus? – stillstanding

+0

Oui, je dois utiliser les deux, j'ai besoin de synchroniser deux bibliothèques tierces. L'un est redmine et l'autre est basé sur le gâteau. – Pentium10

Répondre

1

C'est le problème lorsque vous n'avez pas d'espaces de noms. La seule option que vous avez est de passer le code de l'un ou de l'autre et de changer tous les noms de classe. Peut-être ajouter un préfixe à chacun d'eux qui permet de savoir lequel est qui.

1

C'est exactement le problème que les espaces de noms PHP sont destinés à résoudre. Il n'y a pas de moyen propre de faire cela avant le 5.3. Le mieux que vous pouvez faire est de renommer un ou les deux et passer par les bibliothèques corrigeant les appels. C'est une douleur, mais, comme ce sont des bibliothèques séparées, cela ne devrait pas être trop difficile.

Mon autre suggestion serait de s'assurer que l'installation de 5.3 est vraiment impossible. C'est de loin la meilleure solution à votre problème.