2.3 Guide de Migration
CakePHP 2.3 est une mise à jour de l’API complètement compatible à partir de
2.2. Cette page souligne les changements et les améliorations faits dans 2.3.
Constantes
Une application peut maintenant facilement définir CACHE
et
LOGS
, puisqu’ils sont maintenant définis de façon conditionnelle
par CakePHP.
Mise en Cache
FileEngine est toujours le moteur de cache par défaut. Dans le passé, un
certain nombre de personnes a des difficultés configurant et déployant
APC correctement des deux façons en CLI et web. L’utilisation des
fichiers devrait rendre la configuration de CakePHP plus simple pour
les nouveaux développeurs.
Configure::write(“Cache.viewPrefix”, “YOURPREFIX”); a été ajoutée à
core.php pour autoriser les domaines/languages multiples par configuration.
AuthComponent
Une nouvelle propriété AuthComponent::$unauthorizedRedirect
a été ajoutée.
Par défaut la valeur est à true
et l’user est redirigé à l’URL de
référence lors des échecs d’authorisation.
Si défini à une chaîne ou un tableau, l’user est redirigé à l’URL.
Si défini à false, une exception ForbiddenException est lancée à la place
de la redirection.
Un nouvel adaptateur d’authenticate a été ajouté pour le support de hash
blowfish/bcrypt hashed des mots de passe. Vous pouvez maintenant utiliser
Blowfish
dans votre tableau $authenticate
pour permettre aux mots
de passe bcrypt d’être utilisés.
AuthComponent::redirect()
a été dépréciée.
Utilisez AuthComponent::redirectUrl()
à la place.
PaginatorComponent
PaginatorComponent supporte maintenant l’option findType
. Ceci peut être
utilisé pour spécifier quelle méthode find vous voulez utiliser pour la
pagination. C’est un peu plus facile de manager et de définir que l’index
0ième.
PaginatorComponent lance maintenant NotFoundException quand vous essayez
d’accéder à une page qui n’est pas correct (par ex la page requêtée est
supérieure au total du compte de page).
CookieComponent
Console
Le shell server
a été ajouté. Vous pouvez utiliser cela pour commencer
le serveur web PHP5.4 pour votre application CakePHP.
Construire un nouveau projet avec bake définit maintenant le préfixe de
cache de l’application avec le nom de l’application.
L10n
nld
est maintenant la locale par défaut pour Dutch comme spécifié par
ISO 639-3 et dut
pour ses alias. Les dossiers locale ont été ajustés
pour cela (from /Locale/dut/ to /Locale/nld/).
Albanian est maintenant sqi
, le Basque est maintenant eus
, le
Chinese est maintentant zho
, Tibetan est maintenant bod
, Czech est
maintenant ces
, Farsi est maitenant fas
, French est maitenant
fra
, Icelandic est maitenant isl
, Macedonian est maitenant mkd
,
Malaysian est maitenant msa
, Romanian est maitenant ron
, Serbian est
maitenant srp
et le Slovak est maitenant slk
. Les dossiers locale
correspondant ont été aussi ajustés.
CakePlugin
CakePlugin::load()
peut maintenant prendre une nouvelle option
ignoreMissing
. Le configurer à true va empêcher les erreurs d’inclusion
du fichier quand vous essayez de charger les routes ou le bootstrap, mais
qu’ils n’existent pas pour un plugin.
Alors essentiellement, vous pouvez maintenant utiliser la déclaration
suivante qui va charger tous les plugins et leurs routes et bootstrap
quelque soit le plugin trouvé::
CakePlugin::loadAll(array(array('routes' => true, 'bootstrap' => true, 'ignoreMissing' => true)))
Exceptions
CakeBaseException a été ajouté, auquel toutes les Exceptions du coeur
étendent. La classe d’Exception de base introduit aussi la méthode
responseHeader()
qui peut être appelée sur les instances d’Exception
créées pour ajouter les headers à la réponse, puisque les Exceptions
ne réutilisent pas toute instance de réponse.
Model
Le support pour le type biginteger a été ajouté pour toutes les sources de
données du coeur, et les fixtures.
Support pour les indices FULLTEXT
a été ajouté pour le driver MySQL.
Models
Model::find('list')
définit maintenant recursive
basé sur le
containment depth max ou la valeur récursive. Quand la liste est utilisée
avec ContainableBehavior.
Model::find('first')
va maintenant retourner un tableau vide quand aucun
enregistrement n’est trouvé.
CakeResponse
CakeResponse::file()
a été ajoutée.
Les types de contenu application/javascript, application/xml,
application/rss+xml envoient maitntenant aussi le charset de l’application.
HttpSocket
HttpSocket
vérifie maintenant les certificats SSL par défaut. Si
vous utilisez les certificats signés-soi-même ou si vous vous connectez à
travers des proxies, vous avez besoin d’utiliser quelques unes des options
pour augmenter ce comportement. Regardez Gérer les certificats SSL
pour plus d’informations.
HttpResponse
a été renommée en HttpSocketResponse
. Ceci évite
un problème commun avec l’extension HTTP PECL. Il y a une classe
HttpResponse
fournie ainsi que pour des raisons de compatibilité.
Router
View
MediaView est déprécié, et vous pouvez maintenant utiliser les nouvelles
fonctionnalités dans CakeResponse
pour atteindre les mêmes
résultats.
La Serialization dans les vues Json et Xml ont été déplacés vers
_serialize()
.
Les callbacks beforeRender et afterRender sont maintenant appelés dans
les vues Json et Xml quand on utilise les templates de vue.
View::fetch()
a maintenant un agument $default
. Cet
argument peut être utilisé pour fournir une valeur par défaut si
un block doit être vide.
View::prepend()
a été ajouté pour permettre de mettre du contenu
avant le block existant.
XmlView
utilise maintenant la variable de vue _rootNode
pour
personnaliser le noeid XML de haut niveau.
View::elementExists()
a été ajoutée. Vous pouvez utiliser cette
méthode pour vérifier si les elements existe avant de les utiliser.
View::element()
a une nouvelle option ignoreMissing
. Vous
pouvez utiliser ceci pour supprimer les erreurs attrapées quand il manque
des elements de vue.
View::startIfEmpty()
a été ajoutée.
PaginatorHelper
PaginatorHelper::numbers()
a maintenant une nouvelle option
currentTag
pour permettre de specifier une balise supplémentaire pour
entourer le nombre de page courant.
Pour les méthodes: PaginatorHelper::prev()
et
PaginatorHelper::next()
, il est aussi maintenant possible de
définir l’option tag
à false
pour désactiver le wrapper.
Aussi une nouvelle option disabledTag a été ajoutée pour ces deux nouvelles
méthodes.
Testing
Une fixture du coeur par défaut pour la table cake_sessions
a été
ajoutée. Vous pouvez l’utiliser en ajoutant core.cake_sessions
à
votre liste de fixture.
CakeTestCase::getMockForModel()
a été ajoutée. Ceci simplifie
l’obtention des objets mock pour les models.