92 votes

Comment fonctionne Drupal?

Est-ce que quelqu'un pourrait fournir un aperçu architectural du flux de contrôle de Drupal 7 ? Peut-être sous la forme d'un organigramme sur la façon dont une page est générée. Quelles ressources supplémentaires suggéreriez-vous de consulter concernant le fonctionnement de Drupal ?

3voto

Scott Lahteine Points 735

Les meilleurs livres sur le sujet sont "Pro Drupal Development" et "Using Drupal".

"Pro Drupal Development" inclut plusieurs beaux diagrammes et des résumés complets de chacune des API de Drupal (formulaires, thèmes, etc.). Il est destiné à être particulièrement instructif pour les personnes créant leurs propres modules et thèmes, mais il a beaucoup de valeur pour le développeur PHP expérimenté moyen qui veut comprendre Drupal. De plus, j'ai créé un module personnalisé pour chaque site que j'ai construit, juste pour obtenir un contrôle supplémentaire sur des choses comme masquer sélectivement les champs sur différents formulaires (ce que vous voulez généralement faire pour simplifier les formulaires de nœuds pour les utilisateurs finaux), donc il est bon d'avoir ces connaissances en tête.

"Using Drupal" s'adresse au développeur de site qui veut savoir comment construire des éléments intéressants comme des galeries, des blogs et des sites de réseautage social. Il passe en revue plusieurs cas d'utilisation et montre comment configurer des modules existants pour accomplir chaque tâche. Dans le processus, il vous familiarise avec les modules complémentaires essentiels "Content Construction Kit" (CCK) et "Views", comment créer des blocs et des modèles personnalisés, et les tenants et les aboutissants de la maintenance d'un site Drupal. Je recommande particulièrement ce livre à ceux qui veulent se mettre à niveau et UTILISER réellement Drupal immédiatement. Dans le processus, vous comprenez l'organisation interne de Drupal.

2voto

Ben Hammond Points 435

J'ai appris beaucoup en important le code .php de drupal dans un projet NetBeans. Ensuite, vous pouvez exécuter le débogueur netbeans et observer les différentes phases de la page se rassembler.

1voto

spoulson Points 13391

Construisez un site de test. Comme avec n'importe quoi d'autre, c'est ainsi que j'ai appris.

1voto

intuited Points 7763

Il dépend du niveau de compréhension que vous recherchez; si vous avez une bonne connaissance de php, je vous suggère de lire le code lui-même, en commençant par index.php, puis en passant à includes/bootstrap.inc, et ensuite à certains des autres scripts de ce répertoire.

Les fichiers d'inclusion clés:

  • menu.inc est très important pour comprendre comment fonctionne le système dans son ensemble, car il gère une grande partie de la correspondance implicite des URL avec le contenu.
  • common.inc contient la plupart des fonctions autrement mystérieuses qui constituent la base de l'API.
  • module.inc gère les invocations des hooks mentionnés par Eaton
  • form.inc gère l'affichage, la soumission et le traitement des formulaires
  • theme.inc gère la présentation.

Il y a aussi des fonctionnalités clés dans le répertoire modules/; en particulier, modules/node/node.module forme la base du système de noeuds, qui est généralement ce qui est utilisé pour encapsuler le contenu du site.

En général, le code est très bien commenté et clair. L'utilisation des balises Doxygen dans les commentaires signifie que le code est effectivement la documentation canonique.

Il est également utile de le faire en utilisant un éditeur qui peut rapidement accéder à la définition d'une fonction. Utiliser vim en combinaison avec ctags fonctionne pour moi; vous devez indiquer à ctags d'indexer les fichiers .inc, .module, etc. en tant que fichiers php.

1voto

Robin Millette Points 11

Nouveau contributeur ici, 2 ans de retard dans la conversation ;-)

Répondant à https://stackoverflow.com/a/1070325/1154755

Pour étendre les fonctionnalités de base ne les réécrivez pas. Copiez plutôt le module dans /sites/all/modules/ ou /sites/[votresite]/modules et étendez CELUI-LÀ, ou créez un nouveau module à ces endroits. Même chose pour les thèmes.

En fait, je n'ai jamais eu besoin de copier un module de base pour le mettre à jour. Les hooks Drupal devraient suffire.

Pour les thèmes, oui, parfois c'est le seul moyen d'avancer, mais souvent, vous pouvez créer un sous-thème pour obtenir le résultat dont vous avez besoin.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X