Réutiliser des fonctions communes

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

Je souhaite ré-utiliser des fonctions PHP "utilitaires" dans plusieurs modules.
Quelle est la meilleure pratique recommandée sous Drupal ?
Les coder dans un fichier PHP et utiliser require_once ou include dans chaque module ?
Les coder autre-part pour y avoir automatiquement accès depuis mes modules ?

Merci beaucoup pour vos réponses,

Ecirbaf

Si c'est dans le cadre de modules spécifiques, je pense qu'il faudrait externaliser tout cela dans des fichiers séparés, et avoir une organisation de répertoires telle que :

sites/all/modules/mes_modules
sites/all/modules/mes_modules/includes
sites/all/modules/mes_modules/includes/fonctions1.inc
sites/all/modules/mes_modules/includes/fonctions2.inc
sites/all/modules/mes_modules/module1.module
sites/all/modules/mes_modules/module1.info
sites/all/modules/mes_modules/module2.module
sites/all/modules/mes_modules/module2.info
sites/all/modules/mes_modules/module3.module
sites/all/modules/mes_modules/module3.info

et faire dans les modules un include en fonction des besoins.

Ceci permet de factoriser les développements

C'est par exemple le mode de fonctionnement de ldap_integration, qui comprend 3 modules : ldap_auth, ldap_data et ldap_groups et partage un répertoire includes

A priori un require est mieux (arrêt si le fichier inclus n'est pas présent).
Le require_once par rapport au require est une sécurité, mais si c'est toi qui gère les appels, tu dois pouvoir faire juste un require, c'est meilleur pour les perfs (même si Drupal est truffé de require_once, comme le souligne Rasmus Lerdorf (à l'origine du PHP) : http://drupalradar.com/liveblog-rasmus-lerdorf-drupal-performance.