From 56aaa1503b5fbb2debf0c063554b46e2c90f43e8 Mon Sep 17 00:00:00 2001 From: Yves P Date: Mon, 19 Jun 2017 21:32:15 +0200 Subject: [PATCH 01/16] [fr] Follows #4787 --- fr/views/helpers/paginator.rst | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/fr/views/helpers/paginator.rst b/fr/views/helpers/paginator.rst index e40391dbbb..80f46c2d06 100644 --- a/fr/views/helpers/paginator.rst +++ b/fr/views/helpers/paginator.rst @@ -63,13 +63,16 @@ fichiers de templates devraient ressembler à ceci:: Changer les Templates à la Volée -------------------------------- -.. php:method:: templates($templates = null) +.. php:method:: setTemplates($templates) Cette méthode vous permet de changer les templates utilisés par PaginatorHelper à la volée. Ceci peut être utile quand vous voulez personnaliser des templates pour l'appel d'une méthode particulière:: // Lire la valeur du template actuel. + $result = $this->Paginator->getTemplates('number'); + + // Avant 3.4 $result = $this->Paginator->templates('number'); // Changez un template @@ -85,10 +88,10 @@ pour l'appel d'une méthode particulière:: sont compilés en interne pour être utilisés avec ``sprintf()``. Exemple: '
{{content}}
' -Noms du Template ----------------- +Noms de Templates +----------------- -PaginatorHelper utilise les templates suivants: +PaginatorHelper utilise les templates suivants : - ``nextActive`` L'état activé pour un lien généré par next(). - ``nextDisabled`` L'état désactivé pour next(). @@ -105,8 +108,8 @@ PaginatorHelper utilise les templates suivants: - ``sortAsc`` Le template pour un lien trié avec une direction ascendante. - ``sortDesc`` Le template pour un lien trié avec une direction descendante. -Création de liens triés -======================= +Création de liens de tri +======================== .. php:method:: sort($key, $title = null, $options = []) From 51e479446bf767dec90274db46c80ccb3b8459a5 Mon Sep 17 00:00:00 2001 From: Yves P Date: Mon, 19 Jun 2017 21:41:00 +0200 Subject: [PATCH 02/16] [fr] Follows #4784 --- .../bookmarks/part-two.rst | 4 ++-- .../blog-auth-example/auth.rst | 10 +++++----- fr/tutorials-and-examples/blog/part-three.rst | 20 +++++++++---------- fr/tutorials-and-examples/blog/part-two.rst | 16 +++++++-------- .../bookmarks/part-two.rst | 17 ++++++++++------ 5 files changed, 36 insertions(+), 31 deletions(-) diff --git a/en/tutorials-and-examples/bookmarks/part-two.rst b/en/tutorials-and-examples/bookmarks/part-two.rst index 07843921c1..9453c227c7 100644 --- a/en/tutorials-and-examples/bookmarks/part-two.rst +++ b/en/tutorials-and-examples/bookmarks/part-two.rst @@ -80,8 +80,8 @@ And in **src/Template/Users/login.ctp** add the following:: .. note:: - The ``control()`` is available since 3.4. For prior versions you can use - the ``input()`` instead. + The ``control()`` method is available since 3.4. For prior versions you can + use the ``input()`` method instead. Now that we have a simple login form, we should be able to log in with one of the users that has a hashed password. diff --git a/fr/tutorials-and-examples/blog-auth-example/auth.rst b/fr/tutorials-and-examples/blog-auth-example/auth.rst index 3733090a37..f364961201 100644 --- a/fr/tutorials-and-examples/blog-auth-example/auth.rst +++ b/fr/tutorials-and-examples/blog-auth-example/auth.rst @@ -113,9 +113,9 @@ le cadre de ce tutoriel, nous allons juste montrer le add.ctp: Form->create($user) ?>
- Form->input('username') ?> - Form->input('password') ?> - Form->input('role', [ + Form->control('username') ?> + Form->control('password') ?> + Form->control('role', [ 'options' => ['admin' => 'Admin', 'author' => 'Author'] ]) ?>
@@ -268,8 +268,8 @@ votre fichier **src/Template/Users/login.ctp** et ajoutez les lignes suivantes: Form->create() ?>
- Form->input('username') ?> - Form->input('password') ?> + Form->control('username') ?> + Form->control('password') ?>
Form->button(__('Se Connecter')); ?> Form->end() ?> diff --git a/fr/tutorials-and-examples/blog/part-three.rst b/fr/tutorials-and-examples/blog/part-three.rst index ccb671ac8c..fe74fcfcb6 100644 --- a/fr/tutorials-and-examples/blog/part-three.rst +++ b/fr/tutorials-and-examples/blog/part-three.rst @@ -190,7 +190,7 @@ CakePHP. Vous devrez modifier ce qui suit dans **src/Template/Categories/add.ctp** et **src/Template/Categories/edit.ctp**:: - echo $this->Form->input('parent_id', [ + echo $this->Form->control('parent_id', [ 'options' => $parentCategories, 'empty' => 'Pas de catégorie parente' ]); @@ -219,8 +219,8 @@ cela dans un moment. Mais pour l'instant, vous devez retirer les lignes suivantes dans vos fichiers de template add et edit:: - echo $this->Form->input('lft'); - echo $this->Form->input('rght'); + echo $this->Form->control('lft'); + echo $this->Form->control('rght'); De plus, vous devez désactiver ou retirer les requirePresence du validateur pour ``lft`` et ``rght`` dans votre model CategoriesTable:: @@ -370,8 +370,8 @@ lorsque l'on va le créer ou le modifier:: } $this->set('article', $article); - // Just added the categories list to be able to choose - // one category for an article + // Ajout de la liste des catégories pour pouvoir choisir + // une catégorie pour un article $categories = $this->Articles->Categories->find('treeList'); $this->set(compact('categories')); } @@ -380,7 +380,7 @@ lorsque l'on va le créer ou le modifier:: Modifier les Templates des Articles =================================== -Le fichier add des articles devrait ressembler à quelque chose comme: +Le fichier **add** des articles devrait ressembler à ceci : .. code-block:: php @@ -389,10 +389,10 @@ Le fichier add des articles devrait ressembler à quelque chose comme:

Add Article

Form->create($article); - // just added the categories input - echo $this->Form->input('category_id'); - echo $this->Form->input('title'); - echo $this->Form->input('body', ['rows' => '3']); + // Ajout des input (via la méthode "control") liés aux catégories + echo $this->Form->control('category_id'); + echo $this->Form->control('title'); + echo $this->Form->control('body', ['rows' => '3']); echo $this->Form->button(__('Save Article')); echo $this->Form->end(); diff --git a/fr/tutorials-and-examples/blog/part-two.rst b/fr/tutorials-and-examples/blog/part-two.rst index 0d70afc3ed..8acf1f0ad9 100755 --- a/fr/tutorials-and-examples/blog/part-two.rst +++ b/fr/tutorials-and-examples/blog/part-two.rst @@ -386,8 +386,8 @@ Voici le code de notre vue "add" (ajout):

Ajouter un article

Form->create($article); - echo $this->Form->input('title'); - echo $this->Form->input('body', ['rows' => '3']); + echo $this->Form->control('title'); + echo $this->Form->control('body', ['rows' => '3']); echo $this->Form->button(__("Sauvegarder l'article")); echo $this->Form->end(); ?> @@ -405,11 +405,11 @@ construisez un formulaire qui envoie les données en POST à l'action ``add()`` (ou ``edit()`` quand ``id`` est dans les données du formulaire) du controller actuel. -La méthode ``$this->Form->input()`` est utilisée pour créer des éléments de +La méthode ``$this->Form->control()`` est utilisée pour créer des éléments de formulaire du même nom. Le premier paramètre dit à CakePHP à quels champs ils correspondent et le second paramètre vous permet de spécifier un large éventail d'options - dans ce cas, le nombre de lignes du textarea. Il y a un peu -d'introspection et "d'automagie" ici : ``input()`` affichera différents +d'introspection et "d'automagie" ici : ``control()`` affichera différents éléments de formulaire selon le champ spécifié du model. L'appel de la méthode ``$this->Form->end()`` cloture le formulaire. Affiche les @@ -465,7 +465,7 @@ configuration, consultez le chapitre :doc:`/core-libraries/validation`. Maintenant que vos règles de validation sont en place, utilisez l'application pour essayer d'ajouter un article avec un titre et un contenu vide afin de voir comment cela fonctionne. Puisque que nous avons utilisé la méthode -:php:meth:`Cake\\View\\Helper\\FormHelper::input()` du helper "Form" pour +:php:meth:`Cake\\View\\Helper\\FormHelper::control()` du helper "Form" pour créer nos éléments de formulaire, nos messages d'erreurs de validation seront affichés automatiquement. @@ -514,8 +514,8 @@ La vue d'édition devrait ressembler à quelque chose comme cela:

Modifier un article

Form->create($article); - echo $this->Form->input('title'); - echo $this->Form->input('body', ['rows' => '3']); + echo $this->Form->control('title'); + echo $this->Form->control('body', ['rows' => '3']); echo $this->Form->button(__('Sauvegarder l\'article')); echo $this->Form->end(); ?> @@ -712,7 +712,7 @@ riches en fonctionnalités. Maintenant que vous avez créé une application CakePHP basique, vous pouvez soit continuer vers :doc:`/tutorials-and-examples/blog/part-three`, ou commencer votre propre projet. Vous pouvez aussi lire attentivement les -:doc:`/topics` ou l'`API ` pour en +:doc:`/topics` ou l'`API ` pour en apprendre plus sur CakePHP. Si vous avez besoin d'aide, il y a plusieurs façons d'obtenir de l'aide - diff --git a/fr/tutorials-and-examples/bookmarks/part-two.rst b/fr/tutorials-and-examples/bookmarks/part-two.rst index 8425e9eb50..6916479218 100644 --- a/fr/tutorials-and-examples/bookmarks/part-two.rst +++ b/fr/tutorials-and-examples/bookmarks/part-two.rst @@ -79,11 +79,16 @@ Et dans **src/Template/Users/login.ctp**, ajoutez ce qui suit::

Connexion

Form->create() ?> - Form->input('email') ?> - Form->input('password') ?> + Form->control('email') ?> + Form->control('password') ?> Form->button('Login') ?> Form->end() ?> +.. note:: + + La méthode ``control()`` est disponible depuis 3.4. Si vous utilisez une + version précédente, utilisez la méthode ``input()``. + Maintenant que nous avons un formulaire simple de connexion, nous devrions pouvoir nous connecter avec un de nos utilisateurs qui a un mot de passe hashé. @@ -238,7 +243,7 @@ problèmes: #. Lors de l'édition d'un bookmark vous pouvez choisir l'utilisateur. #. La page de liste montre les bookmarks des autres utilisateurs. -Attaquons nous d'abord à add. Pour commencer, retirez ``input('user_id')`` de +Attaquons nous d'abord à add. Pour commencer, retirez ``control('user_id')`` de **src/Template/Bookmarks/add.ctp**. Une fois retiré, nous allons aussi mettre à jour l'action ``add()`` dans **src/Controller/BookmarksController.php** pour ressembler à ceci:: @@ -343,7 +348,7 @@ pouvons ajouter un champ virtuel/calculé à l'entity. Dans } Cela nous laissera l'accès à la propriété calculée ``$bookmark->tag_string``. -Nous utiliserons cette propriété dans inputs plus tard. Rappelez-vous +Nous utiliserons cette propriété dans controls plus tard. Rappelez-vous d'ajouter la propriété ``tag_string`` dans la liste ``_accessible`` de votre entity, puisque nous voulons la 'sauvegarder' plus tard. @@ -363,11 +368,11 @@ la propriété ``_accessible`` comme ceci:: Mettre à Jour les Vues ---------------------- -Avec l'entity mise à jour, nous pouvons ajouter un nouvel input pour nos tags. +Avec l'entity mise à jour, nous pouvons ajouter un nouveau *control* pour nos tags. Dans **src/Template/Bookmarks/add.ctp** et **src/Template/Bookmarks/edit.ctp**, remplacez l'input ``tags._ids`` existant avec ce qui suit:: - echo $this->Form->input('tag_string', ['type' => 'text']); + echo $this->Form->control('tag_string', ['type' => 'text']); Persister la Chaîne Tag ----------------------- From d992093b361e764f3ec806beb0d13524954299d2 Mon Sep 17 00:00:00 2001 From: Yves P Date: Mon, 19 Jun 2017 21:42:53 +0200 Subject: [PATCH 03/16] [fr] Follows #4790 --- fr/core-libraries/form.rst | 6 +++--- fr/elasticsearch.rst | 4 ++-- fr/orm/behaviors/translate.rst | 8 ++++---- fr/orm/behaviors/tree.rst | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/fr/core-libraries/form.rst b/fr/core-libraries/form.rst index ed16c7f953..1bb56f5220 100644 --- a/fr/core-libraries/form.rst +++ b/fr/core-libraries/form.rst @@ -195,9 +195,9 @@ formulaire HTML. FormHelper comprend les objets Form de la même manière que de entities de l'ORM:: echo $this->Form->create($contact); - echo $this->Form->input('name'); - echo $this->Form->input('email'); - echo $this->Form->input('body'); + echo $this->Form->control('name'); + echo $this->Form->control('email'); + echo $this->Form->control('body'); echo $this->Form->button('Submit'); echo $this->Form->end(); diff --git a/fr/elasticsearch.rst b/fr/elasticsearch.rst index f9e3b95890..40b450dd54 100644 --- a/fr/elasticsearch.rst +++ b/fr/elasticsearch.rst @@ -77,8 +77,8 @@ Nous devrons aussi créer une vue basique pour nos articles indexés:: // Dans src/Template/Articles/add.ctp Form->create($article) ?> - Form->input('title') ?> - Form->input('body') ?> + Form->control('title') ?> + Form->control('body') ?> Form->button('Save') ?> Form->end() ?> diff --git a/fr/orm/behaviors/translate.rst b/fr/orm/behaviors/translate.rst index 2f6e717f2e..723320c5b3 100644 --- a/fr/orm/behaviors/translate.rst +++ b/fr/orm/behaviors/translate.rst @@ -446,13 +446,13 @@ Vous pouvez créer des inputs de formulaire pour vos champs traduits:: Form->create($article); ?>
French - Form->input('_translations.fr.title'); ?> - Form->input('_translations.fr.body'); ?> + Form->control('_translations.fr.title'); ?> + Form->control('_translations.fr.body'); ?>
Spanish - Form->input('_translations.es.title'); ?> - Form->input('_translations.es.body'); ?> + Form->control('_translations.es.title'); ?> + Form->control('_translations.es.body'); ?>
Dans votre controller, vous pouvez marshal les données comme d'habitude, mais diff --git a/fr/orm/behaviors/tree.rst b/fr/orm/behaviors/tree.rst index 634243ceec..a938d0fe56 100644 --- a/fr/orm/behaviors/tree.rst +++ b/fr/orm/behaviors/tree.rst @@ -95,7 +95,7 @@ dans un select HTML par exemple, il est préférable d'utiliser le finder $list = $categories->find('treeList'); // Dans un fichier template de CakePHP: - echo $this->Form->input('categories', ['options' => $list]); + echo $this->Form->control('categories', ['options' => $list]); // Ou vous pouvez l'afficher en texte, par exemple dans un script de CLI foreach ($list as $categoryName) { From 7c51b374daf5156385cca9faef388f70b135e5c3 Mon Sep 17 00:00:00 2001 From: Yves P Date: Mon, 19 Jun 2017 21:47:37 +0200 Subject: [PATCH 04/16] [fr] Follows #4794 --- fr/controllers/components/pagination.rst | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/fr/controllers/components/pagination.rst b/fr/controllers/components/pagination.rst index 68d74b1e50..5e43a51cd9 100644 --- a/fr/controllers/components/pagination.rst +++ b/fr/controllers/components/pagination.rst @@ -198,7 +198,14 @@ Requêtes de Paginating Multiple =============================== Vous pouvez paginer plusieurs models dans une unique action de controller en -utilisant l'option ``scope``:: +utilisant l'option ``scope``, à la fois via la propriété ``$paginate`` d'un +controller et dans l'appel à la méthode ``paginate()``:: + + // Paginate property + public $paginate = [ + 'Articles' => ['scope' => 'article'], + 'Tags' => ['scope' => 'tag'] + ]; // Dans une action de controller $articles = $this->paginate($this->Articles, ['scope' => 'article']); From 2ceb7e2bf50b825def27365a92b81f3708739f73 Mon Sep 17 00:00:00 2001 From: Yves P Date: Mon, 19 Jun 2017 21:50:21 +0200 Subject: [PATCH 05/16] [fr] Follows #4795 --- fr/core-libraries/hash.rst | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/fr/core-libraries/hash.rst b/fr/core-libraries/hash.rst index 5982a947d8..7f65d732b9 100644 --- a/fr/core-libraries/hash.rst +++ b/fr/core-libraries/hash.rst @@ -40,6 +40,8 @@ Types d'expression | | valeur de chaîne y compris les valeurs de | | | chaîne numérique. | +--------------------------------+--------------------------------------------+ +| ``{*}`` | Toutes les valeurs seront *matchées* | ++--------------------------------+--------------------------------------------+ | ``Foo`` | Matche les clés avec exactement la même | | | valeur. | +--------------------------------+--------------------------------------------+ @@ -83,7 +85,7 @@ Les Types d'Attribut Correspondants .. php:staticmethod:: get(array|\ArrayAccess $data, $path, $default = null) ``get()`` est une version simplifiée de ``extract()``, elle ne supporte - que les expressions de chemin direct. Les chemins avec ``{n}``, ``{s}`` + que les expressions de chemin direct. Les chemins avec ``{n}``, ``{s}``, ``{*}`` ou les matchers ne sont pas supportés. Utilisez ``get()`` quand vous voulez exactement une valeur sortie d'un tableau. Si un chemin correspondant n'est pas trouvé, la valeur par défaut sera retournée. @@ -128,8 +130,8 @@ Les Types d'Attribut Correspondants ] ] - Vous pouvez utiliser les chemins en utilisant ``{n}`` et ``{s}`` pour - insérer des données dans des points multiples:: + Vous pouvez utiliser les chemins en utilisant ``{n}``, ``{s}`` et ``{*}`` + pour insérer des données dans des points multiples:: $users = Hash::insert($users, '{n}.new', 'value'); @@ -171,9 +173,9 @@ Les Types d'Attribut Correspondants ] */ - L'utilisation de ``{n}`` et ``{s}`` vous autorisera à retirer les valeurs - multiples en une fois. Vous pouvez aussi utiliser les matchers d'attribut - avec ``remove()``:: + L'utilisation de ``{n}``, ``{s}`` et ``{*}`` vous autorisera à retirer les + valeurs multiples en une fois. Vous pouvez aussi utiliser les matchers + d'attribut avec ``remove()``:: $data = [ 0 => ['clear' => true, 'Item' => ['id' => 1, 'title' => 'first']], From 571d18f724aa30cc2ece7a23018a56ca66ef9791 Mon Sep 17 00:00:00 2001 From: Yves P Date: Mon, 19 Jun 2017 22:01:16 +0200 Subject: [PATCH 06/16] [fr] Follows #4796 --- fr/orm/entities.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/fr/orm/entities.rst b/fr/orm/entities.rst index 02694bc28d..8921b1c8a2 100644 --- a/fr/orm/entities.rst +++ b/fr/orm/entities.rst @@ -254,6 +254,15 @@ d'être marqués dirty en passant une option supplémentaire:: $article = new Article(['title' => 'New Article'], ['markClean' => true]); +Pour récupérer la liste des propriétés *dirty* (modifiées) d'une ``Entity``, +vous pouvez utiliser la méthode ``getDirty()``:: + + $dirtyFields = $entity->getDirty(); + +.. versionadded:: 3.4.3 + + ``getDirty()`` a été ajoutée. + Erreurs de Validation ===================== From d85c4fa184360507bbd52e411b3be01d8a689af1 Mon Sep 17 00:00:00 2001 From: Yves P Date: Mon, 19 Jun 2017 22:04:21 +0200 Subject: [PATCH 07/16] [fr] Follows #4803 --- fr/controllers/components/authentication.rst | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/fr/controllers/components/authentication.rst b/fr/controllers/components/authentication.rst index 6b2d87b69c..8a1fa3f0f6 100644 --- a/fr/controllers/components/authentication.rst +++ b/fr/controllers/components/authentication.rst @@ -250,9 +250,7 @@ connexion pourrait ressembler à cela:: $this->Auth->setUser($user); return $this->redirect($this->Auth->redirectUrl()); } else { - $this->Flash->error(__("Nom d'utilisateur ou mot de passe incorrect"), [ - 'key' => 'auth' - ]); + $this->Flash->error(__("Nom d'utilisateur ou mot de passe incorrect")); } } } From a6ede86e51bb3453d123fdbaf68e839b854d4df8 Mon Sep 17 00:00:00 2001 From: Yves P Date: Mon, 19 Jun 2017 22:04:59 +0200 Subject: [PATCH 08/16] [fr] Follows #4807 --- fr/controllers/components.rst | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/fr/controllers/components.rst b/fr/controllers/components.rst index 99593616d1..326d80e047 100644 --- a/fr/controllers/components.rst +++ b/fr/controllers/components.rst @@ -135,8 +135,7 @@ Utiliser les Components Une fois que vous avez inclus quelques components dans votre controller, les utiliser est très simple. Chaque component que vous utilisez est enregistré comme propriété dans votre controller. Si vous avez chargé la -:php:class:`Cake\\Controller\\Component\\FlashComponent` et le -:php:class:`Cake\\Controller\\Component\\CookieComponent` dans votre controller, +:php:class:`Cake\\Controller\\Component\\FlashComponent` dans votre controller, vous pouvez y accéder comme ceci:: class PostsController extends AppController @@ -145,7 +144,6 @@ vous pouvez y accéder comme ceci:: { parent::initialize(); $this->loadComponent('Flash'); - $this->loadComponent('Cookie'); } public function delete() From 235c77d22415892475a8ea9dc03ad9c3c5ecedf6 Mon Sep 17 00:00:00 2001 From: Yves P Date: Mon, 19 Jun 2017 22:13:50 +0200 Subject: [PATCH 09/16] [fr] Follows #4810 --- en/appendices/glossary.rst | 9 ++-- fr/appendices/glossary.rst | 102 +++++++++++++++++++++---------------- fr/intro/conventions.rst | 1 - 3 files changed, 61 insertions(+), 51 deletions(-) diff --git a/en/appendices/glossary.rst b/en/appendices/glossary.rst index 0f0e139965..99a46a85bd 100644 --- a/en/appendices/glossary.rst +++ b/en/appendices/glossary.rst @@ -3,11 +3,6 @@ Glossary .. glossary:: - - CSRF - Cross Site Request Forgery. Prevents replay attacks, double - submissions and forged requests from other domains. - CDN Content Delivery Network. A 3rd party vendor you can pay to help distribute your content to data centers around the world. This helps @@ -17,6 +12,10 @@ Glossary Used in the ORM when referring to the table columns in an database table. + CSRF + Cross Site Request Forgery. Prevents replay attacks, double + submissions and forged requests from other domains. + DSN Data Source Name. A connection string format that is formed like a URI. CakePHP supports DSN's for Cache, Database, Log and Email connections. diff --git a/fr/appendices/glossary.rst b/fr/appendices/glossary.rst index 922a91d0ae..ca4bc8a70c 100644 --- a/fr/appendices/glossary.rst +++ b/fr/appendices/glossary.rst @@ -3,14 +3,8 @@ Glossaire .. glossary:: - tableau de routing - Un tableau des attributs qui sont passés au :php:meth:`Router::url()`. - Typiquement, il ressemble à cela:: - - ['controller' => 'Posts', 'action' => 'view', 5] - attributs HTML - Un tableau de clé => valeurs qui sont composées dans les attributs + Un tableau de clé => valeurs qui sont composées dans les attributs HTML. Par exemple:: // Par exemple @@ -19,30 +13,55 @@ Glossaire // générerait class="ma-classe" _target="blank" - Si une option peut être minimisée ou a le même nom que sa valeur, alors + Si une option peut être minimisée ou a le même nom que sa valeur, alors ``true`` peut être utilisée:: // Par exemple ['checked' => true] - + // Générerait checked="checked" - syntaxe de plugin - La syntaxe de Plugin fait référence au nom de la classe avec un point - en séparation indiquant que les classes sont une partie d'un plugin. - Par ex: ``DebugKit.Toolbar``, le plugin est DebugKit, - et le nom de classe est Toolbar. + CDN + Content Delivery Network. Une librairie tierce que vous pouvez payer + pour vous aider à distribuer votre contenu vers des centres de données + dans le monde entier. Cela aide à rapprocher géographiquement vos + assets static pour les utilisateurs. + + champ(s) + Terme générique utilisé à la fois pour décrire des propriétés + d'entity ou des colonnes de base de données ; souvent utilisé avec + tout ce qui est lié au FormHelper. - notation avec points - La notation avec points définit un chemin de tableau, en séparant les + colonnes + Utilisé dans l'ORM lorsqu'il est question de colonne de tables dans une + base de données. + + CSRF + Les Requêtes de site croisées de Contrefaçon. Empêche les attaques de + replay, les soumissions doubles et les requêtes contrefaites provenant + d'autres domaines. + + DSN + Nom de Source de Données (Data Source Name). Un format de chaîne de + connexion qui est formé comme un URI. CakePHP supporte les DSN pour + les connections Cache, base de données, Log et Email. + + DRY + Ne vous répétez pas vous-même. C'est un principe de développement de + logiciel qui a pour objectif de réduire les répétitions d'information + de tout type. Dans CakePHP, DRY est utilisé pour vous permettre de + coder des choses et de les réutiliser à travers votre application. + + notation avec points (ou *dot notation*) + La notation avec points définit un chemin de tableau, en séparant les niveaux imbriqués avec ``.`` Par exemple:: - + Cache.default.engine - + Pointerait vers la valeur suivante:: - + [ 'Cache' => [ 'default' => [ @@ -51,40 +70,33 @@ Glossaire ] ] - CSRF - Les Requêtes de site croisées de Contrefaçon. Empêche les attaques de - replay, les soumissions doubles et les requêtes contrefaites provenant - d'autres domaines. + PaaS + Plate-forme en tant que service (Platform as a Service). Les fournisseurs + de plate-forme en tant que service fournissent des hébergements, des + bases de données et des ressources de caching basés sur le Cloud. Quelques + fournisseurs populaires sont Heroku, EngineYard et PagodaBox - CDN - Content Delivery Network. Une librairie tierce que vous pouvez payer - pour vous aider à distribuer votre contenu vers des centres de données - dans le monde entier. Cela aide à rapprocher géographiquement vos - assets static pour les utilisateurs. + propriétés + Utilisé pour parler de colonnes mappées à des objets ``Entity`` de l'ORM routes.php Un fichier dans APP/Config qui contient la configuration de routing. Ce fichier est inclus avant que chaque requête soit traitée. - Il doit connecter toutes les routes dont votre application a besoin - afin que les requêtes puissent être routées aux controllers + actions + Il doit connecter toutes les routes dont votre application a besoin + afin que les requêtes puissent être routées aux controllers + actions correctes. - DRY - Ne vous répétez pas vous-même. C'est un principe de développement de - logiciel qui a pour objectif de réduire les répétitions d'information - de tout type. Dans CakePHP, DRY est utilisé pour vous permettre de - coder des choses et de les réutiliser à travers votre application. - - PaaS - Plate-forme en tant que service (Platform as a Service). Les fournisseurs - de plate-forme en tant que service fournissent des hébergements, des - bases de données et des ressources de caching basés sur le Cloud. Quelques - fournisseurs populaires sont Heroku, EngineYard et PagodaBox + syntaxe de plugin + La syntaxe de Plugin fait référence au nom de la classe avec un point + en séparation indiquant que les classes sont une partie d'un plugin. + Par ex: ``DebugKit.Toolbar``, le plugin est DebugKit, + et le nom de classe est Toolbar. - DSN - Nom de Source de Données (Data Source Name). Un format de chaîne de - connexion qui est formé comme un URI. CakePHP supporte les DSN pour - les connections Cache, base de données, Log et Email. + tableau de routing + Un tableau des attributs qui sont passés au :php:meth:`Router::url()`. + Typiquement, il ressemble à cela:: + + ['controller' => 'Posts', 'action' => 'view', 5] .. meta:: :title lang=fr: Glossaire diff --git a/fr/intro/conventions.rst b/fr/intro/conventions.rst index fc8c4c5153..d3f2c23681 100644 --- a/fr/intro/conventions.rst +++ b/fr/intro/conventions.rst @@ -158,7 +158,6 @@ essayer de dérouler :doc:`le tutoriel du Blog CakePHP ` pour voir comment les choses s'articulent. - .. meta:: :title lang=fr: Conventions de CakePHP :keywords lang=fr: expérience de développement web,maintenance cauchemard,méthode index,systèmes légaux,noms de méthode,classe php,système uniforme,fichiers de config,tenets,articles,conventions,controller conventionel,bonnes pratiques,maps,visibilité,nouveaux articles,fonctionnalité,logique,cakephp,développeurs From 7d42ab356ce5600d83700914d6ef5d914a2447c8 Mon Sep 17 00:00:00 2001 From: Yves P Date: Mon, 19 Jun 2017 22:15:13 +0200 Subject: [PATCH 10/16] [fr] Follows #4812 --- fr/core-libraries/collections.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fr/core-libraries/collections.rst b/fr/core-libraries/collections.rst index 572cb407ad..3cb632bad9 100644 --- a/fr/core-libraries/collections.rst +++ b/fr/core-libraries/collections.rst @@ -1118,7 +1118,7 @@ De plus, l'évaluation lazy aide à accélérer certaines operations. Considére l'exemple suivant:: $collection = new Collection($oneMillionItems); - $collection->map(function ($item) { + $collection = $collection->map(function ($item) { return $item * 2; }); $itemsToShow = $collection->take(30); From f849f7e83382a45ca09822eabac3e91917fa7475 Mon Sep 17 00:00:00 2001 From: Yves P Date: Mon, 19 Jun 2017 22:15:38 +0200 Subject: [PATCH 11/16] [fr] Follows #4821 --- fr/controllers/components.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fr/controllers/components.rst b/fr/controllers/components.rst index 326d80e047..d7cb487a31 100644 --- a/fr/controllers/components.rst +++ b/fr/controllers/components.rst @@ -46,7 +46,7 @@ via le tableau ``$components``:: 'authorize' => ['controller'], 'loginAction' => ['controller' => 'Users', 'action' => 'login'] ]); - $this->loadComponent('Cookie', ['expiry' => '1 day']); + $this->loadComponent('Cookie', ['expires' => '1 day']); } } From 4ff1fba43f77ab1b6c1711a9dad33934761350f2 Mon Sep 17 00:00:00 2001 From: Yves P Date: Mon, 19 Jun 2017 22:19:04 +0200 Subject: [PATCH 12/16] [fr] Follows #4824 --- fr/orm/saving-data.rst | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/fr/orm/saving-data.rst b/fr/orm/saving-data.rst index 5c5c67bb30..52b689e61f 100644 --- a/fr/orm/saving-data.rst +++ b/fr/orm/saving-data.rst @@ -222,13 +222,6 @@ compte:: ] ]); -Vous pouvez aussi désactiver le marshalling d'associations imbriquées comme -ceci:: - - $entity = $articles->newEntity($data, ['associated' => []]); - // ou... - $entity = $articles->patchEntity($entity, $data, ['associated' => []]); - Ce qui est au-dessus indique que les 'Tags', 'Comments' et 'Users' pour les Comments doivent être prises en compte. D'une autre façon, vous pouvez utiliser la notation par point pour être plus bref:: @@ -242,6 +235,13 @@ la notation par point pour être plus bref:: 'associated' => ['Tags', 'Comments.Users'] ]); +Vous pouvez aussi désactiver le marshalling d'associations imbriquées comme +ceci:: + + $entity = $articles->newEntity($data, ['associated' => []]); + // ou... + $entity = $articles->patchEntity($entity, $data, ['associated' => []]); + Les données associées sont également validées par défaut à moins que le contraire ne lui soit spécifié. Vous pouvez également changer l'ensemble de validation utilisé par association:: From c738482722cf21e8b3361503f5615564c42f2351 Mon Sep 17 00:00:00 2001 From: Yves P Date: Mon, 19 Jun 2017 22:20:51 +0200 Subject: [PATCH 13/16] [fr] Follows #4826 --- fr/core-libraries/collections.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fr/core-libraries/collections.rst b/fr/core-libraries/collections.rst index 3cb632bad9..380b2f98b8 100644 --- a/fr/core-libraries/collections.rst +++ b/fr/core-libraries/collections.rst @@ -642,7 +642,7 @@ utiliser pour comparer deux valeurs différentes dans la collection:: Afin de spécifier la direction dans laquelle la collection doit être triée, vous devez fournir soit ``SORT_ASC`` soit ``SORT_DESC`` en deuxième paramètre pour trier respectivement par ordre croissant ou décroissant. Par défaut, les -collections sont triées par ordre croissant:: +collections sont triées par ordre décroissant:: $collection = new Collection($people); $sorted = $collection->sortBy('age', SORT_ASC); From 10ea60cf1a754744f0fcd30de5c8c47a80065488 Mon Sep 17 00:00:00 2001 From: Yves P Date: Mon, 19 Jun 2017 22:31:58 +0200 Subject: [PATCH 14/16] [fr] Follows #4822 --- fr/development/routing.rst | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/fr/development/routing.rst b/fr/development/routing.rst index 3c06ee6a56..9c78cc55a9 100644 --- a/fr/development/routing.rst +++ b/fr/development/routing.rst @@ -712,17 +712,29 @@ Routing des Extensions de Fichier .. php:staticmethod:: extensions(string|array|null $extensions, $merge = true) + Pour manipuler différentes extensions de fichier avec vos routes, vous pouvez -ajouter ce qui suit dans votre fichier de config des routes:: +définir vos extensions de manière globale ou dans un *scope*. Définir des +extensions globales peut se faire via la méthode static :php:meth:`Router::extensions()` + + Router::extensions(['json', 'xml']); + // ... + +Ceci affectera **toutes** les routes qui seront connectés **après** cet appel, +quelque soit leur *scope*. + +Pour restreindre les extensions à un *scope* spécifique, vous pouvez les définir +en utilisant la méthode :php:meth:`Cake\\Routing\\RouteBuilder::extensions()`:: Router::scope('/', function ($routes) { $routes->extensions(['json', 'xml']); - ... + // ... }); -Cela activera les extensions de nom pour toutes les routes déclarées **après** -l'appel de cette méthode. Par défaut, les extensions que vous avez déclarées -seront fusionnées avec la liste des extensions existantes. +Cela activera les extensions pour toutes les routes qui seront définies dans ce +scope **après** l'appel à ``extensions()``, tout en incluant les routes inclus +dans les scopes imbriqués. De la même manière que la méthode :php:meth:`Router::extensions()`, +toutes les routes connectés avant cet appel n'hériteront pas de ces extensions. .. note:: @@ -730,6 +742,9 @@ seront fusionnées avec la liste des extensions existantes. faire dans un scope, car les extensions seront appliquées uniquement aux routes qui sont définies **après** la déclaration des extensions. + Lorsque vous définissez des routes dans le même scope mais dans deux appels + différents, les extensions ne seront pas hérités d'un appel à l'autre. + En utilisant des extensions, vous dites au router de supprimer toutes les extensions de fichiers correspondant, puis d'analyser le reste. Si vous souhaitez créer une URL comme ``/page/title-of-page.html`` vous devriez créer From 8a74aefdc5a0f382e483a5ab4f0b59b06a04563b Mon Sep 17 00:00:00 2001 From: Yves P Date: Tue, 20 Jun 2017 08:34:26 +0200 Subject: [PATCH 15/16] [fr] Fix grammar --- fr/development/routing.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fr/development/routing.rst b/fr/development/routing.rst index 9c78cc55a9..d4ac9a13d3 100644 --- a/fr/development/routing.rst +++ b/fr/development/routing.rst @@ -720,7 +720,7 @@ extensions globales peut se faire via la méthode static :php:meth:`Router::exte Router::extensions(['json', 'xml']); // ... -Ceci affectera **toutes** les routes qui seront connectés **après** cet appel, +Ceci affectera **toutes** les routes qui seront connectées **après** cet appel, quelque soit leur *scope*. Pour restreindre les extensions à un *scope* spécifique, vous pouvez les définir @@ -734,7 +734,7 @@ en utilisant la méthode :php:meth:`Cake\\Routing\\RouteBuilder::extensions()`:: Cela activera les extensions pour toutes les routes qui seront définies dans ce scope **après** l'appel à ``extensions()``, tout en incluant les routes inclus dans les scopes imbriqués. De la même manière que la méthode :php:meth:`Router::extensions()`, -toutes les routes connectés avant cet appel n'hériteront pas de ces extensions. +toutes les routes connectées avant cet appel n'hériteront pas de ces extensions. .. note:: @@ -743,7 +743,7 @@ toutes les routes connectés avant cet appel n'hériteront pas de ces extensions routes qui sont définies **après** la déclaration des extensions. Lorsque vous définissez des routes dans le même scope mais dans deux appels - différents, les extensions ne seront pas hérités d'un appel à l'autre. + différents, les extensions ne seront pas héritées d'un appel à l'autre. En utilisant des extensions, vous dites au router de supprimer toutes les extensions de fichiers correspondant, puis d'analyser le reste. Si vous From 546f650f9303d20d23ea55a3a2572dfdc07d00e0 Mon Sep 17 00:00:00 2001 From: Yves P Date: Tue, 20 Jun 2017 08:39:00 +0200 Subject: [PATCH 16/16] [fr] Fix the build --- fr/appendices/glossary.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fr/appendices/glossary.rst b/fr/appendices/glossary.rst index ca4bc8a70c..d6b93c789b 100644 --- a/fr/appendices/glossary.rst +++ b/fr/appendices/glossary.rst @@ -53,9 +53,9 @@ Glossaire de tout type. Dans CakePHP, DRY est utilisé pour vous permettre de coder des choses et de les réutiliser à travers votre application. - notation avec points (ou *dot notation*) - La notation avec points définit un chemin de tableau, en séparant les - niveaux imbriqués avec ``.`` + notation avec points + La notation avec points (ou *dot notation*) définit un chemin de tableau, + en séparant les niveaux imbriqués avec le caractère ``.``. Par exemple:: Cache.default.engine