J'essaie de trouver la meilleure approche pragmatique pour importer des fonctions à la volée ... laissez-moi vous expliquer.Fonctions d'importation PHP
que j'ai un répertoire appelé fonctions qui a ces fichiers:
array_select.func.php
stat_mediam.func.php
stat_mean.func.php
.....
Je voudrais: charger chaque fichier (qui a une fonction définie à l'intérieur) et de l'utiliser comme un Une fois que je suis tombé sur un tutoriel (que je ne retrouve pas maintenant) qui compilé les fonctions définies par l'utilisateur dans le cadre d'une installation PHP .. Bien que ce ne soit pas une très bonne solution car sur partagé/res eller hosting vous ne pouvez pas recompiler l'installation de PHP. Je ne veux pas avoir de conflits avec les futures versions de PHP/autres extensions, c'est-à-dire si une fonction nommée X par moi fait soudainement partie des fonctions internes de PHP (même si elle n'a pas la même fonctionnalité en soi)) Je ne veux pas que PHP lance une erreur fatale à cause de cela et échoue lamentablement. Donc, la meilleure méthode que je peux penser est de vérifier si une fonction est définie, en utilisant function_exists(), si c'est le cas, lancez un avis afin qu'il soit facile à suivre dans les fichiers journaux, sinon définissez la fonction. Cependant, cela se traduira probablement par beaucoup d'instructions include/require dans d'autres fichiers où j'ai besoin d'une telle fonction, ce que je n'aime pas vraiment. Ou éventuellement, lisez le répertoire et bouclez chaque fichier * .func.php et include_once. Bien que je trouve cela un peu moche.
La question est, avez-vous déjà tombé sur un code source qui traitait un tel cas? Comment a-t-il été mis en œuvre Avez-vous déjà fait quelque chose de similaire? J'ai besoin d'autant d'idées que possible! :)
Une raison particulière pour laquelle une classe ne ferait pas? Charger dynamiquement chaque fonction individuelle serait plus lent et plus difficile à maintenir, peut-être pas si pratique. – tadamson
Je pourrais probablement finir par le faire de cette façon, par souci de maintenance. –
considérant qu'il n'y avait pas beaucoup de réponses à cette question (pas que je sois surpris) je verrai ce que je peux trouver pour satisfaire vitesse/maintenabilité/praticabilité. Si je trouve une solution qui satisfait cela, je reviendrai et l'afficherai ici;) –