2010-09-03 10 views
0

donc je suis en utilisant Wordpress, qui charge le thème et, éventuellement, de nombreux plug-ins qui peuvent avoir des fonctions avec les mêmes noms que ceux du thème.PHP - nom de la fonction conflit

Comment puis-je éviter les conflits de noms de fonction entre le thème et les plugins, sans avoir à les renommer à quelque chose comme « theme_function() »?

Répondre

4

Vous ne pouvez pas vraiment. Vous devez renommer vos fonctions de manière à ne pas entrer en collision avec d'autres fonctions. Préfixer les fonctions avec le nom de votre thème est très propre et optimal.

possibles autres solutions de contournement qui viennent à l'esprit sont

  • Utilisation d'une classe statique Theme et en ajoutant des fonctions à ce que (Theme::function();) - pas très différent de l'ajout d'un préfixe theme_ aux noms de fonction normale, bien que

  • une fois que PHP 5.3 est largement répandu dans quelques années, vous pouvez utiliser namespaces - il est trop tôt pour le moment, cependant, si vous voulez construire des thèmes redistribuables ou plugins.

+2

+1 pour les espaces de noms – Treffynnon

+0

merci je suppose que je vais aller avec les préfixes puis :) – Alex

1

les renommer. C'est facile. Les fonctions du thème sont dans le fichier functions.php du dossier de thème. Vous devez les renommer pour éviter les conflits.

Autre moyen est d'utiliser namespaces mais cela prendrait plus d'efforts, l'OMI, puis il suffit de renommer une poignée de fonctions.

Questions connexes