Hachther Blog > Open Source  > Comment développer un plugin Mautic: MVC – Routes

Comment développer un plugin Mautic: MVC – Routes

Bienvenue dans la leçon II de la série Développer un plugin Mautic . Si vous n’avez pas lu l’article précédent, je vous recommande vivement de le faire (vous pouvez le trouver ici).

Mautic est basé sur Symfony qui est un framework PHP MVC. Donc, développer un module dans Mautic signifie que vous travaillerez selon le paradigme MVC mais avec les règles Mautic. Donc dans l’article nous ferons une brève description de MVC puis la première grande étape pour le développement de modules: la configuration des routes et des menus.

MVC signifie Modèle Vu Controlleur, qui est un modèle d’architecture logicielle. MVC définit trois composants:

  • Modèle: responsable de l’interaction avec vos données.
  • Vue: responsable de la présentation à l’utilisateur.
  • Contrôleur: chargé de lier les données du modèle et d’afficher la vue.

Et pour donner accès à l’utilisateur, vous devez définir des routes.

Dans la suite, nous allons configurer les routes (paradigme MVC) et les menus (spécification Mautic) pour afficher les routes à l’utilisateur. Avant de continuer, nous devons définir l’une des choses les plus importantes: le nom de la clé du module, qui sera utilisé dans toutes nos configurations.

Configurations

Toutes les configurations sont faites Config/config.php: routes, menus, service, catégories … Nous allons seulement nous concentrer sur les configurations pour le module MVC de base et pour cela, nous avons seulement besoin d’ajouter des configurations route et menu. Comme le définit l’article précédent, le nom de notre module est HelloWord et le nom de la clé est helloword . Laissez-nous configurer les routes pour les différentes actions et le menu pour donner accès à notre module à un utilisateur.

Routes

Mautic a trois types de routes:

  • main: l’utilisateur doit être authentifié pour avoir accès à ces routes. (/s/ sera automatiquement ajouté)
  • public: ces itinéraires seront accessibles à tous le monde, authentifiés ou non
  • api: accessible uniquement via la requête sécurisée de l’API (/api/ sera automatiquement ajouté)

Pour une route, vous devez définir certains paramètres requis et d’autres optionnels, en fonction de vos besoins.

  • path (obligatoire): est le chemin utilisé dans le navigateur (puisque Mautic est basé sur Symfony, cette définition de chemin suit les mêmes règles que Symfony).
  • controller (obligatoire): c’est l’action à appeler lorsque cette route est déclenchée. Nous verrons comment définir un contrôleur dans le prochain article.
  • method (optionnel): c’est la méthode HTTP (GET, POST, …) qui doit être utilisée pour déclencher cette route.

Il y a d’autres paramètres qui peuvent être définis dans la route, vous pouvez trouver une documentation complète ici.

Chacune de vos routes doit avoir un nom unique, nom qui sera utilisé pour faire référence à cette route dans les autres configurations ou dans votre code source.

Dans cet article, nous allons nous concentrer uniquement sur les routes main.

Menu

Mautic dispose de 4 types de menus:

  • main: menu principal à gauche.
  • admin: menu admin accessible par la roue dentée dans le coin supérieur droit de Mautic.
  • profile: menu profil accessible en cliquant sur le nom d’utilisateur en haut à droite de Mautic.
  • extra: s’affiche à droite du logo Mautic dans la main gauche supérieure. N’affiche que s’il y a des éléments de menu injectés.

De même que les routes, les menus ont des paramètres que vous pouvez définir.

  • route (optionnel): le nom de la route à lier à ce menu.
  • parent (optionnel): affiche cet élément sous un autre élément de menu parent.

Il y a d’autres paramètres qui peuvent être définis dans le menu, vous pouvez trouver une documentation complète ici.

Dans cet article, nous nous concentrerons uniquement sur le menu principal.

Fichier de configuration

Voici à quoi ressemblera votre fichier.

 'HelloWord',
	'description' => 'Hello Word module',
	'version' => '1.0',
	'author' => 'Hachther Co.',

	'routes' => [
		'main' => [
			'mautic_helloword_index' => [
				'path' => '/helloword/{page}',
				'controller' => 'MauticHelloWordBundle:HelloWord:index',
				'method' => 'GET'
			],
			'mautic_helloword_action' => [
				'path' => '/helloword/{objectAction}/{objectId}',
				'controller' => 'MauticHelloWordBundle:HelloWord:execute',
			],
		]
	],
	'menu' => [
		'main' => [
			'mautic.helloword' => [
				'route'    => 'mautic_helloword_index',
				'parent'   => 'mautic.core.channels',
			]
		]
	],
];

Comme vous pouvez le voir, faire le fichier configuration est juste question de retourner un tableau PHP avec une structure spécifique. Nous avons des itinéraires (avec des routes principales à l’intérieur) et un menu (avec le menu principal à l’intérieur) et pour chaque élément, vous définissez un nom unique et votre configuration à l’intérieur.

Ceci est la fin de cet article. J’espère que cela a été utile et que vous allez lire le prochain article.

Article Précedent

Comments:
  • Julien
    February 11, 2019 at 5:12 pm

    Bonjour, Merci pour votre article! Pouvez-vous m’indiquer la date de sortie du prochain article svp?

    Merci!

Leave a reply