Qu'est-ce que Drupal?

Drupal est un système de gestion de contenu open source populaire écrit en PHP. Créé au début des années 2000 par un étudiant belge, il est désormais compatible avec certains des sites Web les plus en vue sur le Web (WhiteHouse.gov, Weather.com, etc.). Il est souvent considéré comme un concurrent des CMS tels que WordPress et Joomla..

L'une des composantes les plus importantes du projet Drupal est sa communauté de supporters (contributeurs, développeurs, évangélistes, propriétaires d'entreprise, etc.). L’Association Drupal, chargée de "promouvoir et soutenir le projet de logiciel Drupal, la communauté et sa croissance", occupe une place importante dans cette communauté..

Sautant de géant par rapport à son prédécesseur, la 8ème version majeure du projet Drupal vient de paraître. Il a entraîné une sérieuse modernisation de son code, de ses pratiques et de sa mentalité. Nombreux sont ceux qui considèrent ce changement comme un véritable abandon du concept traditionnel de CMS à une gestion de contenu Cadre (CMF) qui fournit une excellente plateforme pour la construction d'applications complexes.

Dans cet article, je vais répondre à certaines des questions les plus fréquentes que les gens se posent à propos de Drupal lorsqu'ils démarrent pour la première fois ou envisagent de le faire:

  • Est-ce juste pour moi? À qui est-il destiné?
  • Comment peut-il être installé et où puis-je l'héberger?
  • Comment puis-je commencer à travailler avec elle en tant que développeur??
  • Quelles options ai-je pour étendre les fonctionnalités ou les styler??

À qui est destiné Drupal??

Depuis le début du projet, Drupal, qui était principalement un outil destiné à la construction de sites plus petits, est devenu un outil capable désormais d’alimenter les plates-formes de niveau entreprise. Surtout avec Drupal 8, les constructeurs de sites et les développeurs peuvent facilement passer de petits sites Web à de grandes plates-formes comportant de nombreuses intégrations. Par exemple, l'adoption de Composer vous permet non seulement d'intégrer des bibliothèques externes dans un projet Drupal, mais également d'utiliser Drupal dans le cadre d'un projet plus vaste d'applications et de bibliothèques. Drupal est suffisamment flexible pour répondre aux besoins de nombreux projets..

En ce qui concerne le développement, Drupal a toujours eu une communauté relativement fermée, non pas parce que les gens sont hostiles, bien au contraire, mais principalement parce que le code est généralement écrit de manière Drupal (ce qui est parfois appelé code). Drupalismes). Cela a signifié une courbe d'apprentissage pour tout développeur débutant, mais également un intérêt moindre des développeurs d'autres projets PHP à intervenir et à contribuer..

Ce n'est plus le cas. En particulier avec la sortie de Drupal 8, la communauté promeut maintenant une nouvelle mentalité de réutilisation du code et de meilleures pratiques dans différents projets open source. Une participation active au groupe d’interopérabilité du framework PHP fait partie de cet effort, et l’utilisation d’un certain nombre de composants Symfony populaires dans Drupal 8 core témoigne de cet engagement.. 

Grâce à ce déménagement, la communauté Drupal s’est enrichie en accueillant de nombreux développeurs d’autres communautés et de nombreux projets, et sa croissance est assurée. Donc, si vous êtes un développeur Laravel, consulter le code Drupal ne sera plus aussi intimidant..

Comment puis-je installer Drupal et où puis-je l'héberger??

Drupal a toujours eu un processus d’installation relativement simple, en particulier pour les personnes connaissant au moins un environnement Linux. Le projet doit simplement être déposé dans un dossier que votre serveur Web peut exécuter (qui doit utiliser PHP et disposer d'une base de données MySQL ou MariaDB). Puis pointez votre navigateur sur la /install.php fichier et en suivant les étapes prend en charge le reste. L’écran le plus important que vous verrez est celui dans lequel vous sélectionnez une base de données spécifique à utiliser..

En termes d'exigences, l'environnement de pile LAMP (Linux, Apache, MySQL et PHP) a toujours été un favori pour Drupal. Cependant, il n'y est aucunement limité. Des solutions existent pour l'installer directement sur Windows ou Mac (par exemple, à l'aide d'Acquia Dev Desktop), mais également sur un système Linux exécutant d'autres serveurs Web..

La solution la plus simple, si vous choisissez votre propre configuration, consiste à utiliser un serveur LAMP pour l'hébergement. Pour un peu plus de performances, vous pouvez remplacer Apache par Nginx, mais vous devrez alors vous occuper d’une configuration spécifique qui, sinon, sera gérée dans le .htaccess fichier Drupal livré avec.

Cependant, si vous ne voulez pas avoir à gérer votre propre serveur d'hébergement, il existe trois principaux fournisseurs d'hébergement géré spécialisé dans Drupal: Acquia, Pantheon et Platform.sh. Celles-ci fournissent également un flux de travail facilitant les mises à jour et le flux de développement. Passé cela, vous envisagez un hébergement entièrement géré avec une société de développement Drupal.

Comment puis-je commencer à développer pour cela?

Développer des sites Web Drupal est généralement le genre de chose que vous aimiez beaucoup ou que vous n'aimiez pas du tout. En effet, lorsque vous avez découvert Drupal, vous avez rencontré de nombreuses spécificités que vous n’avez pas vues dans d’autres projets. Donc, si ceux qui chatouillaient votre fantaisie, vous l'aimiez pour toujours.

À sortir de cette île dans Drupal 8, ce n'est plus autant le cas. Vous avez encore beaucoup de Drupalismes Vous pouvez encore aimer ou détester, mais vous disposez maintenant de composants externes tels que Symfony ou Guzzle et, plus important encore, d’une manière plus moderne d’écrire du code en général (POO, modèles de conception, composants réutilisables, etc.). Ainsi, vos compétences en PHP pour créer des sites Web avec Zend vous seront utiles..

Un bon moyen d'entrer dans le développement de Drupal est de suivre des cours de vidéo en ligne. Quelques ressources sont excellentes à cet effet, notamment Drupalize.me. Si, toutefois, la vidéo n'est pas votre support préféré, de nombreux tutoriels et guides écrits sont également disponibles pour vous aider à démarrer. Consultez les liens suivants pour connaître certaines des premières étapes à suivre:

  • Guides de développement Drupal officiels
  • La référence de l'API Drupal
  • Guides de développement de modules
  • Didacticiels Envato sur le code Drupal

Comme Drupal 8 est tout nouveau, le contenu d’apprentissage pour Drupal 7 sera bien plus important. Néanmoins, la communauté s’est récemment focalisée sur Drupal 8. Vous pouvez donc vous attendre à ce que de plus en plus de ces ressources apparaissent. Et si vous n’avez aucune expérience de la version de Drupal, il est préférable de vous concentrer exclusivement sur Drupal 8, car les changements entre les deux sont importants et vous feriez peut-être face à des défis inutiles..

Comment puis-je étendre Drupal?

Le point d’extension principal d’une installation Drupal principale est son module système. 

Les modules sont utilisés pour encapsuler de plus grandes quantités de fonctionnalités réutilisables qui peuvent / devraient fonctionner sur différents sites. Outre les modules de base, il existe un grand nombre de modules contribués, disponibles pour l'installation. 

Certes, la plupart ne sont encore que pour Drupal 6 et 7, mais la communauté est également en train de rattraper son retard sur la version la plus récente. Ce problème est également atténué par l'incorporation dans Drupal 8 de quelques modules contribués populaires et par l'extension de la portée de ce que le noyau peut faire par défaut (par rapport à Drupal 7).. 

Enfin, les modules personnalisés (ceux que vous écrivez vous-même) constituent le moyen principal d'ajouter toutes les fonctionnalités souhaitées, qui ne sont pas disponibles via un module ajouté..

L'installation de modules peut vous permettre de brancher diverses fonctionnalités, mais vous ne devez pas considérer cela comme un feu vert pour en ajouter trop. Il est toujours préférable de s'en tenir à ceux dont vous avez réellement besoin et de ne pas avoir peur d'être critiques à cet égard. Vous pouvez également rechercher un bon équilibre entre le code que vous apportez et le code personnalisé que vous écrivez vous-même.. 

De plus, puisque nous parlons de logiciels open-source, vous devez toujours évaluer les modules que vous installez. Les indicateurs suivants constituent de bons exemples à prendre en compte: nombre de téléchargements et d'utilisation, fréquence de validation, engagement du responsable, état de la file d'attente des problèmes.

Et gardez également à l’esprit la sécurité. Il est fortement recommandé de mettre à jour à la fois le noyau Drupal et tous les modules fournis, car cela vous aidera considérablement à sécuriser votre site et votre serveur (bien que cela ne le garantisse pas)..

Qu'en est-il du style?

La couche de style d'un site Drupal est gérée (en grande partie) par son thème. Les thèmes sont similaires aux modules en ce qu’ils constituent un point d’extension, mais ils ont des responsabilités différentes. Ils contiennent les styles, les bibliothèques frontales et, dans la plupart des cas, les fichiers modèles utilisés pour la sortie des données..

Drupal 8 a fait de gros progrès par rapport à la version précédente: le populaire moteur Twig a été adopté pour la modélisation, la thématisation a été limitée aux fichiers de modèles Twig, le débogage et la modification des modèles ont été simplifiés, etc. L’expérience de développement back-end (DX), la couche de thème a été rendue plus attrayante pour le public non-Drupal. Les développeurs front-end peuvent désormais facilement utiliser des thèmes Drupal sans avoir à comprendre les tenants et les aboutissants de l'arrière-plan..

Drupal core est livré avec un certain nombre de thèmes pouvant vous fournir des exemples, mais également sur lesquels vous pouvez vous appuyer. Il existe également des thèmes similaires à ceux proposés pour les modules. Les frameworks front-end populaires tels que Bootstrap ou Zurb Foundation ont des implémentations de thèmes Drupal bien développées pour Drupal 7, qui se préparent également à Drupal 8. Celles-ci fonctionnent très bien comme thèmes de base, mais également pour échafauder rapidement un site Web et lui donner un aspect correct.

Des thèmes payants sont également disponibles pour essayer. Habituellement, ils sont très bon marché et rapides à installer. Le problème avec eux, c’est qu’ils valent exactement ce que vous payez et qu’ils ont généralement des trous béants dans leur souplesse. En tant que débutant, ces thèmes peuvent sembler être un excellent moyen de créer un site, et ils peuvent très bien l'être. Cependant, au fil de votre progression, vous apprendrez à les éviter et à créer les vôtres, sur la base de conceptions externes ou même de modèles HTML / CSS / JS simples..

Conclusion

Drupal est un outil puissant pour la création de sites Web et de plates-formes de toutes sortes. À chaque nouvelle version majeure, Drupal a démontré sa volonté de s’améliorer, de devenir plus robuste et flexible et d’adhérer aux communautés extérieures..