forked from jelix/jelix-manuel-fr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnouveautes.gtw
198 lines (168 loc) · 12.1 KB
/
nouveautes.gtw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
~~LANG:EN@enman:new-features~~
===== Nouveautés apportées par la version 1.7 =====
==== Fonctionnement général ====
* Jelix 1.7 nécessite dorénavant PHP 5.6 minimum.
* Intégration avec Composer :
* La bibliothèque Jelix [[https://packagist.org/packages/jelix/jelix|est maintenant installable]] avec Composer
* Des modules et plugins ont été externalisés et disponibles séparément via
Composer. Certains restent toutefois inclus dans le paquet standard de
Jelix.
* Un projet basé sur Jelix peut-être crée avec le paquet
[[https://packagist.org/packages/jelix/jelix-skeleton-app|jelix/jelix-skeleton-app]]
installable via Composer
* Les paramètres de configuration @@modulesPath@@ et @@pluginsPath@@ ne sont
plus pris en charge, et remplacés par une nouvelle API à appeler dans le
fichier @@application.init.php@@ : @@jApp::declareModulesDir()@@,
@@jApp::declarePluginsDir()@@, @@jApp::declareModuleDir()@@. Il est aussi
possible de déclarer les chemins de repertoire de modules et plugins, via
le fichier composer.json de l'application et des paquets contenant des
modules.
* Dans les applications crées par createapp, le répertoire temp est maintenant
par défaut dans le répertoire de l'application
* **NODOC** Nouveau répertoire app/config dans les applications, et déplacement des fichiers
non lié à l'environnement, de var/config vers app/config : mainconfig.ini.php,
config.ini.php, urls.xml... On a ainsi d'une part les fichiers qui ne
dépendent pas de l'environnement d'execution dans app/config, et ceux qui
dépendent du serveur dans var/config (localconfig.ini.php,
profiles.ini.php...).
* **NODOC** Il est possible de mettre les overloads, themes et locales
dans le répertoire app/. Les répertoires var/overloads, var/themes et
var/locales étant dorénavant déstiné uniquement à leurs ressources
qui seraient créés dynamiquement pendant la vie de l'application.
* **NODOC** Déplacement du répertoire responses/ vers app/responses
* Refonte du moteur d'URL :
* il n'y a plus de système de plugins ('simple', 'basic_significant', 'significant' n'existent plus).
* Le nouveau moteur est en quelque sorte une fusion entre les anciens
plugins 'basic_significant' et 'significant', avec des améliorations
faciliter la configuration des urls
* **NODOC** Une API permet aux scripts d'installation de déclarer facilement les urls
(et donc de modifier urls.xml)
* Les paramètres d'url "module" et "action" ne sont plus pris en compte (mais
peuvent toujours être récupérés à partir de vos contrôleurs, même si cet
usage est obsolète)
* les paramètres @@startModule@@ et @@startAction@@ dans la configuration
du point d'entrée n'existent plus
* Les paramètres de configuration suivant de la section urlengine n'existent plus :
@@engine@@, @@defaultEntrypoint@@, @@simple_urlengine_https@@
* Les sections de configurations suivantes n'existent plus :
@@simple_urlengine_entrypoints@@, @@basic_significant_urlengine_entrypoints@@
* Dans le fichier urls.xml
* Il est possible d'indiquer un pathinfo sur un @@<url module="..">@@
* Il est obligatoire d'indiquer une action pour l'url "/", ce qui remplace
la disparition de @@startModule@@ et @@startAction@@
* Un pahtinfo absent ou vide dans un @@<url>@@ équivaut à "/"
* Une meilleure vérification des mauvaises utilisations du XML. Par exemple
une erreur est levée si il n'y a pas d'attribut "module".
* Il est possible de déclarer une url pour un contrôleur, sans avoir
à le faire pour chacune de ses méthodes
* jProfiles :
* le contenu du fichier profiles.ini.php est optimisé et stocké en cache
* jProfiles est extensible par des plugins : ceux-ci peuvent traiter les
profiles qu'ils prennent en charge avant la mise en cache du fichier
profiles.ini.php. (plugin : @@profiles/<type>/<type>.profiles.php@@
classe: @@<type>ProfilesCompiler@@).
* un plugin pour jdb est fourni, permettant à jDb de traiter plus
rapidement l'ouverture d'une connexion.
* scripts Jelix-scripts (cmd.php) : toutes les commandes d'aides à la génération
d'une application et de ses composants sont maintenant basées sur le
composant Symfony Console. Les noms et paramètres des commandes ont donc
changé.
* jForms ne stocke plus les instances dans la session mais dans un cache avec jCache.
* jLocale peut maintenant chercher une clé manquante dans une locale similaire à la locale courante
* L'installateur fait maintenant une sauvegarde du fichier installer.ini.php
* jAuth: persistant_crypt_key a été renommé en persistant_encryption_key
et utilise une fonction de création de clé plus forte.
* Les assets des modules récupérés par le contrôleur www de Jelix
sont maintenant mis en cache dans le navigateur
* jDb schema: amélioration de la prise en charge de sqlite3: ajout de colonne, creation d'index, de clé primaire
* jDao : a maintenant son propre système de plugin "daobuilder". Les classes des plugins de jDb qui lui étaient dédiés sont maintenant des plugins
* jDb : amélioration de la prise en charge des requêtes préparées
* bindValue() et bindParam() a maintenant la même signature que PDO
* sqlite3 : support des requêtes préparées
* pgsql : support des paramètres nommés pour les requêtes préparées
* mysqli : correction sur la prise en charge des requêtes préparées et support des paramètres nommés
* **NODOC** Zones : organisation du cache en sous-répertoires
* **NODOC** jCmdLineRequest : il faut maintenant donner le module et l'action
au constructeur quand le script est dédié à une action précise
* les fichiers json.js, json2.js et xul/jsonrpc.js ont été supprimé, les
navigateurs récents supportant JSON.
==== Changements dans les API ====
* nouvelle méthode @@M@jApp::version()@@
* **NODOC** nouvel objet @@C@jFramework@@ permettant d'accéder à des informations sur le
framework (version...)
* Jelix-scripts createapp: createapp.php a été déplacé dans un répertoire bin et est basé sur Symfony Console.
* Jelix-scripts createapp: nouvelle option @@--modulename@@ pour indiquer le nom du
module principal
* contrôleur CRUD : la liste des enregistrements peut être triée par colonne
* jauthdb_admin : la liste des utilisateurs peut être filtrée et triée
* jacl2db_admin : la liste des utilisateurs peut être filtrée
* **NODOC** nouvelle méthode @@M@jAppInstance::includePlugin()@@ pour charger un plugin sans l'instancier
* **NODOC** correction @@jIniFileModifier : il n'y a plus de ligne vide ajoutée à la fin du fichier à
chaque sauvegarde
* **NODOC** @@jFile::getMimeTypeFromFilename()@@ : support d'une liste de type mime
définie par le développeur, dans une section @@[mimeTypes]@@ de la
configuration.
* **NODOC** jLocale a été remanié afin d'avoir une classe pour lire un fichier properties
* **NODOC** Les classes @@jInstallerBase@@ et @@jInstallerEntryPoint@@ pour les
scripts d'installation/mise à jour, ont de nouvelles méthodes pour accéder
aux différents fichiers de configurations
* **NODOC** Correction dans jDatetime sur le format RCF822 et les timezones
* **NODOC** jDao : l'attribut "driver" sur les balises de conditions est déprécié et remplacé par un attribut "dbtype"
* jDb/mysql : correction sur le démarrage d'une transaction, pour ne plus utiliser l'ancien mot-clé SQL pour cette fonctionnalité
* **NODOC** Nouvelle méthode @@M@jCoordinator::execOriginalAction()@@ pour savoir si l'action courante est une redirection interne ou pas
* **NODOC** jApp utilise maintenant en interne une nouvelle classe jAppInstance pour faciliter le changement de contexte.
===== Les modules et plugins externalisés =====
À l'instar du module jtcpdf dans les versions précédentes, des modules et plugins ne sont
plus fournis avec Jelix, mais disponibles séparément, en tant que paquets Composer et archives
téléchargeables classiquement.
Voici la liste de ces modules et plugins :
* **NODOC** Le module jtcpdf : [[https://packagist.org/packages/jelix/tcpdf-module|jelix/tcpdf-module]].
* **NODOC** Le plugin Minify pour les réponses HTML (maintenant dans un module) : [[https://packagist.org/packages/jelix/minify-module|jelix/minify-module]].
* **NODOC** Le plugin redis pour jKVDb et jCache : [[https://packagist.org/packages/jelix/php-redis-plugin|jelix/php-redis-plugin]].
* **NODOC** Le module jsitemap : [[https://packagist.org/packages/jelix/sitemap-module|jelix/sitemap-module]], contenant
l'objet réponse pour générer un sitemap.
* **NODOC** [[https://packagist.org/packages/jelix/diff-plugin|Le plugin diff pour jTpl]]
À noter que d'autres composants, modules et plugins sont aussi maintenant chacun dans
leurs propres dépôts même si ils sont fournis avec Jelix. Il s'agit de :
* [[https://packagist.org/packages/jelix/fakeserverconf|FakeServerConf]]
* **NODOC** [[https://packagist.org/packages/jelix/soap-server-module|le module jSoap]]
* **NODOC** [[https://packagist.org/packages/jelix/feeds-module|un nouveau module jFeeds]] comportant les classes
et réponse pour générer des fils RSS et ATOM
* **NODOC** [[https://packagist.org/packages/jelix/castor|la version standalone de jTpl, Castor]]
* [[https://packagist.org/packages/jelix/inifile|IniModifier et MultiIniModifier]], classes de
modification de fichiers ini (anciennement jIniFileModifier et jIniMultiFilesModifier)
* [[https://packagist.org/packages/jelix/wikirenderer-plugin|La class jWiki et WikiRenderer]]
===== Les modules, plugins et fonctionnalités dépréciés =====
* **NODOC** @@jFile@@ repose maintenant sur le paquet Composer "jelix/file-utilities"
qui propose des méthodes supplémentaires. jFile est déprécié.
* Le module junittests et Simpletests ont été supprimé. Ils sont disponibles
séparement pour ceux qui n'auraient pas encore migré leur tests vers PHPUnit.
* idem pour les plugins mysql et sqlite : en effet, les API PHP qu'ils utilisent sont dépréciées
dans PHP. Ils sont disponibles séparément. Il est toutefois préférable d'utiliser
respectivement les plugins mysqli et sqlite3, toujours disponibles dans la
distribution standard.
* il n'y a plus les fichiers de locales en_EN. configurez plutôt votre application pour utiliser
en_US ou en_GB.
* **NODOC** le plugin memcache22 pour jCache a été supprimé
* La méthode @@jInstallerBase::declarePluginsPath()@@ a été supprimé.
* La classe jHttp est dépréciée et installable séparément, ainsi que les
quelques fichiers de la bibliothèque clearbricks qui l'accompagnait.
* les classes jIniFile, jIniFileModifier, jIniMultiFilesModifier ont changés de nom en
respectivement Jelix\IniFile\Util, Jelix\IniFile\IniModifier, Jelix\IniFile\MultiIniModifier.
Mais il est encore possible d'utiliser les anciens noms (jusqu'à la prochaine version).
* La classe @@jJson@@ a été supprimée. Utilisez les fonctions json de PHP directement.
* La classe @@jCrypt@@ a été supprimée, l'API mcrypt étant dépréciée par PHP
et n'était plus maintenue depuis longtemps. Utilisez d'autres bibliothèques
de chiffrements (le paquet defuse/php-encryption par exemple).
* Les quelques fichiers de la bibliothèque clearbricks ont été retirés
* La classe @@jVersionComparator@@ a été remplacée par la classe
Jelix\Version\VersionComparator d'un nouveau paquet "jelix/version"
* project.xml : @@<directories>@@ n'est plus pris en charge
===== Pour les contributeurs =====
* La configuration Vagrant pour les contributeurs est maintenant située dans testapp
* Il n'y a plus besoin de faire un "build" des sources de Jelix pour contribuer à Jelix
et lancer les tests.
* FakeServerConf, Minify, PHPMailer sont maintenant installés via Composer
* Dans testapp, une application "adminapp" est disponible pour tester les modules d'admin.
===== Contributeurs à Jelix 1.7 =====
* Brunto (crud controller)