Développement d'un composant MVC - Introduction
From Joomla! Documentation
< J3.x:Developing an MVC Component
Les articles de cette série
Ajout d'un type de menu à la partie site
Ajout d'un modèle à la partie site
Ajout d'une requête de variable dans le type de menu
Utilisation de la base de données
Backend de base
Ajout de la gestion des langues
Ajout d'actions en backend
Ajout de décorations pour le backend
Ajout de vérifications
Ajout de catégories
Ajout de configuration
Ajout d'un fichier script installation/désinstallation/mise à jour
Ajout d'un formulaire de frontend
Utilisation du filtre de langues
- Ajouter une fenêtre modale
- Ajout d'associations
- Ajout de Checkout
- Ajout d'un filtre
- Ajout de niveaux
- Ajout de versions
- Ajout de tags
- Ajout d'accès
- Ajout d'un processus de traitement
- Ajout d'un cache
- Ajout d'un fil d'actualité
Ajout d'un serveur de mise à jour
Ceci est une série qui regroupe plusieurs articles pour devenir un didacticiel sur la façon de développer un Composant pour Joomla! suivant le principe Modèle-Vue-Contrôleur.
Commencez avec l'introduction, et naviguez dans les articles de cette série soit à l'aide des boutons de navigation en bas des articles, soit grâce au menu de droite : Les articles de cette série.
Notes
- Si vous découvrez Joomla, veuillez commencer par lire : Comprendre les bases du fonctionnement d'un composant.
- Ce didacticiel est une adaptation du précédent didacticiel de Christophe Demko :
- Développement d'un composant MVC pour Joomla! 2.5
- ATTENTION : ce didacticiel ne reprend pas les commentaires de Demko. Pour les voir, veuillez consulter le didacticiel pour Joomla! 2.5 : Développement d'un Composant MVC pour Joomla! 2.5 - Introduction
Exigences techniques
Joomla! 3.0 ou supérieur (avec PHP, MySQL et Apache/IIS de Microsoft) est nécessaire pour ce didacticiel. J'ai recueilli de nombreuses informations, puis j'ai commencé à migrer le composant de Joomla! 2.5 vers Joomla! 3.0. Voici ci-dessous quelques informations importantes sur la migration. Veuillez également consulter toutes les informations sur la migration : Mise à niveau de versions. Paramétrez "display_errors" sur "On" pour faciliter le débogage des erreurs.
Migration de Joomla! 2.5 vers Joomla! 3.0
N'oubliez pas d'ajouter 'Legacy' (rétrocompatibilité) là où vous étendez de façon directe JModel, JView ou JController. Si c'est de manière indirecte (comme pour JModelList), cela n'est pas nécessaire, puisque déjà pris en charge. Outre le fait que le code obsolète (deprecated) a été supprimé (je suppose que JParameter est le plus impacté), les extensions devraient nécessiter que des changements mineurs... Vous pourrez souhaiter voir les modifications de rendu sur lesquelles Kyle travaille. Bien sûr, si vous mettez en place des applications autonomes, le nouveau MVC et JApplicationWeb/JApplicationCLI correspondent à la façon dont vous devriez travailler et, bonne nouvelle, les nouveaux paquets sont déjà là, sur votre serveur, livrés avec le CMS.
Exemples : DS - La constante DS ayant été supprimée dans Joomla! 3.0, il nous faut remplacer les utilisations de la constante dans com_media. Le changement le moins intrusif est de simplement la remplacer par la constante PHP DIRECTORY_SEPARATOR, DS en étant un alias.
(joomlacode)
if(!defined('DS')){
define('DS',DIRECTORY_SEPARATOR);
}
//$controller = JController::getInstance('HelloWorld');
$controller = JControllerLegacy::getInstance('HelloWorld');
//class HelloWorldViewHelloWorlds extends JView
class HelloWorldViewHelloWorlds extends JViewLegacy
class HelloWorldController extends JControllerLegacy
class HelloWorldModelHelloWorld extends JModelItemLegacy
class HelloWorldModelUpdHelloWorld extends JModelFormLegacy
JRegistry::getValue() now is JRegistry::get()
//Convert sample to JRegistry with LoadJSON - Sample from Joomla! 3.0 sourcecode
// $params = new JRegistry;
// $params->loadJSON($this->item->params);
// $this->item->params = $params;
$params = new JRegistry;
$params->loadString($item->params);
$item->params = $params;
Voici le code source : http://joomlacode.org/gf/project/hellojoomla3/frs/
Nouveau MVC dans Joomla! 3.0
"La version 12.1 de la plateforme a introduit un nouveau format pour le paradigme modèle-vue-contrôleur. En principe, les classes JModel, JView et JController sont désormais des interfaces et les classes de base sont désormais et respectivement, JModelBase, JViewBase et JControllerBase. En outre, toutes les classes ont été simplifiées, grâce à la suppression d'un grand nombre de doublon avec le CMS Joomla, qui étaient inutiles dans des applications autonomes de la plateforme Joomla"... Plateforme Joomla! - Manuel MVC