Débarrassez-vous du fouillis lors du développement Wordpress avec Timber et ACF

Débarrassez-vous du fouillis lors du développement Wordpress avec Timber et ACF
Categories
Technologies
Author

Benoit Schneider

Managing Technical Director
Date

Si vous demandez à des programmeurs back-end habitués à l’utilisation de frameworks avec des langages comme PHP, Java, Ruby ou Python d’utiliser WordPress pour construire un site web, ils finiront inévitablement par le décrier et la plupart préféreront éviter de devoir utiliser un CMS. La réalité est que WordPress est souvent considéré comme un gâchis par les programmeurs les plus sérieux car il n’a pas été conçu pour suivre des règles de programmation propres mais pour permettre aux non-programmeurs de lancer un site facilement. Il a ensuite évolué vers quelque chose avec un but plus large lorsque des tonnes de plugins ont été développés pour WordPress, ce qui permet maintenant de transformer un site WordPress en à peu près n’importe quoi. Tous ces plugins parfois bogués peuvent créer leurs propres dégâts dans ce qui peut devenir un système désordonné.

Qu’est-ce que WordPress?

Tous les sites Web sont construits avec les mêmes technologies, celles qui fonctionnent dans le navigateur, qui sont HTML et CSS, le squelette et le style des pages Web. De nombreux sites Web sont en fait statiques et directement construits avec ceux-ci, d’autres sont dynamiques et permettent aux utilisateurs de mettre à jour leur contenu via un gestionnaire de contenu, le contenu étant enregistré dans une base de données.

WordPressoffre une tel interface d’administration, c’est un système de gestion de contenu (CMS) gratuit et open-source basé sur le langage de programmation PHPet la base de données MySQL. Les technologies qu’il utilise sont simples et largement disponibles sur la plupart des serveurs web, ce qui le rend facile à installer.

Pour paraphraser (soi-disant) Churchill, cependant, « WordPress is the worst bogging system… except for all the others », on peut comprendre pourquoi WordPress est maintenant à l’origine de 30% des sites web. WordPress is the most popular website or blog management system currently in use on the web, with more than 60 million websites to its credit.

Cas d’utilisation WordPress

Chez Outsourcify, nous avons tendance à penser qu’il y a des cas où il est logique d’utiliser WordPress et parfois il est préférable d’utiliser une solution alternative, très probablement une application web développée sur mesure. WordPress est un bon choix lorsqu’il simplifie à la fois le développement du site et la facilité de maintenance par ses utilisateurs. La principale raison d’utiliser WordPress est son interface d’administration conviviale qui permet aux utilisateurs d’ajouter et de modifier du contenu facilement, et en particulier sa bibliothèque média sophistiquée.
Presque n’importe quel site web ou concept d’application pourrait être construit avec WordPress comme CMS (Content Management System) mais à partir du moment où certains des besoins nécessiteraient de créer d’énormes plugins ou de pirater des plugins existants, WordPress est à éviter.

WordPress est adapté pour les sites web d’entreprise affichant des pages, des articles et tout type de contenu qui peuvent être affichés à travers les mêmes modèles. Avec l’aide de WooCommerce, les boutiques en ligne, si elles s’en tiennent aux caractéristiques habituelles du commerce électronique classique, peuvent également être créées efficacement avec WordPress, et sont beaucoup moins cher qu’avec une solution personnalisée.

Développement MVC avec WordPress

Dans tous les cas, si WordPress est choisi, il y a des possibilités d’amélioration que chez nous, considérons comme obligatoire, la première est d’apporter le modèle architectural Model-view-controller (MVC) à WordPress simplement en séparant les commandes (scripts PHP) des vues (modèles) et en ajoutant les fonctionnalités pour permettre de mettre à jour le modèle des données. C’est aussi simple que d’installer 2 plugins : Timberet ACF.

Timber fournit le moteur de template Twig

WordPress n’est toujours pas livré avec un système de template après toutes ces années (il a été créé en 2003 !), cela signifie que le code PHP est entrelacé avec HTML, ce qui est considéré comme une mauvaise programmation pour une raison. En tant que créateur de thème personnalisé WordPress, notre priorité chez Outsourcify est de résoudre ce problème et il se trouve qu’il existe un plugin pour ajouter un template à WordPress : Timber. Le fait que Timber présente le moteur de template Twig ne peut que nous satisfaire car il est maintenu par l’équipe derrière le Symfony, notre framework PHP de choix lorsque nous codons des applications web personnalisées.

Les recommandations officielles de développement de thème WordPress et les thèmes fournis avec WordPress (Twenty Ten, Twenty Eleven, Twenty Twelve) proposent d’obtenir et d’afficher des informations dans les mêmes fichiers. Ils n’encouragent pas la séparation des fonctionnalités de base du site vers un plugin. Donc ce que vous finissez habituellement par faire sont des constructions de boucles et un gigantesque fichier functions.php. Timber apporte quelques principes de développement à WordPress à partir du modèle architectural Model-view-controller (MVC) en séparant simplement les contrôleurs (scripts PHP) de la vue (Twig templates). C’est aussi simple que d’installer le plugin pour rendre vos thèmes personnalisés beaucoup plus propres.

Un vrai CMS avec des posts personnalisés et des ACF (Advanced Custom Fields)

Le « Modèle » dans MVC représente des données exactement comme dans une base de données, avec la manière dont les informations sont stockées et reliées entre elles. WordPress offre par défaut des entrées et des pages de blog comme c’est à l’origine un système de blogging. Pour ajouter de nouveaux types de données dans WordPress, nous utilisons des messages sur mesure, qui sont appelés entités ou objets. Les messages personnalisés ne sont pas suffisants car ils sont essentiellement des copies de l’entrée du blog, avec les mêmes champs de base : titre, contenu, ancres, etc.

Le plugin ACF permet d’ajouter d’autres types de champs à nos entités : texte, images, urls, liens, toute information nécessaire à la définition d’une entité. La version gratuite d’ACF est suffisante pour la plupart des cas mais il faut noter que la version PRO donne quelques types de données supplémentaires très utiles, les champs « repeater », « gallery » ou « flexible content » sont un must.

Ce n’est pas le but de cet article d’expliquer en détail comment utiliser ces deux plugins, vous pouvez facilement trouver des tutoriels sur la façon de les utiliser, le mieux étant de commencer avec leur documentation :

En utilisant certains des principes du modèle de conception MVC, nous ne disons pas que WordPress devient maintenant un cadre MVC à part entière, mais qu’il s’en rapproche, les développeurs de thèmes WP peuvent maintenant se centrer autour de chaque préoccupation, chacun à leur tour – définir les informations dans le modèle, la récupération et le traitement des données dans les contrôleurs, et enfin, afficher les données dans ces modèles. Séparer ces 3 préoccupations différentes rend le développement beaucoup plus rapide, plus adaptable, plus facile à maintenir et surtout plus amusant.

')}

Benoit Schneider · Managing Technical Director

After studying to become a Web Engineer at the UTBM in France, Benoit experienced working in various IT departments of large companies in Paris as a web developer then as a project manager before becoming a freelance web consultant in 2010, and finally co-founded Outsourcify in Thailand.

Add comment

Related blog articles