22/06/2011, 13:33:26
Après l'abandon annoncé de la 2.0, l'equipe de dév a retrouvé du punch et s'est mise à coder comme des forçats une dixième version de CmsMadeSimple.
Les annonces se succédant à grande vitesse sur le forum anglais, je me suis dit qu'un petit topic de traduction sera bienvenue pour vous faire baver.
Le topic original : http://forum.cmsmadesimple.org/viewtopic...=1&t=54021
Alors qu'allons nous retrouver dans cette future V1.10 annoncée pour début de l'automne.
Sous le Capot
* Suppression dans l'API des appels déjà deprecated dans un module de $this->db, $this->smarty, ... au profit de leur accesseurs équivalent déjà existant : $this->getDb(), ... un système de compatibilité est mis en place, mais sera + lent. Vérifiez votre code
* Possibilité de modifier les modules par leur propriétaires pour un chargement en "lazy mode" pour gagner en consommation mémoire.
* Ajout de nouveaux events pour pouvoir améliorer les modules de multilangues (mlecms, babel, ...)
* réécriture de config.php pour l'alléger de l'inutile tout en laissant la main aux utilisateurs souhaitant customiser leur fichiers de conf.
* proposer enfin une url d'administration full SSL
* Nettoyage de l'objet Content Object dans l'API
* Nettoyage de l'objet $gCms grâce au éventuel lazy mode des modules
* Séparation de la notion des modules installés et des modules non installés mais présents physiquement sur le disque. De manière plus générale, $gCms->modules qui contenait la liste des modules et qui était méga lourd est complètement revu.[**]
* Utilisation massif de __construct() qui est du pur PHP5.x à la place du code existant
Côté modules & développement des modules:
* nuSOAP est supprimé au profit d'un autre système plus générique
* amélioration sur l'utilisation de la mémoire lors du téléchargement des fichiers .xml
* amélioration sur la gestion des téléchargement des modules, notamment pour pouvoir télécharger d'ancienne version de module + dépendances
* TinyMce devient un module Tiers
* TinyMce est remplacé par MicroTiny
* Printing module devient un module Tiers
* Printing module sera remplacé par un autre module ne gérant pas la génération pdf et donc plus "light" en terme de poids
* Casse du lien cyclique qui existait entre un module et la liste des modules ce qui allègera énormément la conso mémoire. [**]
* réduction de la taille des fichiers par défaut XXXXX.module.php pour gagner en conso mémoire
* Les actuelles notifications des modules seront remplacés par des taches cron pour éviter de charger les modules côté admin
* Nouvelle classe : cms_cookies pour gérer facilement les cookies pour les modules. Gestion du SSL inclus dedans.
Côté CSS :
* Les fichiers css seront combinés en sortie dans un seul fichier selon le type de CSS \o/
* Gestion du SSL dans la génération des CSS avec {cms_stylesheet}
Côté Admin :
* un système de recherche pour trouver où la chaine "toto" est utilisée dans le back-office: page, contenu global, balise, gabarit, ....
* nouvelles opérations possible telle que nettoyage de table, optimisation des index & co.
* possibilité de modifier le type de contenu par défaut des nouvelles pages
* Nouvelle permission "trier les pages si propriétaire de la page"
* mot de passe de connexion de type salt (nouvelles installations seulement)
* amélioration des logs de l'administration, + de logs, possibilité de filtre, pagination, tri...
Sur Smarty
* {html_date} est remplacé par une combinaison jquery pour avoir un popup calendrier.
* pour tous les plugins existant , ils vont ajouter le paramètres "assign" si pas encore existant
* création d'un plugins pour insérer la librairie jQuery dans les templates en automatique.
* {stylesheet} déjà deprecated au profit de {cms_stylesheet} est supprimée.
Mais également prévu :
* Refonte de la manière de gérer la liste des pages dans l'admin afin de le rendre moins gourmand en mémoire
[**] ==> ca va trancher chérie... ces nouvelles fonctionnalités vont casser la plupart des modules existants. Du coup un travail des développeurs va devoir être fait ... Par exemple, dans le code d'une balise utilisateur ou d'un module, il faudra remplacer
par
effet indésirable direct : bon nombre de modules et balises utilisateurs vont plus marcher en 1.10
effet indésirable indirect : des thèmes d'administration utilisant $gCms->modules vont forcement planter.
effet positif : les dev sont claire : la version 1.10 devrait permettre une économie énorme sur la consommation mémoire de CmsMadeSimple. Évidement nous serons là pour tester ce gain
Au final
Je reviendrais prochainement sur les implications pour tout le monde de cette casse dans le code car il faut savoir qu'il y aura de la casse pour tout le monde.
Concernant le nombre d'amélioration j'invite tous les développeurs à installer une version issue du SVN chez eux afin de préparer leur module afin de les rendre compatible au plus vite.
[h]Dernier point : ne vous leurrez pas, cette première version ne devra pas être installée en production. Autant d'améliorations d'un coup signifie autant de risque de bug. Je conseillerais donc tous les webmasters de rester au courant de l'évolution des travaux mais de ne pas se jeter sur cette prochaine version ![/h]
Les annonces se succédant à grande vitesse sur le forum anglais, je me suis dit qu'un petit topic de traduction sera bienvenue pour vous faire baver.
Le topic original : http://forum.cmsmadesimple.org/viewtopic...=1&t=54021
Alors qu'allons nous retrouver dans cette future V1.10 annoncée pour début de l'automne.
Sous le Capot
* Suppression dans l'API des appels déjà deprecated dans un module de $this->db, $this->smarty, ... au profit de leur accesseurs équivalent déjà existant : $this->getDb(), ... un système de compatibilité est mis en place, mais sera + lent. Vérifiez votre code
* Possibilité de modifier les modules par leur propriétaires pour un chargement en "lazy mode" pour gagner en consommation mémoire.
* Ajout de nouveaux events pour pouvoir améliorer les modules de multilangues (mlecms, babel, ...)
* réécriture de config.php pour l'alléger de l'inutile tout en laissant la main aux utilisateurs souhaitant customiser leur fichiers de conf.
* proposer enfin une url d'administration full SSL
* Nettoyage de l'objet Content Object dans l'API
* Nettoyage de l'objet $gCms grâce au éventuel lazy mode des modules
* Séparation de la notion des modules installés et des modules non installés mais présents physiquement sur le disque. De manière plus générale, $gCms->modules qui contenait la liste des modules et qui était méga lourd est complètement revu.[**]
* Utilisation massif de __construct() qui est du pur PHP5.x à la place du code existant
Côté modules & développement des modules:
* nuSOAP est supprimé au profit d'un autre système plus générique
* amélioration sur l'utilisation de la mémoire lors du téléchargement des fichiers .xml
* amélioration sur la gestion des téléchargement des modules, notamment pour pouvoir télécharger d'ancienne version de module + dépendances
* TinyMce devient un module Tiers
* TinyMce est remplacé par MicroTiny
* Printing module devient un module Tiers
* Printing module sera remplacé par un autre module ne gérant pas la génération pdf et donc plus "light" en terme de poids
* Casse du lien cyclique qui existait entre un module et la liste des modules ce qui allègera énormément la conso mémoire. [**]
* réduction de la taille des fichiers par défaut XXXXX.module.php pour gagner en conso mémoire
* Les actuelles notifications des modules seront remplacés par des taches cron pour éviter de charger les modules côté admin
* Nouvelle classe : cms_cookies pour gérer facilement les cookies pour les modules. Gestion du SSL inclus dedans.
Côté CSS :
* Les fichiers css seront combinés en sortie dans un seul fichier selon le type de CSS \o/
* Gestion du SSL dans la génération des CSS avec {cms_stylesheet}
Côté Admin :
* un système de recherche pour trouver où la chaine "toto" est utilisée dans le back-office: page, contenu global, balise, gabarit, ....
* nouvelles opérations possible telle que nettoyage de table, optimisation des index & co.
* possibilité de modifier le type de contenu par défaut des nouvelles pages
* Nouvelle permission "trier les pages si propriétaire de la page"
* mot de passe de connexion de type salt (nouvelles installations seulement)
* amélioration des logs de l'administration, + de logs, possibilité de filtre, pagination, tri...
Sur Smarty
* {html_date} est remplacé par une combinaison jquery pour avoir un popup calendrier.
* pour tous les plugins existant , ils vont ajouter le paramètres "assign" si pas encore existant
* création d'un plugins pour insérer la librairie jQuery dans les templates en automatique.
* {stylesheet} déjà deprecated au profit de {cms_stylesheet} est supprimée.
Mais également prévu :
* Refonte de la manière de gérer la liste des pages dans l'admin afin de le rendre moins gourmand en mémoire
[**] ==> ca va trancher chérie... ces nouvelles fonctionnalités vont casser la plupart des modules existants. Du coup un travail des développeurs va devoir être fait ... Par exemple, dans le code d'une balise utilisateur ou d'un module, il faudra remplacer
Code :
$some_module = $gCms->modules['Toto'];
par
Code :
$modops = cmsms()->GetModuleOperations();
// récupérer la liste des modules installés & actif
$installedmods = $modops->GetInstalledModules();
// récupérer la liste des modules déjà chargés en mémoire
$loadedmods = $modops->GetLoadedModules();
// avoir la liste des modules existant sur le disque
$allmods = $modops->FindAllModules();
// récupère le module Toto. Si il est installé et activé, il sera chargé en mémoire si ce n'est pas déjà fait.
$some_module = $modops->get_module_instance('Toto');
effet indésirable direct : bon nombre de modules et balises utilisateurs vont plus marcher en 1.10
effet indésirable indirect : des thèmes d'administration utilisant $gCms->modules vont forcement planter.
effet positif : les dev sont claire : la version 1.10 devrait permettre une économie énorme sur la consommation mémoire de CmsMadeSimple. Évidement nous serons là pour tester ce gain
Au final
Je reviendrais prochainement sur les implications pour tout le monde de cette casse dans le code car il faut savoir qu'il y aura de la casse pour tout le monde.
Concernant le nombre d'amélioration j'invite tous les développeurs à installer une version issue du SVN chez eux afin de préparer leur module afin de les rendre compatible au plus vite.
[h]Dernier point : ne vous leurrez pas, cette première version ne devra pas être installée en production. Autant d'améliorations d'un coup signifie autant de risque de bug. Je conseillerais donc tous les webmasters de rester au courant de l'évolution des travaux mais de ne pas se jeter sur cette prochaine version ![/h]