J3.x:Sviluppo di un Componente MVC /Introduzione
From Joomla! Documentation
< J3.x:Developing an MVC ComponentRevision as of 20:02, 30 October 2021 by Ing Pulizzi (talk | contribs) (Created page with "S:MyLanguage/J3.x:Developing_an_MVC_Component/Developing_a_Basic_Component|Successivo: Sviluppo di un componente di base")
Articles in This Series
- Introduction
- Developing a Basic Component
- Adding a View to the Site Part
- Adding a Menu Type to the Site Part
- Adding a Model to the Site Part
- Adding a Variable Request in the Menu Type
- Using the Database
- Basic Backend
- Adding Language Management
- Adding Backend Actions
- Adding Decorations to the Backend
- Adding Verifications
- Adding Categories
- Adding Configuration
- Adding ACL
- Adding an Install/Uninstall/Update Script File
- Adding a Frontend Form
- Adding an Image
- Adding a Map
- Adding AJAX
- Adding an Alias
- Using the Language Filter Facility
- Adding a Modal
- Adding Associations
- Adding Checkout
- Adding Ordering
- Adding Levels
- Adding Versioning
- Adding Tags
- Adding Access
- Adding a Batch Process
- Adding Cache
- Adding a Feed
- Adding an Update Server
- Adding Custom Fields
- Upgrading to Joomla4
Questa è una serie di tutorial su come sviluppare un componente secondo il paradigma Model-View-Controller. Component Versione Joomla!.
Comincia con gli articoli di questa serie delle Introduzioni, e naviga tra gli articoli di utilizzando il pulsante di navigazione in basso o il riquadro a destra (gli Articoli di questa serie).
Note
- Se sei un novizio di Joomla!, ti preghiamo di leggere Nozioni di base su come funziona un componente .
- Questo tutorial è stato adattato da Christophe Demko: Sviluppo di un Componente Model-View-Controller /2.5
- ATTENZIONE: questo tutorial non ripeterà i commenti di Demko. Per vederli, dai un'occhiata al tutorial originale per Joomla! 2.5:Sviluppo di un componente MVC per Joomla! 2.5 - Introduzione
Requisiti
Hai bisogno di Joomla! 3.0 (con PHP, MySQL e Apache/Microsoft IIS) o versioni successive per questo tutorial. Ho raccolto molte informazioni e poi ho iniziato a migrare il componente del nuovo Joomla! da 2,5 a 3,0.
Di seguito sono riportate alcune informazioni importanti utilizzate per la migrazione. Consulta anche tutte le informazioni sulla migrazione Versioni di Aggiornamento.
Usa "display_errors On" per aiutarti con gli errori di debugging.
Migrazione di Joomla! 2.5 su Joomla! 3.0:
Ricorda che devi aggiungere Legacy in qualsiasi luogo in cui stai estendendo direttamente JModel, JView o JController. Se è indiretto (come tramite JModelList) non è necessario, è già stato risolto. A parte questo e il fatto che, come annunciato molto tempo fa, il codice deprecato è stato rimosso (immagino che JParameter sia l'impatto maggiore), le estensioni dovrebbero aver bisogno solo di piccole modifiche ... Anche se vorrai guardare le modifiche all'output su cui Kyle sta lavorando. Naturalmente, se stai creando applicazioni per piattaforme standalone, il nuovo MVC e JApplicationWeb/JApplicationCLI sono completamente il modo in cui dovresti lavorare e la cosa bella del modo in cui lo abbiamo fatto è che i nuovi pacchetti sono già proprio lì sul tuo server essendo arrivati con il CMS.
(Elin nella lista di sviluppo)
Campioni: DS Poiché abbiamo rimosso la costante DS in 3.0, dobbiamo sostituire gli usi della costante in com_media. Il cambiamento più discreto è semplicemente sostituirlo con la costante DIRECTORY_SEPARATOR di PHP poiché DS ne è un alias. Tuttavia, il modo consigliato per farlo è usare semplicemente la barra, cioè 'components/com_example/models/example.php' invece di 'components'.DS.'com_example'.DS.'models'.DS.'example. php'. Questo è sicuro per Windows.
(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;
Di seguito il codice sorgente: http://joomlacode.org/gf/project/hellojoomla3/frs/
Il Nuovo "MVC" in Joomla! 3.0
"La versione 12.1 della piattaforma ha introdotto un nuovo formato per il paradigma model-view-controller. In linea di principio, le classi JModel, JView e JController sono ora interfacce e le classi astratte di base sono ora rispettivamente JModelBase, JViewBase e JControllerBase. Inoltre, tutte le classi sono state semplificate, rimuovendo molti accoppiamenti con il CMS Joomla!, che non erano necessari per le applicazioni standalone della piattaforma Joomla!." ...
Joomla! Manuale della piattaforma MVC