• Aucun résultat trouvé

CookieComponent

— Utilise Cake\Network\Request::cookie() pour lire les données de cookie, ceci facilite les tests, et permet de définir les cookies pour ControllerTestCase.

— Les Cookies chiffrés dans les versions précédentes de CakePHP utilisant la méthode cipher() sont main- tenant illisible parce que Security::cipher() a été retirée. Vous aurez besoin de re-chiffrer les cookies avec la méthode rijndael() ou aes() avant mise à jour.

— CookieComponent::type() a été retirée et remplacée par la donnée de configuration accessible avec config().

— write() ne prend plus de paramètres encryption ou expires. Ces deux-là sont maintenant gérés avec des données de config. ConsultezCookieComponentpour plus d’informations.

— Le chemin pour les cookies sont maintenant par défaut le chemin de l’app plutôt que « / ».

AuthComponent

— Default est maintenant le hasher de mot de passe par défaut utilisé par les classes d’authentification. Si vous voulez continuer à utiliser le hashage SHA1 utilisé dans 2.x utilisez 'passwordHasher' => 'Weak' dans votre configuration d’authenticator.

— Un nouveau FallbackPasswordHasher a été ajouté pour aider les utilisateurs à migrer des vieux mots de passe d’un algorithm à un autre. Consultez la documentation d’AuthComponent pour plus d’informations. — La classe BlowfishAuthenticate a été retirée. Utilisez juste FormAuthenticate.

— La classe BlowfishPasswordHasher a été retirée. Utilisez DefaultPasswordHasher à la place. — La méthode loggedIn() a été retirée. Utilisez user() à la place.

— Les options de configuration ne sont plus définies en propriété public.

— Les méthodes allow() et deny() n’acceptent plus « var args ». Tous les noms de méthode ont besoin d’être passés en premier argument, soit en chaîne, soit en tableau de chaînes.

— La méthode login() a été retirée et remplacée par setUser(). Pour connecter un utilisateur, vous devez maintenant appeler identify() qui retourne les informations d’utilisateur en cas de succès d’identification

et utilise ensuite setUser() pour sauvegarder les informations de session pour la persistance au cours des différentes requêtes.

— BaseAuthenticate::_password() a été retirée. Utilisez PasswordHasher à la place. — BaseAuthenticate::logout() a été retirée.

— AuthComponent lance maintenant deux événements‘‘Auth.afterIdentify‘‘ et Auth.logout respective- ment après qu’un utilisateur a été identifié et avant qu’un utilisateur ne soit déconnecté. Vous pouvez défi- nir une fonction de callback pour ces événements en retournant un tableau de mapping depuis la méthode implementedEvents()de votre classe d’authentification.

Les classes liées à ACL ont été déplacées dans un plugin séparé. Les hashers de mot de passe, l’Authentification et les fournisseurs d’Authorisation ont été déplacés vers le namespace \Cake\Auth. Vous devez aussi déplacer vos providers et les hashers dans le namespace App\Auth.

RequestHandlerComponent

— Les méthodes suivantes ont été retirées du component RequestHandler : : isAjax(), isFlash(), isSSL(), isPut(), isPost(), isGet(), isDelete(). Utilisez la méthode Cake\Network\Request::is()à la place avec l’argument pertinent.

— RequestHandler::setContent() a été retirée, utilisez Cake\Network\Response::type() à la place.

— RequestHandler::getReferer() a été retirée, utilisez Cake\Network\Request::referer() à la place.

— RequestHandler::getClientIP() a été retirée, utilisez Cake\Network\Request::clientIp() à la place.

— RequestHandler::mapType() a été retirée, utilisez Cake\Network\Response::mapType() à la place.

— Les options de configuration ne sont plus définies en propriété public.

SecurityComponent

— Les méthodes suivantes et leurs propriétés liées ont été retirées du component Secu- rity : requirePost(), requireGet(), requirePut(), requireDelete(). Utilisez Cake\Network\Request::onlyAllow()à la place.

— SecurityComponent::$disabledFields() a été retirée, utilisez

SecurityComponent::$unlockedFields().

— Les fonctionnalités liées au CSRF dans SecurityComponent ont été extraites et déplacées dans un CsrfCom- ponent séparé. Ceci vous permet d’utiliser une protection CSRF sans avoir à utiliser la prévention de falsifica- tion de formulaire.

— Les options de Configuration ne sont plus définies comme des propriétés publiques.

— Les méthodes requireAuth() et requireSecure() n’acceptent plus « var args ». Tous les noms de méthode ont besoin d’être passés en premier argument, soit en chaîne, soit en tableau de chaînes.

SessionComponent

— SessionComponent::setFlash() est déprécié. Vous devez utiliserFlashComponentà la place.

Error

Les ExceptionRenderers personnalisées doivent maintenant soit retourner un objet Cake\\Network\\Response, soit une chaîne de caractère lors du rendu des erreurs. Cela signifie que toutes les méthodes gérant des exceptions spécifiques doivent retourner une réponse ou une valeur.

Model

La couche Model de 2.x a été entièrement réécrite et remplacée. Vous devriez regarder le Guide de Migration du Nouvel ORMpour plus d’informations sur la façon d’utiliser le nouvel ORM.

— La classe Model a été retirée.

— La classe BehaviorCollection a été retirée. — La classe DboSource a été retirée.

— La classe Datasource a été retirée.

— Les différentes sources de données des classes ont été retirées.

ConnectionManager

— ConnectionManager a été déplacée dans le namespace Cake\\Datasource. — ConnectionManager a eu les méthodes suivantes retirées :

— sourceList — getSourceName — loadDataSource

— enumConnectionObjects

— Database\ConnectionManager::config() a été ajoutée et est maintenant la seule façon de confi- gurer les connections.

— Database\ConnectionManager::get() a été ajoutée. Elle remplace getDataSource().

— Database\ConnectionManager::configured() a été ajoutée. Celle-ci avec config() remplace sourceList()& enumConnectionObjects() avec une API plus standard et cohérente.

— ConnectionManager::create() a été retirée. Il peut être remplacé par config($name, $config)et get($name).

Behaviors

— Les méthodes préfixées avec underscore des behaviors comme _someMethod() ne sont plus considérées comme des méthodes privées. Utilisez les bons mots clés à la place.

TreeBehavior

TreeBehavior a été complètement réécrit pour utiliser le nouvel ORM. Bien qu’il fonctionne de la même manière que dans 2.x, certaines méthodes ont été renommées ou retirées :

— TreeBehavior::children() est maintenant un finder personnalisé find('children').

— TreeBehavior::generateTreeList() est maintenant un finder personnalisé find('treeList').

— TreeBehavior::getParentNode() a été retirée.

— TreeBehavior::getPath() est maintenant un finder personnalisé find('path'). — TreeBehavior::reorder() a été retirée.

— TreeBehavior::verify() a été retirée.

TestSuite

TestCase

— _normalizePath() a été ajoutée pour permettre aux tests de comparaison de chemin de se lancer pour tous les systèmes d’exploitation selon la configuration de leur DS (\ dans Windows vs / dans UNIX, par exemple).

Les méthodes d’assertion suivantes ont été retirées puisque cela faisait longtemps qu’elles étaient dépréciées et rem- placées par leurs nouvelles homologues de PHPUnit :

— assertEqual() en faveur de assertEquals()

— assertNotEqual() en faveur de assertNotEquals() — assertIdentical() en faveur de assertSame()

— assertNotIdentical() en faveur de assertNotSame() — assertPattern() en faveur de assertRegExp()

— assertNoPattern() en faveur de assertNotRegExp() — assertReference() if favor of assertSame()

— assertIsA() en faveur de assertInstanceOf()

Notez que l’ordre des paramètres de certaines méthodes a été changé, par ex : assertEqual($is, $expected) devra maintenant être assertEquals($expected, $is).

Les méthodes d’assertion suivantes ont été dépréciées et seront retirées dans le futur : — assertWithinMargin() en faveur de assertWithinRange() — assertTags() en faveur de assertHtml()

Les deux méthodes de remplacement changent aussi l’ordre des arguments pour avoir une méthode d’API assert cohérente avec $expected en premier argument.

Les méthodes d’assertion suivantes ont été ajoutées :

— assertNotWithinRange() comme contrepartie de assertWithinRange()

View