====== Jelix 1.0 alpha5====== 26/09/2006 (svn 264) ===== Principales évolutions ===== * Changement dans l'API de jUrl * renommage des modules auth, acl et xulapp en jxauth, jxacl et jxxulapp * jTpl : tag de type block et nouveaux plugins * Utilisation plus grande des exceptions (remplacement progressif des trigger_error) * Optimisations diverses, et nettoyage de certaines parties de code obsolètes ou inutiles * jZone : gestion de cache corrigé et ajout d'un système de timeout * jReponseXml, jResponseZip (avec une nouvelle classe jZipCreator) * action pour les réponses en 404 * Nombreuses corrections dans jDao et quelques améliorations * Nombreux efforts sur la documentation dans les sources ([[http://jelix.org/reference/|nouvelle partie documentation de réference]] * Ajout de tests unitaires pour beaucoup de composants (url, dao...) * corrections sur le plugin magicquotes * possibilité de mettre les fichiers de conf dans des sous-répertoires de var/config ===== Détails des changements ===== ==== Évolutions ==== === Changement d'API === * suppression de jResponse::fetch() * suppression de jSelector::isValid() * changement de jDbConnection::rollBack en ::roll**b**ack * jFile : ses méthodes deviennent statique. jFile::read('afile') et jFile::write('afile','acontent'). Plus besoin d'instancier la classe. depuis svn-247: * suppression de jRequest::url (anciennement un objet jUrl) * jUrl represente désormais une véritable URL (et n'est plus utilisé pour embarquer seulement des paramètres d'actions) * get : son troisième paramètre n'est plus un boolean, mais un entier indiquant le type de valeur de retour: 0=> une chaine, 1=> une chaine échappée pour le xml, 2=>objet jUrlAction, 3=>objet jUrl (par défaut : 0) * toString n'a plus qu'un paramètre : le boolean indiquant si on veut échapper pour le xml ou pas * parse retourne un jUrlAction au lieu d'un jUrl * getAction est déclarée obsolète (utiliser get à la place, avec le type 2 pour récupérer un jUrlAction) * interface jIUrlEngine : * parse retourne un jUrlAction ou lieu d'un jUrl * ce n'est plus void create(jUrl); mais jUrl create (jUrlAction) * interface jIUrlSignificantHandler (pour les handlers personnalisés, pour le moteur d'url significatives) * parse doit retourner un jUrlAction et ne plus modifier le jUrl en paramètre * ce n'est plus void create(jUrl) mais void create(jUrlAction, jUrl) * $gJContext n'existe plus * jIncluder::inc ou incAll ne retournent plus le tableau d'états de la compilation (inutile) * renommage de CopixBinary en jBinaryData (xmlrpc) * renommage des modules auth, acl et xulapp en jxauth, jxacl et jxxulapp : il faut donc changer dans tous les fichiers de configurations et autres fichiers sources les selecteurs auth~*, acl~* en jxauth~* jxacl~* === Améliorations, nouveautés === * optimisations sur les includes pour éviter de passer par l'autoload quand cela est inutile * nouveau plugin autolocale, pour la detection automatique de la langue de l'internaute. * jAuth : ajout d'un driver permettant d'utiliser sa propre classe métier plutôt qu'une dao ( patch 1191 par Yannick ) * jTpl : * ajout du support des plugins de type block * plugin ifacl, ifnotacl, ifconnected, ifnotconnected, strip_tags * core * ajout de jResponse::setHttpStatus(num,message); * optimisation de jResponseRdf * ajout des types de réponse jReponseXml, jResponseZip * tests unitaires sur les selecteurs d'actions (cf testapp) * selecteur : utilisation des exceptions pour générer les erreurs de syntaxe + optimisation sur les créations de path (sont fait uniquement dans le constructeur). * jController : ajout des méthodes intParam, floatParam, boolParam. * ajout d'une méthode jCoordinator::getModulePath($module); * ajout pour la gestion des erreurs, des mots clés TRACE et ECHOQUIET, ainsi qu'une variable de config quietMessage * selecteur d'action : suppression du selecteur simple "@" (qui fait doublon avec "#~#") * nouvelle option shared_session, indique si l'application partage ou non la meme session avec les autres applications installees sur le meme domaine (utilise alors la valeur de basePath pour le chemin du cookie de session) * nouvel objet jUrlAction, qui comporte les paramètres d'une action et son type de requete : clarifie l'utilisation de jUrl * Suite au remaniement de l'api de jUrl et du nouveau jUrlAction, adaptation des moteurs d'url * mise a jour et consolidation des tests unitaires sur les urls * Remplacement de nombreux trigger_error par des exceptions (jCoordinator, jRequest, jLocale, jTpl). * amélioration dans le traitement des erreurs : * erreur explicite quand une action ou un module est inconnu * erreur selecteur invalide: ajout du type de selecteur (bug #8772) * petite amélioration pour pouvoir mettre des fichiers de conf dans des sous-repertoire de config * jDb : * optimisation sur le driver postgresql * ajout de la prise en charge d'un numero de port dans une connexion postgresql (patch 1240 par torgan) * jDao : * petite optimisation sur jDao::create, qui peut maintenant accepter un objet selecteur * meilleure utilisation des exceptions * tests unitaires * ménage interne dans jDaoCompiler, jDaoParser et jDaoGenerator : des propriétés et méthodes inutiles ont été supprimées * FQ #2290 on peut maintenant indiquer un offset/count à jDaoBase::findBy * FQ #2614 ajout clause dans les conditions des daos * jZone : ajout d'un mécanisme de timeout facultatif sur le cache de zone * module jelix : ajout de controlleurs pour l'affichage de reponses 404 (html,xul,jsonrpc, xmlrpc, rdf) * XBL : remotetreecriterion renommé en templatecriterion, et ajout d'un nouveau xbl templatepager * Ajout d'une nouvelle classe jZipCreator, pour créer des fichiers zip * modules jxauth, jxacl, jxxulapp : travail sur l'interface XUL * jelix-scripts : un script bash "jelix" est maintenant fourni (évite de faire un "php jelix.php" * Effort sur la documentation de l'API (utilisation des tags phpdoc), et génération d'une [[http://jelix.org/reference/|documentation de références]] * jBuildTools, preprocesseur : support de #define, #undef, #include, #includephp * Il est décidé que Jelix prend en charge mysql >4.0 et Postgresql >8.0 ==== Corrections ==== * vérification de l'existance du fichier de conf n'était pas bien faite * operateur in/notin dans les daos : accepte maintenant les _ dans les noms * jDb : * correction bug sur le lastInsertId pour pgsql, qui incrementait la sequence, plutôt que de ramener simplement la valeur courante. * plus d'erreur d'interface sur jDbPDOResultSet (qui n'a en fait pas besoin d'implementer Iterator) * jZone, génération du cache : le cache n'était pas sauvé * jRequestCmdLine : correction sur l'analyse des noms d'actions en entrée (patchs 1354 et 1355) * jBuildTools, preprocesseur : "#expand mot" ne fonctionnait pas * fix bug #8336 : jtpl, impossible d'utiliser des chaînes dans la balise foreach * jDao : * quand la propriété est autoincrement dans un dao, le code généré pour pgsql ne fait plus rien et n'incremente plus la sequence (cela est censé être fait par la valeur par defaut dans le schema). * fix bug #7974: notice fieldjoin lors de la génération des DAO * parser dao : ajout verification que le parametre dans l'attribut way de orderitem existe bien * fix Bug #8701 dao : la condition logic=or non prise en compte dans certains cas * fix bug dao : oublie de parenthèses dans certains cas dans les conditions * dao : attribut distinct sur une methode select ne doit plus valoir que true ou false * fix bug #8782 : dans un order by, la table n'était pas précisé * module auth : petite coquille dans le controlleur login.classic.php * fix bug #8541 : (régression) Erreur de syntaxe dans createapp.cmd.php * Fix Bug #8771 : mauvaise prise en charge des erreurs ini dans la conf des plugins * Fix Bug #8594 : Erreur de conversion jDateTime * Fix bug sur le plugin magicquotes ===== Autres versions ===== * [[fr:changelog:1.0beta1|Version suivante : 1.0 beta1]] * [[fr:changelog:1.0alpha4|Version précédente : 1.0 alpha4]] * [[fr:changelog:|Dernières modifications]]