Articles de l'utilisateur

Par KarimB
Karim Boudjema
Je suis Karim Boudjema ou KarimB en ligne. Je suis belge, développeur Drupal et aussi administrateur d'entreprises. Je vis pour l'instant à Cochabamba, en Bolivie. Quand j'ai découvert Drupal 4.7 en 2008 (et oui… il y a 10 ans), j'ai tout suite senti que ce serait un changement important dans le monde du développement web. Et ce fut le cas!

Sauvegarder les valeurs d'un formulaire avec Private Tempstore sous Drupal 8

Dans ce billet, nous allons voir comment sauvegarder temporairement les valeurs d'un formulaire et comment les récupérer ou les traiter plus tard dans un contrôleur. Pour cela, nous allons utiliser la Form API et un stockage de type private tempstore (le temporary store storage system de Drupal 8).

Le scénario est le suivant: nous devons créer un simple lecteur RSS (un formulaire) où un utilisateur puisse introduire l'URL d'un fichier RSS et aussi le nombre d'éléments à récupérer de ce dernier. Ensuite, sur une nouvelle page (un contrôleur), l'application doit afficher les éléments requis avec leur lien vers les pages syndiquées.

La manière la plus simple serait de récupérer ces valeurs dans la méthode buildForm() de notre formulaire, les traiter et les afficher dans un champs spécifique de notre formulaire. Mais ce n'est pas notre cas puisque nous devons afficher les résultats sur une nouvelle page.

Par KarimB
Karim Boudjema
Je suis Karim Boudjema ou KarimB en ligne. Je suis belge, développeur Drupal et aussi administrateur d'entreprises. Je vis pour l'instant à Cochabamba, en Bolivie. Quand j'ai découvert Drupal 4.7 en 2008 (et oui… il y a 10 ans), j'ai tout suite senti que ce serait un changement important dans le monde du développement web. Et ce fut le cas!

10 modules Drupal 8 pour bien commencer 2019

C'est toujours un peu compliqué de choisir les modules les plus utiles pour Drupal 8 parce que cela dépend du site que vous allez créer ou administrer. Cependant il y a des modules vraiment utiles que vous pouvez utiliser dans presque toutes les situations.

Dans ce billet je vous parlerai des modules que j'utilise quasi tout le temps dans mes projets sous Drupal 8,  ils ne sont pas liés à un type de site en particulier, mais ils sont toujours utiles tant en développement qu'en production.

1. Admin Toolbar

(D8) - https://www.drupal.org/project/admin_toolbar
Le module Admin Toolbar  vous sauvera beaucoup de temps. En ayant un menu déroulant et en étendant le menu d'origine de Drupal, il vous permettra de réaliser différentes tâches plus rapidement et plus facilement.

Par KarimB
Karim Boudjema
Je suis Karim Boudjema ou KarimB en ligne. Je suis belge, développeur Drupal et aussi administrateur d'entreprises. Je vis pour l'instant à Cochabamba, en Bolivie. Quand j'ai découvert Drupal 4.7 en 2008 (et oui… il y a 10 ans), j'ai tout suite senti que ce serait un changement important dans le monde du développement web. Et ce fut le cas!

Traitement par lots (batch) avec une commande Drush 9 sous Drupal 8

Le traitement par lots (Batch processing en anglais) est souvent un aspect important de tout projet Drupal et plus encore lorsque nous devons traiter de grands volumes de données.

L'un des avantages principaux du traitement par lots réside dans le fait de pouvoir traiter un nombre important de données par petites étapes (chunk) qui se traduisent chacune par une requête indépendante au lieu d'une seule grosse requête pour traiter toutes les données à la fois. Cela nous permettra de réaliser de lourds traitement sans devoir utiliser toutes les ressources mémoires disponibles de notre serveur.

Le fait de diviser un traitement en petits morceaux nous permet aussi d'éviter que le temps allouer à l'exécution de nos scripts PHP ne soit atteint tout en informant nos utilisateurs sur l'avancée de notre traitement.

L'utilisation de la batch API en Drupal peut s'applique aux cas suivants:

Par KarimB
Karim Boudjema
Je suis Karim Boudjema ou KarimB en ligne. Je suis belge, développeur Drupal et aussi administrateur d'entreprises. Je vis pour l'instant à Cochabamba, en Bolivie. Quand j'ai découvert Drupal 4.7 en 2008 (et oui… il y a 10 ans), j'ai tout suite senti que ce serait un changement important dans le monde du développement web. Et ce fut le cas!

Créer un formulaire personalisé en Drupal 8

Créer des formulaires fait partie de la vie quotidienne de tout développeur Drupal. Les formulaires se présentent sous forme de vecteurs tant sous Drupal 7 que sous Drupal 8. La différence réside dans le fait que  sous Drupal 8 ces vecteurs sont définis dans des classes alors qu'en Drupal 7 ils sont créés dans des fonctions.

Dans ce post nous allons créer un  formulaire personnalisé avec deux champs, un champs de type text et un autre de type checkbox, nous allons valider ces champs, les afficher dans un message et enfin rediriger l'utilisateur vers la page principale.

Vous pouvez télécharger le code de ce module ici.

Voici un aperçu du formulaire:
Vous pouvez voir la structure de ce module ci-dessous:

Par KarimB
Karim Boudjema
Je suis Karim Boudjema ou KarimB en ligne. Je suis belge, développeur Drupal et aussi administrateur d'entreprises. Je vis pour l'instant à Cochabamba, en Bolivie. Quand j'ai découvert Drupal 4.7 en 2008 (et oui… il y a 10 ans), j'ai tout suite senti que ce serait un changement important dans le monde du développement web. Et ce fut le cas!

Créer un formulaire de configuration sous Drupal 8

Sous Drupal 7, pour gérer nos variables de configuration système nous utilisions les fonctions variable_get() / variable_set() /  variable_del() et nous enregistrions ces variables dans la table 'variable' de la base de données.

Sous Drupal 8 nous utilisons maintenant le nouveau système de Configuration (Configuration system) qui nous fourni un lieu centralisé pour enregistrer toutes nos donnés de configuration. Ce système nous permet en plus de pouvoir synchroniser  cette information entre nos sites de développement et de production. Ce genre d'information est généralement créé lors du site building et dès lors n'est pas généré par les utilisateurs finaux durant les opérations de routine du site.

Par KarimB
Karim Boudjema
Je suis Karim Boudjema ou KarimB en ligne. Je suis belge, développeur Drupal et aussi administrateur d'entreprises. Je vis pour l'instant à Cochabamba, en Bolivie. Quand j'ai découvert Drupal 4.7 en 2008 (et oui… il y a 10 ans), j'ai tout suite senti que ce serait un changement important dans le monde du développement web. Et ce fut le cas!

Créer une queue avec un contrôleur sous Drupal 8

Sous Drupal, les queues sont particulièrement importantes lorsque nous avons besoin de postposer certaines tâches pour un traitement futur. Pour ce faire, nous allons placer ces tâches ou données dans une queue (créer la queue) et ensuite nous allons traiter ces données avec un 'QueueWorker plugin' (traitement de la queue), généralement grâce à un process de type cron.

Il existe plusieurs manières de créer une queue:
- Avec un formulaire
- Avec un contrôleur
- Avec une fonction hook_cron()
 
Pour traiter la queue, nous avons aussi différentes options:
- Par cron avec un 'QueueWorker plugin'
- Par un batch process aussi avec un 'QueueWorker plugin' mais en étendant un plugin de base
- Par un batch process qui traitera chaque élément de la queue dans un service ou dans un contrôleur.

Par KarimB
Karim Boudjema
Je suis Karim Boudjema ou KarimB en ligne. Je suis belge, développeur Drupal et aussi administrateur d'entreprises. Je vis pour l'instant à Cochabamba, en Bolivie. Quand j'ai découvert Drupal 4.7 en 2008 (et oui… il y a 10 ans), j'ai tout suite senti que ce serait un changement important dans le monde du développement web. Et ce fut le cas!

Accélérer composer avec Drupal 8

Lancer un composer install ou un composer update dans notre installation Drupal 8, pour installer ou actualiser des modules ou des themes, peut parfois être assez frustrant car Composer est vraiment lent. Trop lent en fait. Voici quelques tips qui vous permettront d'accélérer Composer en travaillant avec Drupal.

Installer Prestissimo

Prestismo est un plugin global de Composer qui permet de réaliser des installations (connections) en parallèle et il est vraiment très rapide. Il peut être 2x plus rapide. Mais Prestissimo a besoin de cURL, qui parfois ne fonctionne pas derrière certains firewalls ou proxies.

Pour installer Prestissimo suivez les étapes suivantes:

composer self-update

composer global require hirak/prestissimo

Une fois Prestissimo installé, Composer devrait être bien plus rapide qu'auparavant.

Vous pouvez configurer le nombre de connections parallèles que vous désirez, mais il semble que les 6 connections simultanées par défaut fonctionnent assez bien.

Par KarimB
Karim Boudjema
Je suis Karim Boudjema ou KarimB en ligne. Je suis belge, développeur Drupal et aussi administrateur d'entreprises. Je vis pour l'instant à Cochabamba, en Bolivie. Quand j'ai découvert Drupal 4.7 en 2008 (et oui… il y a 10 ans), j'ai tout suite senti que ce serait un changement important dans le monde du développement web. Et ce fut le cas!

Installer Drupal 8 avec composer

Aujourd'hui composer semble s'imposer comme la manière 'recommandée' pour installer (ou plus précisément de télécharger) Drupal 8, tant pour le cœur de Drupal mais aussi pour les modules comme pour les thèmes.

Donc, pour commencer un nouveau projet sous Drupal 8, nous devrons télécharger le code avec composer et non plus avec Drush ou Drupal Console comme nous le faisions dans le passé. Bien entendu, nous pouvons toujours utiliser Drush ou DC pour activer (ou installer) les modules ou thèmes contrib, mais pas pour les télécharger.

Le principal atout de composer est de pouvoir administrer une liste toujours plus étendue de dépendances (comme de leurs sous-dépendances) et ainsi de s'assurer que les bonnes versions de chaque 'package' soient utilisées ou actualisées.