Application MVC sencha multi package

senchaCmd est un outils aux multiples facettes. il permet de builder sont application mais il permet aussi de générer le projet et divers composants de celui-ci.

Création du workspace:
Ouvrez un terminal est exécuter la commande
Code : Sélectionner tout - Visualiser dans une fenêtre à part
sencha -sdk ~/Downloads/ext-4.2.2/ generate workspace ./myDev
adaptez les chemins à votre environnement.
sencha va créer un workspace contenant les dossiers: .sencha, ext et packages
Se placer dans le dossier myDev et ajoutez un dossier applicationCréation de l'application
Se placer dans le dossier ext et exécuter
Code : Sélectionner tout - Visualiser dans une fenêtre à part
sencha generate app ExtApp ../application/
sencha va créer une application MVC

Création d'un package
exécuter
Code : Sélectionner tout - Visualiser dans une fenêtre à part
sencha generate package -type code Common
le package common est créé dans le dossier package.

Utiliser le package common dans l'application
ouvrir le fichier app.json dans application et ajoutez Common dans les riquires
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
{
    "name": "ExtApp",
 
    "requires": [
        "Common@1.0.0"
    ],
 
    "id": "805855de-6a4d-4279-b1bc-4027a6344bb8"
}
pour compiler l'application compiler d'abord le package
puis l'application

vous pouvez créer des contrôleurs des vue des modèle etc dans vos package
pour les utiliser dans votre application.
la seule contrainte est d'utiliser le nom complet dans les déclarations
par exemple application.js qui utilise les contrôleurs du package Transco
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Ext.define('HermesWeb.Application', {
    name: 'HermesWeb',
 
    extend: 'Ext.app.Application',
 
    views: [
        'Main'
    ],
 
    controllers: [
        'Main',
        'Transco.controller.Main',
        'Transco.controller.CentreCout',
        'Transco.controller.CodeLieu',
        'Transco.controller.Application',
        'Transco.controller.Route'
    ],
 
    stores: [
        // TODO: add stores here
    ]
});
Notez que vous pouvez gérer plusieurs applications dans un même workspace.
ces applications peuvent être des appli ext ou touch.
les package peuvent être partagés par plusieurs applications. c'est bien pratique pour les stores, les modèles. mais aussi si vous avez plusieurs webapps ayants dans dommaines qui se recouvre mais destinées à des public différents. vous pouvez alors partager des packages qui sont des MVC complet prêt à être intégré dans vos applis.
la gestion des versions dans les packages permet de faire des évolutions sans impacter tout le workspace.

la doc explique comment utiliser un repository local pour stocker ses packages en diverse version


A+JYT