2010-10-28 5 views
3

Possible en double:
Can I include code into a PHP class?Comment inclure() fonctions dans une classe en PHP

Bonjour,

J'ai quelques fichiers php troisième partie que je voudrais inclure en tant que classes dans ma demande. Le problème est que ces fichiers ne cessent de changer et qu'ils ne sont pas des POO, juste un tas de fonctions. Pour les tenir à jour et de travailler dans mon cadre, je dois les utiliser dans une classe, donc je voudrais inclure le fichier et l'accès via opérateur ->:

Exemple:

class Vendor { 
    include("../vendor/functions.php"); 
} 

puis :

$vendor = new Vendor(); 
$vendor->foorbar(); 

Des idées?

+1

Pouvez-vous s'il vous plaît ne pas faire cela? – Incognito

+0

Ce n'est pas un doublon ... Cette question concerne l'inclusion de fichiers en classe. Celui-ci concerne l'importation de fonctions sur la classe. Cette réponse ne réponds certainement pas à ça! –

+0

Quoi qu'il en soit, ne me dérange pas ... J'ai pensé comment le faire en utilisant call_user_func_array() sur PHP. Je me sens juste désolé d'être intimidé et question fermée sans que les gens essayent de comprendre que c'était des questions différentes avec des idées similaires! –

Répondre

3

Je pense que la meilleure façon d'aller serait de modifier (automatique) les fichiers de fonction pour inclure

namespace VendorName; 

De cette façon, l'espace de nommage global ne soit pas pollué, mais vous avez accès aux fonctions. Appelle mon être effectuées par:

VendorName\FunctionName($arguments); 
+0

Eh bien, je ne peux pas modifier les fichiers du fournisseur sous quelque forme que ce soit. Le problème est de les utiliser tels quels. –

0

Je présume que ces fichiers tiers ne vont pas être injecté dans votre application de toute façon automatisée et vous voulez juste facile la tâche de les avoir dans votre tout-cadre vous êtes en mesure de mettre à niveau vers des versions plus récentes. Dans ce cas, je vous recommande d'utiliser ce que Subversion appelle "vendor branches". C'est juste un concept que vous pouvez utiliser quel que soit votre outil de contrôle de source. Pour résumer:

  • Vous téléchargez le code tiers et le stockez dans votre référentiel de code.
  • Vous copiez le code dans votre application et le modifiez en fonction de vos besoins.
  • Lorsque le fournisseur publie une nouvelle version, vous mettez à jour le code stocké.
  • Vous utilisez votre logiciel de contrôle de version pour copier les modifications dans votre application.
+0

En fait, tout le but est d'avoir cette fonctionnalité, d'avoir les "fichiers de fonction" tels quels, et mon application est capable de les utiliser. Zéro maintenance sur les nouveaux fichiers de fonction ... –

Questions connexes