From 0eb6f6352c84d98f10c3fabc08904373f1da8545 Mon Sep 17 00:00:00 2001 From: Yves P Date: Tue, 4 Jul 2017 22:21:19 +0200 Subject: [PATCH 01/11] [fr] Follows #4801 --- en/core-libraries/validation.rst | 3 ++- fr/core-libraries/validation.rst | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/en/core-libraries/validation.rst b/en/core-libraries/validation.rst index 153a070998..80abf76f69 100644 --- a/en/core-libraries/validation.rst +++ b/en/core-libraries/validation.rst @@ -203,7 +203,8 @@ in the future, you can use the ``addDefaultProvider()`` method as follows:: .. note:: DefaultProviders must be added before the ``Validator`` object is created - therefore **config/bootstrap.php** is the best place + therefore **config/bootstrap.php** is the best place to set up your + default providers. .. versionadded:: 3.5.0 diff --git a/fr/core-libraries/validation.rst b/fr/core-libraries/validation.rst index a8e0b1709d..9945991c1b 100644 --- a/fr/core-libraries/validation.rst +++ b/fr/core-libraries/validation.rst @@ -202,6 +202,25 @@ dans votre règle:: 'provider' => 'table' ]); +Si vous souhaitez ajouter un ``provider`` à tous les objets ``Validator`` créés +plus tard, vous pouvez utiliser la méthode ``addDefaultProvider()``:: + + use Cake\Validation\Validator; + + // En utilisant une instance d'objet. + Validator::addDefaultProvider('custom', $myObject); + + // En utilisant un nom de classe. Les méthodes devront être static. + Validator::addDefaultProvider('custom', 'App\Model\Validation'); + +.. note:: + + Les DefaultProviders doivent être ajoutés avant que l'objet ``Validator`` ne + soit créé. Par conséquent **config/bootstrap.php** est le meilleur endroit + pour définir vos providers par défaut. + +.. versionadded:: 3.5.0 + Vous pouvez utiliser le `plugin Localized `_ pour fournir des providers basés sur les pays. Avec ce plugin, vous pourrez valider les champs de models selon un pays, par exemple:: From 72cbf3c2c304113d6b7c417b8a958f8414581312 Mon Sep 17 00:00:00 2001 From: Yves P Date: Tue, 4 Jul 2017 22:24:00 +0200 Subject: [PATCH 02/11] [fr] Follows #4831 --- fr/orm/database-basics.rst | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/fr/orm/database-basics.rst b/fr/orm/database-basics.rst index 4a452b8aa8..b0df5958c2 100644 --- a/fr/orm/database-basics.rst +++ b/fr/orm/database-basics.rst @@ -346,6 +346,11 @@ uuid integer Correspond au type INTEGER fourni par la base de données. BIT n'est pour l'instant pas supporté. +smallinteger + Correspond au type SMALLINT fourni par la base de données. +tinyinteger + Correspond au type TINYINT (ou SMALLINT) fourni par la base de données. Sur MySQL + ``TINYINT(1)`` sera traité comme un booléen. biginteger Correspond au type BIGINT fourni par la base de données. float @@ -390,6 +395,12 @@ en 'datetime' va automatiquement convertir les paramètres d'input d'instances colonnes 'binary' vont accepter un fichier qui gère, et génère le fichier lors de la lecture des données. +.. versionchanged:: 3.3.0 + Le type ``json`` a été ajouté. + +.. versionchanged:: 3.5.0 + Les types ``smallinteger`` et ``tinyinteger`` ont été ajoutés. + .. _adding-custom-database-types: Ajouter des Types Personnalisés From 215b757d2391d04f1a90049c8765ec7fddbf2f5f Mon Sep 17 00:00:00 2001 From: Yves P Date: Tue, 4 Jul 2017 22:27:17 +0200 Subject: [PATCH 03/11] [fr] Follows #4904 --- fr/development/routing.rst | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/fr/development/routing.rst b/fr/development/routing.rst index a4373fc9bf..8d78d43d13 100644 --- a/fr/development/routing.rst +++ b/fr/development/routing.rst @@ -966,7 +966,7 @@ Vous pouvez spécifier un type d'inflection alternatif en utilisant l'option ]); }) -Ce qui est au-dessus va générer des URLs de style **/blog-posts/***. +Ce qui est au-dessus va générer des URLs de style **/blog-posts***. .. note:: @@ -975,6 +975,20 @@ Ce qui est au-dessus va générer des URLs de style **/blog-posts/***. ``'inflect' => 'dasherize'`` pour connecter les routes resssource afin de garder la cohérence de l'URL. +Changer le chemin d'un élément +------------------------------ + +Par défaut, les ressources de routes utilisent le nom de ressource ayant subi +une inflexion en guise de segment d'URL. Vous pouvez définir un segment d'URL +personnalisé à l'aide de l'option ``path``:: + + Router::scope('/', function ($routes) { + $routes->resources('BlogPosts', ['path' => 'posts']); + }); + +.. versionadded:: 3.5.0 + L'option ``path`` a été ajoutée dans 3.5.0. + .. index:: passed arguments .. _passed-arguments: From 8c93055bcd5fe24517e0dae5d7ab882c185916dc Mon Sep 17 00:00:00 2001 From: Yves P Date: Tue, 4 Jul 2017 22:29:41 +0200 Subject: [PATCH 04/11] [fr] Follows #4927 --- en/console-and-shells.rst | 2 -- fr/console-and-shells.rst | 5 +++++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/en/console-and-shells.rst b/en/console-and-shells.rst index 2ca288a86f..1087a2cc00 100644 --- a/en/console-and-shells.rst +++ b/en/console-and-shells.rst @@ -1060,12 +1060,10 @@ When defining a subcommand you can use the following options: Adding subcommands can be done as part of a fluent method chain. - .. versionchanged:: 3.5.0 When adding multi-word subcommands you can now invoke those commands using ``snake_case`` in addition to the camelBacked form. - Building a ConsoleOptionParser from an Array -------------------------------------------- diff --git a/fr/console-and-shells.rst b/fr/console-and-shells.rst index fe6638e329..61d3889ad0 100644 --- a/fr/console-and-shells.rst +++ b/fr/console-and-shells.rst @@ -1092,6 +1092,11 @@ suivantes: Ajouter des sous-commandes peut être fait comme une partie de la chaîne de méthode courante. +.. versionchanged:: 3.5.0 + Lorsque vous ajouter des sous-commandes composées de plusieurs mots, vous + pouvez maintenant les appeler en ``snake_case`` en plus de la forme en + camelBack. + Construire un ConsoleOptionParser à partir d'un Tableau ------------------------------------------------------- From 1e6cfa891826b67d11be96713a350360b14cb601 Mon Sep 17 00:00:00 2001 From: Yves P Date: Tue, 4 Jul 2017 22:35:58 +0200 Subject: [PATCH 05/11] [fr] Follows #4948 --- fr/views/helpers/paginator.rst | 42 ++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/fr/views/helpers/paginator.rst b/fr/views/helpers/paginator.rst index 80f46c2d06..87ca2f4797 100644 --- a/fr/views/helpers/paginator.rst +++ b/fr/views/helpers/paginator.rst @@ -421,6 +421,38 @@ supportées sont: :php:meth:`PaginatorHelper::defaultModel()`. Ceci est utilisé en conjonction avec la chaîne personnalisée de l'option 'format'. +Générer des Url de Pagination +============================= + +.. php:method:: generateUrl(array $options = [], $model = null, $full = false) + +Retourne par défaut une chaine de l'URL de pagination complète pour utiliser +dans contexte non-standard (ex. JavaScript):: + + echo $this->Paginator->generateUrl(['sort' => 'title']); + +Créer un Select de Limite +========================= + +.. php:method:: limitControl(array $limits = [], $default = null, array $options = []) + +Créer un ``select`` qui permet de changer le paramètre ``limit`` de la query:: + + // Utilise le défaut. + echo $this->Paginator->limitControl(); + + // Permet de définir les limites que vous souhaitez. + echo $this->Paginator->limitControl([25 => 25, 50 => 50]); + + // Limites personnalisées et set l'option sélectionnée + echo $this->Paginator->limitControl([25 => 25, 50 => 50], $user->perPage); + +Cela générera un ``form`` qui sera automatiquement soumis lors d'un changement +de valeur sur le ``select``. + +.. versionadded:: 3.5.0 + La méthode ``limitControl()`` a été ajoutée dans 3.5.0 + Configurer les Options de Pagination ==================================== @@ -533,16 +565,6 @@ utilisant des marqueurs spéciaux:: {{count}} total, starting on record {{start}}, ending on {{end}}' ]) ?> -Générer des Url de Pagination -============================= - -.. php:method:: generateUrl(array $options = [], $model = null, $full = false) - -Retourne par défaut une chaine de l'URL de pagination complète pour utiliser -dans contexte non-standard(ex. JavaScript):: - - echo $this->Paginator->generateUrl(['sort' => 'title']); - .. _paginator-helper-multiple: Paginer Plusieurs Résultats From 26ab349f36aa9c12bea2b8b3db4823ed83d6ff4b Mon Sep 17 00:00:00 2001 From: Yves P Date: Tue, 4 Jul 2017 22:36:56 +0200 Subject: [PATCH 06/11] [fr] Follows #4951 --- fr/views/helpers/rss.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fr/views/helpers/rss.rst b/fr/views/helpers/rss.rst index 8fa874102a..29f27deffc 100644 --- a/fr/views/helpers/rss.rst +++ b/fr/views/helpers/rss.rst @@ -8,6 +8,9 @@ Rss Le RssHelper permet de générer facilement le XML pour les `flux RSS `_. +.. deprecated:: 3.5.0 + Le RssHelper est déprécié à partir de 3.5.0 et sera supprimé dans 4.0.0 + Créer un flux RSS avec RssHelper ================================ From f6b6c89b0e073d5adcf7ffc4baf817d5bfc62950 Mon Sep 17 00:00:00 2001 From: Yves P Date: Tue, 4 Jul 2017 22:40:31 +0200 Subject: [PATCH 07/11] [fr] Follows #4999 --- en/console-and-shells.rst | 4 ++-- fr/console-and-shells.rst | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/en/console-and-shells.rst b/en/console-and-shells.rst index 1087a2cc00..1f0e573611 100644 --- a/en/console-and-shells.rst +++ b/en/console-and-shells.rst @@ -788,8 +788,8 @@ This will change the usage output to ``my-shell`` instead of the default ``cake` Usage: my-shell console [-h] [-v] [-q] -.. versionadded:: 3.5 - The help alias was added in 3.5. +.. versionadded:: 3.5.0 + The ``setHelpAlias`` method was added in 3.5.0 Set the Epilog -------------- diff --git a/fr/console-and-shells.rst b/fr/console-and-shells.rst index 61d3889ad0..619ae84ac7 100644 --- a/fr/console-and-shells.rst +++ b/fr/console-and-shells.rst @@ -811,6 +811,25 @@ suivante:: --verbose, -v Enable verbose output. --quiet, -q Enable quiet output. +Set a help alias +~~~~~~~~~~~~~~~~ + +.. php:method:: setHelpAlias($alias) + +Si vous souhaitez changer le nom de la commande, vous pouvez utiliser la méthode +``setHelpAlias()``:: + + $parser->setHelpAlias('my-shell'); + +Cela changera la phrase de 'Usage' pour ``my-shell`` à la place de la valeur par +défaut ``cake``:: + + Usage: + my-shell console [-h] [-v] [-q] + +.. versionadded:: 3.5.0 + La méthode ``setHelpAlias`` a été ajoutée dans 3.5.0 + Définir un "Epilog" ~~~~~~~~~~~~~~~~~~~ From 8a801c1cd3a89180e60ed4e0a73ecbac50cf3dfb Mon Sep 17 00:00:00 2001 From: Yves P Date: Tue, 4 Jul 2017 22:41:31 +0200 Subject: [PATCH 08/11] [fr] Follows #5003 --- fr/orm/validation.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fr/orm/validation.rst b/fr/orm/validation.rst index e554f5d046..de341b3fbd 100644 --- a/fr/orm/validation.rst +++ b/fr/orm/validation.rst @@ -265,6 +265,9 @@ table, vous pouvez récupérer l'objet résultant via son nom:: $hardenedValidator = $usersTable->validator('hardened'); +.. deprecated:: 3.5.0 + ``validator()`` est dépréciée. Utilisez ``getValidator()`` à la place. + Classe Validator par Défault ============================ From ea47595e7783685101c24bdca2e5a69ff4f4b9bc Mon Sep 17 00:00:00 2001 From: Yves P Date: Tue, 4 Jul 2017 22:48:37 +0200 Subject: [PATCH 09/11] [fr] Follows #5040 --- en/views/cells.rst | 2 +- fr/views/cells.rst | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/en/views/cells.rst b/en/views/cells.rst index c90b8ba5ae..31db67f733 100644 --- a/en/views/cells.rst +++ b/en/views/cells.rst @@ -244,7 +244,7 @@ messages could look like:: } } -The above cell would paginate the ``Messages`` model using :ref:`scoped +The above cell would paginate the ``Messages`` model using :ref:`scoped pagination parameters `. .. versionadded:: 3.5.0 diff --git a/fr/views/cells.rst b/fr/views/cells.rst index d805da0f85..6c62e83d48 100644 --- a/fr/views/cells.rst +++ b/fr/views/cells.rst @@ -216,3 +216,46 @@ template seront utilisés. ces nouveaux objets ne partagent pas de contexte avec le template /layout principal. Chaque cell est auto-contenu et a seulement accès aux variables passés en arguments par l'appel de ``View::cell()``. + +Paginer des Données dans une Cell +================================= + +Créer une cell qui qui rend des résultats paginés peut être fait en utilisant +la classe ``Paginator`` de l'ORM. Voici un exemple de pagination des messages +favoris d'un utilisateur:: + + namespace App\View\Cell; + + use Cake\View\Cell; + use Cake\Datasource\Paginator; + + class FavoritesCell extends Cell + { + public function display($user) + { + $this->loadModel('Messages'); + + // Création du paginator + $paginator = new Paginator(); + + // Pagination du model + $results = $paginator->paginate( + $this->Messages, + $this->request->getQueryParams(), + [ + // Utilisation d'un finder personnalisé avec paramètre + 'finder' => ['favorites' => [$user]], + + // Utilisation de paramètre de query 'scoped'. + 'scope' => 'favorites', + ] + ); + $this->set('favorites', $results); + } + } + +La cell ci-dessus va paginer le model ``Messages`` en utilisant les +:ref:`paramètres de pagination 'scopés' `. + +.. versionadded:: 3.5.0 + ``Cake\Datasource\Paginator`` a été ajoutée dans 3.5.0. \ No newline at end of file From d940ee62bfd0db5739166fd35edb94ef688aed38 Mon Sep 17 00:00:00 2001 From: Yves P Date: Tue, 4 Jul 2017 22:54:30 +0200 Subject: [PATCH 10/11] [fr] Follows #5060 --- fr/development/testing.rst | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/fr/development/testing.rst b/fr/development/testing.rst index fd7186e3da..5ea721660e 100755 --- a/fr/development/testing.rst +++ b/fr/development/testing.rst @@ -968,11 +968,13 @@ assertions qu'intègre ``IntegrationTestCase``. Avant de pouvoir utiliser les assertions, vous aurez besoin de simuler une requête. Vous pouvez utiliser l'une des méthodes suivantes pour simuler une requête: -* ``get()`` Sends a GET request. -* ``post()`` Sends a POST request. -* ``put()`` Sends a PUT request. -* ``delete()`` Sends a DELETE request. -* ``patch()`` Sends a PATCH request. +* ``get()`` Envoie une requête GET. +* ``post()`` Envoie une requête POST. +* ``put()`` Envoie une requête PUT. +* ``delete()`` Envoie une requête DELETE. +* ``patch()`` Envoie une requête PATCH. +* ``options()`` Envoie une requête OPTIONS. +* ``head()`` Envoie une requête HEAD. Toutes les méthodes exceptées ``get()`` et ``delete()`` acceptent un second paramètre qui vous permet de saisir le corps d'une requête. Après avoir émis @@ -980,6 +982,9 @@ une requête, vous pouvez utiliser les différentes assertions que fournit ``IntegrationTestCase`` ou PHPUnit afin de vous assurer que votre requête possède de correctes effets secondaires. +.. versionadded:: 3.5.0 + ``options()`` et ``head()`` ont été ajoutées dans 3.5.0. + Configurer la Requête --------------------- @@ -1238,6 +1243,26 @@ et assurons-nous que le web service répond correctement:: Nous utilisons l'option ``JSON_PRETTY_PRINT`` car la JsonView intégrée à CakePHP utilise cette option quand le mode ``debug`` est activé. +Désactiver le Middleware de Gestion d'Erreurs dans les Tests +------------------------------------------------------------ + +Quand vous debugger des tests qui échouent car l'application a rencontré des +erreurs, il peut être utile de désactiver temporairement le middleware de gestion +des erreurs pour permettre aux erreurs de remonter. Vous pouvez utiliser la méthode +``disableErrorHandlerMiddleware()`` pour permettre ce comportement:: + + public function testGetMissing() + { + $this->disableErrorHandlerMiddleware(); + $this->get('/markers/not-there'); + $this->assertResponseCode(404); + } + +Dans l'exemple ci-dessus, le test échouera et le message d'exception et le stack-trace +seront affichés à la place de la page d'erreur de l'application. + +.. versionadded:: 3.5.0 + Méthodes d'Assertion -------------------- From 7b922cbb21fb20b9a5c4319b0cacb878d7376aad Mon Sep 17 00:00:00 2001 From: Yves P Date: Wed, 5 Jul 2017 09:00:13 +0200 Subject: [PATCH 11/11] [fr] Fixes after review --- fr/development/testing.rst | 2 +- fr/views/helpers/paginator.rst | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/fr/development/testing.rst b/fr/development/testing.rst index 5ea721660e..27ceff5e6d 100755 --- a/fr/development/testing.rst +++ b/fr/development/testing.rst @@ -1246,7 +1246,7 @@ utilise cette option quand le mode ``debug`` est activé. Désactiver le Middleware de Gestion d'Erreurs dans les Tests ------------------------------------------------------------ -Quand vous debugger des tests qui échouent car l'application a rencontré des +Quand vous debuggez des tests qui échouent car l'application a rencontré des erreurs, il peut être utile de désactiver temporairement le middleware de gestion des erreurs pour permettre aux erreurs de remonter. Vous pouvez utiliser la méthode ``disableErrorHandlerMiddleware()`` pour permettre ce comportement:: diff --git a/fr/views/helpers/paginator.rst b/fr/views/helpers/paginator.rst index 87ca2f4797..9cf8c18254 100644 --- a/fr/views/helpers/paginator.rst +++ b/fr/views/helpers/paginator.rst @@ -431,8 +431,8 @@ dans contexte non-standard (ex. JavaScript):: echo $this->Paginator->generateUrl(['sort' => 'title']); -Créer un Select de Limite -========================= +Créer une Liste Déroulante de Limites +===================================== .. php:method:: limitControl(array $limits = [], $default = null, array $options = [])