From 71923175ae0705e3524d9c2c64b051313acccff7 Mon Sep 17 00:00:00 2001 From: Yves P Date: Fri, 23 Jun 2017 20:20:02 +0200 Subject: [PATCH 01/14] [fr] Follows #4994 --- en/controllers/components/security.rst | 2 +- fr/controllers/components/security.rst | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/en/controllers/components/security.rst b/en/controllers/components/security.rst index f82dd2b77d..afdd2c3a66 100644 --- a/en/controllers/components/security.rst +++ b/en/controllers/components/security.rst @@ -249,7 +249,7 @@ There may be cases where you want to disable all security checks for an action } } -Note: use ``$this->Security->config()`` for CakePHP versions prior to 3.4 +Note: use ``$this->Security->config()`` for CakePHP versions prior to 3.4.0 This example would disable all security checks for the edit action. diff --git a/fr/controllers/components/security.rst b/fr/controllers/components/security.rst index 73beee20df..4eed292679 100644 --- a/fr/controllers/components/security.rst +++ b/fr/controllers/components/security.rst @@ -62,7 +62,7 @@ mise en trou noir (blackhole callback):: public function beforeFilter(Event $event) { - $this->Security->config('blackHoleCallback', 'blackhole'); + $this->Security->setConfig('blackHoleCallback', 'blackhole'); } public function blackhole($type) @@ -70,6 +70,9 @@ mise en trou noir (blackhole callback):: // Gère les erreurs. } +Note : utilisez ``$this->Security->config()`` pour les versions de CakePHP +avant 3.4.0. + Le paramètre ``$type`` peut avoir les valeurs suivantes: * 'auth' Indique une erreur de validation de formulaire, ou une incohérence @@ -148,7 +151,8 @@ validatePost essentiellement éteindre la validation de formulaire. Les options de configuration ci-dessus peuvent être _set_ via la méthode -``config()`` +``setConfig()`` ou ``config()`` si vous utilisez une version de CakePHP avant +3.4.0. Utilisation =========== @@ -251,10 +255,13 @@ fonctionnalités de ``SecurityComponent``:: public function beforeFilter(Event $event) { - $this->Security->config('unlockedActions', ['edit']); + $this->Security->setConfig('unlockedActions', ['edit']); } } +Note : utilisez ``$this->Security->config()`` pour les versions de CakePHP +avant 3.4.0. + Cet exemple désactiverait toutes les vérifications de sécurité pour une action edit. From a02e6afc1c0a4028d7202c1ad840bc287ac324b0 Mon Sep 17 00:00:00 2001 From: Yves P Date: Fri, 23 Jun 2017 20:22:40 +0200 Subject: [PATCH 02/14] [fr] Follows #4995 --- fr/development/testing.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/fr/development/testing.rst b/fr/development/testing.rst index 9b541236e4..fd7186e3da 100755 --- a/fr/development/testing.rst +++ b/fr/development/testing.rst @@ -337,6 +337,14 @@ Cela mettra la couverture des résultats dans le répertoire webroot de votre application. Vous pourrez voir les résultats en allant à ``http://localhost/votre_app/coverage``. +Si vous utilisez PHP 5.6.0 (ou supérieur), vous pouvez utilisez `phpdbg `__ +pour générer la couverture des résultats à la place de xdebug. ``phpdbg`` est +généralement plus rapide dans la génération des rapports de couverture : + +.. code-block:: bash + + $ phpdbg -qrr phpunit --coverage-html webroot/coverage tests/TestCase/Model/Table/ArticlesTableTest + Combiner les Suites de Test pour les Plugins -------------------------------------------- From 17412f59b1510dd127b519b770e516132d539803 Mon Sep 17 00:00:00 2001 From: Yves P Date: Fri, 23 Jun 2017 23:44:24 +0200 Subject: [PATCH 03/14] [fr] Follows #5002 --- en/orm/validation.rst | 6 +++--- fr/orm/validation.rst | 8 ++++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/en/orm/validation.rst b/en/orm/validation.rst index 0cc813d222..c37e04cd0c 100644 --- a/en/orm/validation.rst +++ b/en/orm/validation.rst @@ -444,9 +444,9 @@ two rules:: .. note:: - ``validCount`` returns ``false`` if the property is not countable or does not exist. - E.g. comparing via ``<``, ``<=`` or against ``0`` will return ``false``, - if you do not supply at least an empty list of - say - subscriptions. + ``validCount`` returns ``false`` if the property is not countable or does not exist. + E.g. comparing via ``<``, ``<=`` or against ``0`` will return ``false``, + if you do not supply at least an empty list of - say - subscriptions. .. versionadded:: 3.3.0 The ``validCount()`` method was added in 3.3.0. diff --git a/fr/orm/validation.rst b/fr/orm/validation.rst index 7950564003..9c8d5cc0b3 100644 --- a/fr/orm/validation.rst +++ b/fr/orm/validation.rst @@ -458,6 +458,14 @@ règles:: // Entre 3 et 5 tags $rules->add($rules->validCount('tags', 3, '>=', 'Vous devez avoir au moins 3 tags')); $rules->add($rules->validCount('tags', 5, '<=', 'Vous devez avoir au moins 5 tags')); + $rules->add($rules->validCount('subscription', 0, '==', 'Vous pouvez ne pas avoir de subscription')); + +.. note:: + + ``validCount`` retourne ``false`` si la propriété ne peut pas être comptée + ou n'existe pas. Par exemple, comparé via ``<``, ``<=`` ou avec ``0`` + retournera ``false`` si vous ne fournissez pas au moins une liste vide + d'abonnements. .. versionadded:: 3.3.0 La méthode ``validCount()`` a été ajoutée dans la version 3.3.0. From a71fef988c518e8ee91dc7849207f1d2580364ed Mon Sep 17 00:00:00 2001 From: Yves P Date: Fri, 23 Jun 2017 23:45:45 +0200 Subject: [PATCH 04/14] [fr] Follows #5004 --- fr/orm/saving-data.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fr/orm/saving-data.rst b/fr/orm/saving-data.rst index 068815887b..c2d995b9ce 100644 --- a/fr/orm/saving-data.rst +++ b/fr/orm/saving-data.rst @@ -409,7 +409,7 @@ sauvegardée. Si vous voulez traiter toutes les entities en transaction unique, vous pouvez utiliser ``transactional()``:: // Dans un controller. - $articles->connection()->transactional(function () use ($articles, $entities) { + $articles->getConnection()->transactional(function () use ($articles, $entities) { foreach ($entities as $entity) { $articles->save($entity, ['atomic' => false]); } From 592c79bd7e164868bf5839ef7386eeff1ac5cb4f Mon Sep 17 00:00:00 2001 From: Yves P Date: Fri, 23 Jun 2017 23:50:52 +0200 Subject: [PATCH 05/14] [fr] Follows #5018 --- en/orm/query-builder.rst | 3 +-- fr/orm/query-builder.rst | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/en/orm/query-builder.rst b/en/orm/query-builder.rst index 27b3484c1f..f6268bea68 100644 --- a/en/orm/query-builder.rst +++ b/en/orm/query-builder.rst @@ -247,8 +247,7 @@ method:: $query = $articles->find() ->order(['title' => 'ASC', 'id' => 'ASC']); - -When calling ``order()`` multiple times on a query multiple clauses will be appended. +When calling ``order()`` multiple times on a query, multiple clauses will be appended. However, when using finders you may sometimes need to overwrite the ``ORDER BY``. Set the second parameter of ``order()`` (as well as ``orderAsc()`` or ``orderDesc()``) to ``Query::OVERWRITE`` or to ``true``:: diff --git a/fr/orm/query-builder.rst b/fr/orm/query-builder.rst index 24e5a765a6..444f208289 100644 --- a/fr/orm/query-builder.rst +++ b/fr/orm/query-builder.rst @@ -262,6 +262,20 @@ vous pouvez utiliser la méthode ``order``:: $query = $articles->find() ->order(['title' => 'ASC', 'id' => 'ASC']); +Lorsque vous appelez ``order()`` plusieurs fois sur une même requête, les clauses +seront ajoutées les unes après les autres. Cependant, en utilisant les finders, +vous pouvez parfois avoir besoin d'écraser le ``ORDER BY``. Pour se faire, vous +pouvez utiliser le second paramètre de ``order()`` (mais aussi de ``orderAsc()`` +ou ``orderDesc()``) et le définir à ``Query::OVERWRITE`` ou ``true``:: + + $query = $articles->find() + ->order(['title' => 'ASC']); + + // Plus loin dans le code, vous écrasez la clause ORDER BY plutôt + // qu'ajouter une autre clause à l'existante. + $query = $articles->find() + ->order(['created' => 'DESC'], Query::OVERWRITE); + .. versionadded:: 3.0.12 En plus de ``order``, les méthodes ``orderAsc`` et ``orderDesc`` peuvent From 58e7982332abd71672b296c75f0d452cd78707cf Mon Sep 17 00:00:00 2001 From: Yves P Date: Fri, 23 Jun 2017 23:51:51 +0200 Subject: [PATCH 06/14] [fr] Follows #5020 --- fr/orm/database-basics.rst | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/fr/orm/database-basics.rst b/fr/orm/database-basics.rst index 108a3be80f..4a452b8aa8 100644 --- a/fr/orm/database-basics.rst +++ b/fr/orm/database-basics.rst @@ -568,12 +568,14 @@ faire correspondre les données dans cet objet et les expressions SQL:: if ($value instanceof Point) { return new FunctionExpression( 'POINT', - $value->lat(), - $value->long() + [ + $value->lat(), + $value->long() + ] ); } if (is_array($value)) { - return new FunctionExpression('POINT', $value[0], $value[1]); + return new FunctionExpression('POINT', [$value[0], $value[1]]); } // Handle other cases. } From a27f612e71189ee907d9c0f19c787be97101aae9 Mon Sep 17 00:00:00 2001 From: Yves P Date: Fri, 23 Jun 2017 23:56:06 +0200 Subject: [PATCH 07/14] [fr] Follows #5022 --- en/orm/entities.rst | 2 +- fr/orm/entities.rst | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/en/orm/entities.rst b/en/orm/entities.rst index dd09ad54c6..abb2401474 100644 --- a/en/orm/entities.rst +++ b/en/orm/entities.rst @@ -271,7 +271,7 @@ The ``setErrors()`` or ``setError()`` method can also be used to set the errors it easier to test code that works with error messages:: $user->setError('password', ['Password is required']); - $user->setErrors(['pasword' => ['Password is required'], 'username' => ['Username is required']]); + $user->setErrors(['password' => ['Password is required'], 'username' => ['Username is required']]); // Prior to 3.4.0 $user->errors('password', ['Password is required.']); diff --git a/fr/orm/entities.rst b/fr/orm/entities.rst index f421a6bc19..1442618137 100644 --- a/fr/orm/entities.rst +++ b/fr/orm/entities.rst @@ -269,18 +269,27 @@ Erreurs de Validation Après avoir :ref:`sauvegardé une entity ` toute erreur de validation sera stockée sur l'entity elle-même. Vous pouvez accéder à toutes -les erreurs de validation en utilisant la méthode ``errors()``:: +les erreurs de validation en utilisant les méthodes ``getErrors()`` et +``getError()``:: // Récupère toutes les erreurs + $errors = $user->getErrors(); + // Avant 3.4.0 $errors = $user->errors(); // Récupère les erreurs pour un champ unique. + $errors = $user->getError('password'); + // Avant 3.4.0 $errors = $user->errors('password'); -La méthode ``errors()`` peut aussi être utilisée pour définir les erreurs sur -une entity, facilitant les tests du code qui fonctionne avec les messages -d'erreur:: +Les méthodes ``setErrors()`` et ``setError()`` peuvent aussi être utilisées +pour définir les erreurs sur une entity, facilitant les tests du code qui +fonctionne avec les messages d'erreur:: + $user->setError('password', ['Password is required.']); + $user->setErrors(['password' => ['Password is required'], 'username' => ['Username is required']]); + + // Avant 3.4.0 $user->errors('password', ['Password is required.']); .. _entities-mass-assignment: From f9b8a192589c93af9d9a35c5f0d66b000442b434 Mon Sep 17 00:00:00 2001 From: Yves P Date: Fri, 23 Jun 2017 23:57:22 +0200 Subject: [PATCH 08/14] [fr] Follows #5026 --- fr/orm/validation.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fr/orm/validation.rst b/fr/orm/validation.rst index 9c8d5cc0b3..c7fdd4fc5c 100644 --- a/fr/orm/validation.rst +++ b/fr/orm/validation.rst @@ -29,6 +29,9 @@ retournée:: // validation de l'entity a échouée. } +.. versionadded:: 3.4.0 + LA méthode ``getErrors()`` a été ajoutée. + Quand vous construisez une entity avec la validation activée, les choses suivantes vont se produire: From 7215a9228d50504f568de8df6d7cd41d81347907 Mon Sep 17 00:00:00 2001 From: Yves P Date: Fri, 23 Jun 2017 23:59:17 +0200 Subject: [PATCH 09/14] [fr] Follows #5030 --- fr/controllers/components/authentication.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fr/controllers/components/authentication.rst b/fr/controllers/components/authentication.rst index c8a42ef987..cc58b81003 100644 --- a/fr/controllers/components/authentication.rst +++ b/fr/controllers/components/authentication.rst @@ -22,6 +22,10 @@ etc.. Tout ceci est couvert étape par étape dans le :doc:`Tutorial du Blog `. +Si vous cherchez des solutions existantes pour l'authentification et / ou +l'autorisation pour CakePHP, allez jeter un oeil à la section +`Authentication and Authorization `_ de la CakePHP Awesome List. + Authentification ================ From 86243c10e46e43137c9f95c0be4f8d6b532a0536 Mon Sep 17 00:00:00 2001 From: Yves P Date: Sat, 24 Jun 2017 00:00:24 +0200 Subject: [PATCH 10/14] [fr] Follows #5039 --- fr/core-libraries/email.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/fr/core-libraries/email.rst b/fr/core-libraries/email.rst index 4ebc28213b..27cb429cf1 100644 --- a/fr/core-libraries/email.rst +++ b/fr/core-libraries/email.rst @@ -42,7 +42,11 @@ respectifs:: $email->addTo('to2@example.com', 'To2 Example'); // Les destinaitres de l'email sont: to@example.com et to2@example.com $email->to('test@example.com', 'ToTest Example'); - // Le destinaitre de l'email est: test@example.com + // Le destinataire de l'email est: test@example.com + +.. deprecated:: 3.4.0 + Utilisez ``setFrom()``, ``setTo()``, ``setCc()`` , ``setBcc()`` et + ``setSubject()`` à la place. Choisir l'émetteur ------------------ From 505b546e3fb31f8e0007a6c3e1f6ddf125628651 Mon Sep 17 00:00:00 2001 From: Yves P Date: Sat, 24 Jun 2017 00:01:21 +0200 Subject: [PATCH 11/14] [fr] Follows #5042 --- fr/orm/associations.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fr/orm/associations.rst b/fr/orm/associations.rst index 9e40d83558..847442e702 100644 --- a/fr/orm/associations.rst +++ b/fr/orm/associations.rst @@ -677,7 +677,7 @@ Regardez les models suivants:: public function initialize(array $config) { $this->belongsToMany('Courses', [ - 'through' => 'CourseMemberships', + 'through' => 'CoursesMemberships', ]); } } @@ -687,7 +687,7 @@ Regardez les models suivants:: public function initialize(array $config) { $this->belongsToMany('Students', [ - 'through' => 'CourseMemberships', + 'through' => 'CoursesMemberships', ]); } } From c94354ddda2a973acf642dc9b1fcfd5a417213fb Mon Sep 17 00:00:00 2001 From: Yves P Date: Sat, 24 Jun 2017 00:02:21 +0200 Subject: [PATCH 12/14] [fr] Follows #5047 --- fr/controllers/components/authentication.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/fr/controllers/components/authentication.rst b/fr/controllers/components/authentication.rst index cc58b81003..61d383e21d 100644 --- a/fr/controllers/components/authentication.rst +++ b/fr/controllers/components/authentication.rst @@ -599,6 +599,7 @@ envoyer des messages flash. Les clés disponibles sont - ``key`` - La clé à utiliser, 'default' par défaut. Avant 3.4.0, la clé par défaut était 'auth'. +- ``element`` - Le nom de l'élément à utiliser pour le rendu. ``null`` par défaut. - ``params`` - Le tableau des paramètres supplémentaires à utiliser, ``[]`` par défaut. From e6963f9ead61161b8c6caa9b0ea23202885a087f Mon Sep 17 00:00:00 2001 From: Yves P Date: Sat, 24 Jun 2017 00:06:47 +0200 Subject: [PATCH 13/14] [fr] Follows #5055 --- fr/intro/cakephp-folder-structure.rst | 44 ++++++++------------------- 1 file changed, 13 insertions(+), 31 deletions(-) diff --git a/fr/intro/cakephp-folder-structure.rst b/fr/intro/cakephp-folder-structure.rst index d76f7022c1..7adda7a70c 100644 --- a/fr/intro/cakephp-folder-structure.rst +++ b/fr/intro/cakephp-folder-structure.rst @@ -4,22 +4,6 @@ Structure du dossier de CakePHP Après avoir téléchargé et extrait l'application CakePHP, voici les fichiers et répertoires que vous devriez voir: -- bin -- config -- logs -- plugins -- src -- tests -- tmp -- vendor -- webroot -- .htaccess -- composer.json -- index.php -- README.md - -Vous remarquerez quelques dossiers principaux: - - Le dossier *bin* contient les exécutables de la console Cake. - Le dossier *config* contient les (quelques) fichiers de :doc:`/development/configuration` que CakePHP utilise. Les détails sur la @@ -29,24 +13,23 @@ Vous remarquerez quelques dossiers principaux: configuration par défaut des logs. - Le dossier *plugins* est l'endroit où sont stockés les :doc:`/plugins` que votre application utilise. -- Le dossier *src* sera celui où vous exercerez votre magie : c'est là - que vous placerez les fichiers de votre application. +- Le dossier *src* sera celui vous placerez les fichiers de votre application. - Le dossier *tests* est l'endroit où vous mettez les cas de test pour votre application. - Le dossier *tmp* est l'endroit où CakePHP stocke les données temporaires. Les données qu'il stocke dépendent de la façon dont vous avez configuré CakePHP - mais ce dossier est généralement utilisé pour stocker les descriptions de - model et parfois les informations de session. + mais ce dossier est généralement utilisé pour les stocker les traductions, + les descriptions de model et parfois les informations de session. - Le dossier *vendor* est l'endroit où CakePHP et d'autres dépendances de - l'application vont être installés. Engagez-vous personnellement à ne - **pas** modifier les fichiers dans ce dossier. Nous ne pourrons pas vous - aider si vous avez modifié le cœur du framework. + l'application vont être installés. Modifier ces fichiers est déconseillé car + composer écraser vos changements lors du prochain update que vous ferez. - Le répertoire *webroot* est la racine publique de votre application. Il contient tous les fichiers que vous souhaitez voir accessibles publiquement. Assurez-vous que les dossiers *tmp* et *logs* existent et qu'ils sont en écriture, autrement la performance de votre application sera sévèrement - impactée. En mode debug, CakePHP vous avertira si ce n'est pas le cas. + impactée. En mode debug, CakePHP vous avertira que ces dossiers ne peuvent + pas être écrits. Le Dossier Src ============== @@ -55,22 +38,21 @@ Le répertoire *src* de CakePHP est l'endroit où vous réaliserez la majorité du développement de votre application. Regardons d'un peu plus près les dossiers à l'intérieur de *src*. -Console - Contient les commandes de la console et les tasks de la console pour votre - application. Pour plus d'informations, regardez la section - :doc:`/console-and-shells`. Controller Contient les controllers et les components de votre application. Locale Stocke les fichiers pour l'internationalisation. Model Pour les tables, entity et behaviors de votre application. -View - Les fichiers de présentation sont placés ici : cells, helpers et - templates de vues. +Shell + Contient les commandes de la console et les tasks de la console pour votre + application. Pour plus d'informations, regardez la section + :doc:`/console-and-shells`. Template Les fichiers de présentation se trouvent ici: elements, pages d'erreur, les layouts, et les fichiers de template de vue. +View + Les classes de présentation sont placés ici : views, cells, helpers. .. meta:: From 777d12f34635840fa32232ac2e72d5a94f8be07b Mon Sep 17 00:00:00 2001 From: Yves P Date: Sat, 24 Jun 2017 14:10:03 +0200 Subject: [PATCH 14/14] [fr] Fix after review --- fr/controllers/components/security.rst | 4 ++-- fr/orm/validation.rst | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/fr/controllers/components/security.rst b/fr/controllers/components/security.rst index 4eed292679..5a8bcd809b 100644 --- a/fr/controllers/components/security.rst +++ b/fr/controllers/components/security.rst @@ -71,7 +71,7 @@ mise en trou noir (blackhole callback):: } Note : utilisez ``$this->Security->config()`` pour les versions de CakePHP -avant 3.4.0. +inférieures à 3.4.0. Le paramètre ``$type`` peut avoir les valeurs suivantes: @@ -260,7 +260,7 @@ fonctionnalités de ``SecurityComponent``:: } Note : utilisez ``$this->Security->config()`` pour les versions de CakePHP -avant 3.4.0. +inférieures à 3.4.0. Cet exemple désactiverait toutes les vérifications de sécurité pour une action edit. diff --git a/fr/orm/validation.rst b/fr/orm/validation.rst index c7fdd4fc5c..e554f5d046 100644 --- a/fr/orm/validation.rst +++ b/fr/orm/validation.rst @@ -30,7 +30,8 @@ retournée:: } .. versionadded:: 3.4.0 - LA méthode ``getErrors()`` a été ajoutée. + + La méthode ``getErrors()`` a été ajoutée. Quand vous construisez une entity avec la validation activée, les choses suivantes vont se produire: