Bonjour,

Je suis en train de migrer une application qui utilise ExtJS 2.3.0 vers ExtJS 4.2.1.
J'utilise la couche de compatibilité ExtJS 3 -> ExtJS 4 qui m'aide beaucoup.

Je consulte les documentations et j'ai un problème avec Ext.extend.

Dans le 2.3.0 [http://docs.sencha.com/extjs/2.3.0/#...method-extend] c'était extend( subclass, superclass, [overrides] ).
A partir de la 3 [http://docs.sencha.com/extjs/3.4.0/#...method-extend], Ext.extend change extend( superclass, overrides ).

Je connais bien la structure :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Ext.define('nom.de.ma.classe', {
     extend: 'classe.mere',
     ...
Mais parfois j'ai des problèmes.

Le code ExtJS 2 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
MyApp.data.DocumentModelStore = function(c) {
   ...
};
 
Ext.extend( MyApp.data.DocumentModelStore, Ext.data.GroupingStore ) ;
Bon là vous allez me dire que Ext.data.GroupingStore n'existe plus dans ExtJS 4, mais c'est juste pour l'exemple.

Est-ce que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Ext.define('MyApp.data.DocumentModelStore', {
   extend: 'Ext.data.GroupingStore',
   initComponent: function(c){
      //
   }
});
Revient au même ?

Je vais lire la doc d'ExtJS4 et essayer de trouver quelque chose, parce que je dois étendre et override.
http://docs.sencha.com/extjs/4.2.1/#...-method-define

Si vous avez un peu de connaissance en ExtJS2 merci de m'en faire part.
D'avance merci.
Au revoir.

================================================================
En fait avec ExtJS 2.3.0 il y a :
Ext.extend(subclass, superclass, [overrides]) et :
Ext.extend(superclass, [overrides])

Dans le 2ième cas je pense avoir fait quelque chose de juste, puisque :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
// J'ai modifié ça :
ma.variable = Ext.extend(Ext.une.Classe,  {
     initComponent: function(){...},
     ...
}
 
En :
Ext.define('ma.variable' , {
     extend: 'Ext.une.Classe',
     initComponent: function(){...},
     ..
});
Dans le 1er cas j'essaie de faire ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
ma.classe.fille = function(c){...};
Ext.extend(ma.classe.fille, Ext.une.classe.Mere, {
     fonctionSurcharge: function(){...}
});
 
// Devient :
Ext.define('ma.classe.fille', {
     extend: 'Ext.une.classe.Mere',
     constructor: function(c)[...},
     fonctionSurcharge: function(){...}
});
Mais est-ce que ça marche d'utiliser constructor ?