Le développement de modules personnalisés Magento est une partie essentielle de tout développement ou projet Magento, car vous pouvez à tout moment intégrer votre propre fonctionnalité / module à votre projet Magento existant..
Dans cette série, je vais couvrir les détails du développement de modules personnalisés Magento..
Si vous voulez aller plus loin avec votre développement Magento, découvrez le large éventail d'extensions utiles de Magento sur Envato Market..
Extensions Magento sur le marché EnvatoDans toute cette série, je parle de Magento Community Edition 1.7, bien que les structures de module personnalisées soient les mêmes dans toutes les versions de Magento. Avant de commencer, nous allons commencer le développement de modules, comprenons rapidement la structure de base de Magento..
Chaque fois que vous installez un nouveau Magento, vous remarquerez la structure de répertoires Magento suivante:
Comme tout autre framework majeur tel que Joomla, CakePHP, CodeIgniter, etc., Magento suit également l’architecture basée sur MVC bien que cela soit un peu différent de l’architecture PHP MVC principale. Ici, j'expliquerai la différence d'architecture Magento en la comparant avec une architecture PHP MVC simple..
Dans le modèle MVC typique, le flux de l'application ressemble à ceci:
index.php
- à partir duquel le mécanisme de routage complet de l'application est déterminé.L'architecture MVC de Magento ajoute quelques couches au motif MVC, mais le flux de contrôle de base d'une application est le suivant:
index.php
- à partir duquel toute l'application sera initialisée.Au début, cela peut être difficile à comprendre car il contient quelques couches supplémentaires. Pour vous familiariser avec le flux de contrôle, développons un module "Hello World" personnalisé.
Magento contient trois types de pools de codes où résident tous les modules personnalisés et principaux de Magento..
Ainsi, nous avons deux choix de piscines: communautaires ou locales. Puisque nous travaillons sur notre propre projet, nous allons utiliser un pool local, même s'il n'y a pas de restriction d'utilisation du pool communautaire..
Structure
Les modules Magento comprennent les composants suivants:
Nous devons donner un nom à notre module. Généralement, les noms de modules Magento sont composés de deux parties:
en tant qu'auteur ou nom de société et
comme un nom de module réel.
Sur la base de ces conventions de nommage, je donne à notre module la Chiragdodia_Mymodule prénom. Nous ferons référence à ce nom tout au long de cette série.
Permet de créer les répertoires basés sur la structure ci-dessus. Accédez à la direction de votre installation Magento, puis accédez à app / code / local
et créez les répertoires comme indiqué ci-dessous.
Ensuite, nous allons configurer et activer notre module en créant un fichier de configuration Chiragdodia_Mymodule.xml
dans le app / etc / modules
annuaire. Ce répertoire contient les fichiers de configuration pour tous les modules.
vrai local
Ce fichier indiquera à Magento l'emplacement de notre module. dans le actif
tag, nous avons spécifié vrai
pour activer notre module. Si tout est correct jusqu'à présent, vous trouverez votre module dans la Panneau d'administration Magento> Système> Configuration> Avancé> Avancé> Désactiver la sortie des modules liste. De là, vous pouvez activer et désactiver votre module.
Ensuite, nous allons créer notre fichier de configuration de module. Ce fichier informera Magento de notre module. Cela inclut le nombre de fichiers contenus dans notre module, le type de fichiers (modèles, aides, classes de base de données), etc..
Aller à app / code / local / Chiragdodia / Mymodule / etc
et créer un config.xml
fichier qui contiendra le contenu suivant
0.1.0 Chiragdodia_Mymodule mymodule
Passons ligne par ligne pour comprendre chaque tag. Ici, la première balise est
qui contient le nom et la version de notre module. Le numéro de version est très important pour la mise à jour de votre module.
le
La balise indiquera à Magento le contrôleur envoyé. À l'intérieur de
tag, nous avons défini
qui indique à Magento comment accéder à nos contrôleurs via le mécanisme de routage.
dans le
tag, nous avons défini le nom du module dans
balise et nom de l'interface dans
. En utilisant un nom d’interface, nous pouvons accéder à notre module en interface comme votrenomsite.com/index.php/mymodule/index
.
En appelant votrenomsite.com/index.php/mymodule
ou votrenomsite.com/index.php/mymodule/index
Magento recherchera une action d'index du fichier de contrôleur de votre module. En tant que tel, nous devons créer notre fichier de contrôleur.
Aller à app / code / local / Chiragdodia / Mymodule / contrôleurs
et créer un fichier IndexController.php
avec le contenu suivant.
Notez que le nom de chaque fichier et les noms de classe sont sensibles à la casse dans Magento. Il est très important que vous preniez soin de nommer votre travail lors de la création de fichiers et de classes..
Maintenant ouvrir l'URL
votresite.com/index.php/mymodule/index
il va imprimer "Bonjour tuts + monde". Génial - nous avons enfin terminé notre premier module hello world.Contrôleur Dispatch
Ici nous avons étendu la classe
Mage_Core_Controller_Front_Action
qui contient toutes les méthodes qui utilisent dans le routage de l'URL. Le nom de la classe Magento reflète l'emplacement du fichier de classe. Alors la classeMage_Core_Controller_Front_Action
réside dans l'emplacement Mage> Noyau> Contrôleur> Avant> Action.phpVoir le nom de classe de notre contrôleur qui est
Chiragdodia_Mymodule_IndexController
. Le contrôleur Magento doit être nommé de manière à refléter(
balise) _ (Action Controllername) (mot clé Controller).
Chiragdodia_Mymodule
(nous avons défini cette balise dans config.xml
) Nom de contrôle
= IndexManette
mot-clé Sur la base de ce modèle, le nom de notre contrôleur est Chiragdodia_Mymodule_IndexController
Maintenant, voyez le modèle d'URL qui suit le modèle de route ci-dessous.yoursite.com/index.php/frontendname/actionControllername/actionmethod
Basé sur ce modèle d'URL, l'URL de notre module est yoursite.com/index.php/mymodule/index/index
. Vous pouvez également y accéder en utilisant yoursite.com/index.php/mymodule
parce que chaque fois que vous n'avez pas spécifié un actionController
ou méthode d'action
name, Magento charge le contrôleur d'index et l'action d'index par défaut.
Créons maintenant une action supplémentaire: testAction
.
Nous pouvons accéder à testAction en utilisant l'URL
yoursite.com/index.php/mymodule/index/test
.Comme expliqué plus tôt ici
Voici comment fonctionne le contrôleur dans Magento.
Au début, il peut être difficile de tout comprendre en même temps, c'est pourquoi j'ai inclus tout le code source dans ce module afin que vous puissiez le réviser et mettre en œuvre votre propre travail tout en l'utilisant comme guide..
Dans la partie suivante, nous allons compléter certaines dispositions de notre module en créant des fichiers de présentation et de blocage. Nous comprendrons le fonctionnement des fichiers de mises en page dans Magento et le rôle joué par les blocs dans le contexte de Magento..
Jusque-là, créez votre propre module et informez-moi de tout ce qui vous cause des problèmes.
Si vous ne savez toujours pas comment procéder après avoir lu ce didacticiel, essayez de contacter l'un des développeurs de Magento sur Envato Studio. Ils peuvent vous aider avec toutes sortes de problèmes Magento, petits et grands. Voici quelques exemples:
Obtenez une configuration de site Web Magento ou demandez une personnalisation avancée telle que:
Ce fournisseur effectuera l'une des opérations suivantes:
Obtenez votre thème Magento personnalisé à un prix raisonnable en seulement une journée.
Ce fournisseur propose une gamme de services Magento, notamment:
Si ces solutions ne vous conviennent pas, essayez l'une des dizaines d'autres disponibles sur Envato Studio..