10
votes

Comment diviser le code d'un module en fichiers séparés

Je suis très curieux de savoir comment un module Drupal peut être dismétifié dans plusieurs fichiers incluant. Un certain nombre de supports crochets au lien comprennent les composants, tels que Hook_Menu, Hook_eme, etc.

Une fois que j'ai planifié de simplifier l'un de mes module complexes atteints de 2,3 000 lignes avec la moitié de son ensemble de fonctionnalités. Je dois retourner toutes ces étapes en raison du manque de connaissances sur la portée de l'inclusion.

aidez-moi à cet égard s'il existe des informations détaillées.


0 commentaires

3 Réponses :


3
votes

C'est simple, il suffit d'examiner d'autres grands modules (comme CCK, Vues, ​​etc.). Les crochets principaux doivent être dans le module, d'autres doivent être dans différents fichiers - Thèmes, pages d'administration, autres pages, fonctions de service, etc.


0 commentaires

7
votes

Utiliser plus de fichiers, il suffit de regrouper des choses similaires dans le même dossier, de le maintenir plus géré. Les fichiers typiques utilisés sont

  • .Admin.inc pour toutes les trucs d'administration, les rappels de menu, les formulaires, etc.
  • .Pages.inc pour les rappels de menu avant.
  • .theme.inc pour les fonctions de thème, les crochets de préprocession, etc.
  • .Forms.inc pour les formulaires non administratifs et leurs gestionnaires.

    C'est plus un style de codage qui autre chose. Il s'agit donc simplement de vous aider à maintenir le code que vous avez écrit.


1 commentaires

C'est pour la performance aussi. Toutes les fonctions de fichiers .Module sont chargées à chaque initialisation.



10
votes

what Nikit a dit est correct.
J'ajouterai qu'il y a des crochets qui sont autorisés à définir quels fichiers doivent être chargés. Des exemples de tels crochets sont harok_theme () et harok_menu () .

Un module ne doit jamais charger de manière inconditionnelle, il doit nécessairement appeler module_load_include () de l'extérieur d'une fonction. xxx


2 commentaires

Mais mon intention principale concerne plusieurs fonctions d'accès aux données qui sont utilisées dans diverses parties. par exemple. commentaires. COMMENT_TOTAL_COUNT () , COMMENT_TODAY_COUNT () est utilisé dans les modèles, COMMENT_THREAD () est requis sur la page Admin ainsi que sur la page de contenu. Commentaire_insert () Sur la page Contenu tandis que Commentaire_ReMove () et COMMENT_EDIT () SUR L'ADMIN Page. Dois-je utiliser conventionnel exiger ou inclure la syntaxe ? Et qu'en est-il d'inclure plusieurs fichiers?


La fonction utilisée pour inclure des fichiers PHP est module_load_include () . Vous pouvez inclure un ou plusieurs fichiers.