MagicentoScripts : Automatisez vos développements Magento avec PhpStorm et Magicento

Le principal intérêt d'un IDE est qu'il intègre tout ce dont vous avez besoin pour développer. Seulement voilà, il reste souvent encore beaucoup d'actions que vous devez faire manuellement et parfois même en dehors de votre IDE. Il existe plusieurs solutions pour y remédier et je vais vous exposer l'une d'entre elles : les scripts Magicento. Si vous êtes un développeur Magento, ce post peut vous intéresser.

Introduction

Pour ceux qui ne connaîtraient pas PhpStorm, je vous invite à faire un tour sur le site officiel. C'est à mon sens actuellement un des meilleurs IDE pour les développements PHP car sa prise en charge de l'écosystème est très complète, mais à vous de vous faire votre propre opinion. Magicento est quant à lui un plugin qui ajoute la prise en charge de Magento à PhpStorm. Je ne vais pas faire une liste détaillée de ses fonctionnalités, là encore je vous invite à vous rendre sur le site officiel qui grouille de captures d'écran et de mini-tutoriels.

Depuis la version 2.0.0 de Magicento, il est possible d'étendre ses fonctionnalités en écrivant ses propres scripts. Un script Magicento est simplement un script PHP qui sera exécuté par Magicento à la demande de l'utilisateur. Cela vous permettra d'automatiser certaines tâches directement depuis votre IDE. Magicento met à disposition de ce script un certain nombre de paramètres accessibles via la variable $GLOBALS :

  • Le contenu du fichier actuellement en cours d'édition

$GLOBALS['Magicento']['editor_text']

  • Le texte sélectionné

$GLOBALS['Magicento']['selected_text']

  • La position du curseur dans le fichier

$GLOBALS['Magicento']['caret_offset']

  • Le chemin du fichier en cours d'édition

$GLOBALS['Magicento']['file_path']

  • Le chemin du projet

$GLOBALS['Magicento']['current_project_path']

Votre premier script

Pour faire un essai, nous allons écrire un premier script qui aura pour fonction de basculer notre site local en maintenance, ou de sortir de la maintenance s'il l'est déjà. Si vous connaissez Magento, vous devez savoir qu'il s'agira simplement de créer/supprimer un fichier maintenance.flag situé à la racine de notre projet.

Pour commencer, il faut ouvrir le volet des scripts Magicento. Vous pouvez le faire apparaître en vous rendant dans le menu View > Tool Windows > MagicentoScripts.

view_magicentoscripts.png

Depuis cette interface vous pouvez gérer les scripts disponibles depuis votre projet. Ce qui nous intéresse c'est d'en créer un nouveau. Pour cela, nous cliquerons sur le bouton correspondant.

[magicentoscripts_interface.png]

Une nouvelle fenêtre s'ouvre. Elle vous permet de décrire votre script et de le configurer. Le nom du fichier (1) importe peu, mais il est important de donner un titre (2) explicite, ce qui vous permettra de distinguer facilement vos scripts quand vous en rechercherez un à exécuter. La description (3) sera également affichée au moment de la recherche. Vient ensuite un tableau pouvant contenir une liste de paramètres personnalisés et leur description (4). Nous verrons cela plus tard mais ces paramètres pourront être renseignés au moment de l'exécution du script pour agir sur son exécution. Enfin, si vous souhaitez avoir accès aux classes de Magento, vous pouvez cocher la case correspondante (5), mais pour le moment nous n'en aurons pas l'utilité. La dernière option (6) dépend de votre configuration de Magicento, nous n'y toucherons pas.

[new_magicentoscript.png]

Maintenant que le script est configuré, il peut être affiché dans votre éditeur. En validant la création du script un nouveau fichier sera créé de manière locale à votre projet dans le répertoire ".idea/magicento/scripts". Magicento affiche la les différents paramètres disponibles dans des commentaires. Le seul qui nous intéresse ici est "current_project_path" qui donne le chemin du projet. Remplacez le contenu du fichier par le suivant :

[toggle_maintenance_script.png]

Et voilà, notre script est prêt à être exécuté. Ouvrez n'importe quel fichier de votre projet puis ouvrez le menu des actions Magicento (ALT+M) et choisissez "Execute PHP scripts".

[magicento_actions.png]

Vous verrez apparaître la liste des scripts disponibles. Notre nouveau script devrait y figurer.

[search_php_scripts.png]

Appuyez sur Entrée. Dans l'interface des scripts Magicento vous devriez avoir une sortie similaire à celle-ci :

[toggle_maintenance_output.png]

Félicitations ! Vous avez écrit votre premier script Magicento. Vous pouvez dorénavant basculer la maintenance à tout moment depuis votre IDE. Cela a peut d'intérêt, je vous l'accorde, mais c'est un premier pas vers l'automatisation de vos tâches courantes. Maintenant que vous savez comment faire, vous pouvez écrire à peu près ce que vous voulez. Vous avez de la chance, je vais vous aider un peu à trouver des idées.

Aller plus loin

J'ai évoqué précédemment les paramètres personnalisés et la possibilité d'utiliser les classes Magento. Nous allons créer un nouveau script qui va exploiter ces deux possibilités. Cette fois-ci nous allons essayer quelque chose de plus utile, à savoir la création d'un compte administrateur. Rendez-vous dans l'interface des MagicentoScripts et créez un nouveau script en prenant soin de définir les paramètres personnalisés (1) et d'inclure les classes Magento (2).

[new_magicentoscript_adminuser.png]

Insérez ensuite le contenu suivant dans le fichier :

[create_admin_user_script.png]

Comme vous pouvez le voir, nous utilisons les paramètres personnalisés pour définir l'identité du nouvel administrateur. Et puisque nous avons accès aux classes de Magento, l'ensemble des opérations est rendue beaucoup plus simple. Reste à exécuter ce script. Au moment de l'exécution, on vous demande de renseigner les champs que vous avez définis, un par un.

[create_admin_user_script_execution.png]

Une fois que vous avez donné toutes les indications à votre script, vous devriez voir la sortie suivante :

[create_admin_user_output.png]

Dorénavant vous pourrez vous connecter à votre back-office en utilisant l'utilisateur fraîchement créé !

Conclusion

Les scripts Magicento vous permettront aisément d'automatiser certaines tâches qui nécessiteraient un certain nombre d'opérations manuelles (comme naviguer dans le back-office de Magento). Et le plus pratique dans tout ça c'est que vous ne quittez pas (ou presque) votre IDE. A vous de voir quelle utilité vous trouverez à cette fonction, mais j'espère avoir attisé votre curiosité.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.