Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions en/controllers/middleware.rst
Original file line number Diff line number Diff line change
Expand Up @@ -368,17 +368,17 @@ Integration with FormHelper
---------------------------

The ``CsrfProtectionMiddleware`` integrates seamlessly with ``FormHelper``. Each
time you create a form with FormHelper, it will insert a hidden field containing
time you create a form with ``FormHelper``, it will insert a hidden field containing
the CSRF token.

.. note::

When using CSRF protection you should always start your forms with the
FormHelper. If you do not, you will need to manually create hidden inputs in
``FormHelper``. If you do not, you will need to manually create hidden inputs in
each of your forms.

CSRF Protection and AJAX Requests
----------------------------------
---------------------------------

In addition to request data parameters, CSRF tokens can be submitted through
a special ``X-CSRF-Token`` header. Using a header often makes it easier to
Expand Down
1 change: 0 additions & 1 deletion en/core-libraries/httpclient.rst
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,6 @@ request's ``$options`` parameters::
'cookies' => ['sessionid' => '123abc']
]);


You can add cookie objects to the client after creating it using the ``addCookie()``
method::

Expand Down
4 changes: 4 additions & 0 deletions fr/controllers/components/cookie.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ Le component Cookie est un conteneur de la méthode native de PHP
``setcookie()``. Il simplifie la manipulation des cookies et chiffre
automatiquement les données du cookie.

.. deprecated:: 3.5.0
Vous devriez utiliser le :ref:`encrypted-cookie-middleware` à la place du
``CookieComponent``.

Paramétrage des Cookies
=======================

Expand Down
4 changes: 4 additions & 0 deletions fr/controllers/components/csrf.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@ deux valeurs ne correspondent pas, le component lancera une
:php:class:`Cake\\Network\\Exception\\ForbiddenException` en
:php:class:`Cake\\Network\\Exception\\InvalidCsrfTokenException`.

.. deprecated:: 3.5.0
Vous devriez utiliser le :ref:`csrf-middleware` à la place du
``CsrfComponent``.

Utiliser le CsrfComponent
=========================

Expand Down
25 changes: 25 additions & 0 deletions fr/controllers/middleware.rst
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,10 @@ différentes opérations ::
$layer
);

En plus d'appliquer des middleware à la totalité de votre application, vous pouvez
appliquer des middleware à des jeux de routes spécifiques en utilisant les
:ref:`middlewares connectés à un scope <connecting-scoped-middleware>`.

Ajout de Middleware à partir de Plugins
---------------------------------------

Expand Down Expand Up @@ -370,6 +374,27 @@ Une fois activé, vous pouvez accéder au token CSRF actuel via l'objet "Request
.. versionadded:: 3.5.0
``CsrfProtectionMiddleware`` a été ajouté dans 3.5.0

Intégration avec le FormHelper
------------------------------

Le ``CsrfProtectionMiddleware`` s'intègre parfaitement avec le ``FormHelper``.
Chaque fois que vous créez un formulaire avec le ``FormHelper``, cela créera un
champ caché contenant le token CSRF.

.. note::

Lorsque vous utilisez la protection CSRF, vous devriez toujours commencer
vos formulaires avec le ``FormHelper``. Si vous ne le faites pas, vous allez
devoir créer manuellement les champs cachés dans chaque formulaire.

Protection CSRF et Requêtes AJAX
--------------------------------

En plus des données de la requête, les tokens CSRF peuvent être soumis via le
header spécial ``X-CSRF-Token``. Utiliser un header facilite généralement
l'intégration du token CSRF dans les applications qui utilisent Javascript de
manière intensive ou avec les applications API JSON / XML.

.. _adding-http-stack:

Ajout de la nouvelle pile HTTP à une application existante
Expand Down
13 changes: 13 additions & 0 deletions fr/core-libraries/httpclient.rst
Original file line number Diff line number Diff line change
Expand Up @@ -353,6 +353,19 @@ les paramètres ``$options`` de la requête::
'cookies' => ['sessionid' => '123abc']
]);

Vous pouvez ajouter des cookies au client après l'avoir créé en utilisant la méthode
``addCookie()``::

use Cake\Http\Cookie\Cookie;

$http = new Client([
'host' => 'cakephp.org'
]);
$http->addCookie(new Cookie('session', 'abc123'));

.. versionadded:: 3.5.0
``addCookie()`` a été ajoutée dans 3.5.0

.. _httpclient-response-objects:

Objets Response
Expand Down
5 changes: 5 additions & 0 deletions fr/core-libraries/internationalization-and-localization.rst
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ cette méthode::

use Cake\I18n\I18n;

// Avant 3.5, utilisez I18n::locale()
I18n::setLocale('de_DE');

Cela changera également le formatage des nombres et des dates lorsque vous
Expand Down Expand Up @@ -425,6 +426,7 @@ fonction loader doit retourner un objet ``Aura\Intl\Package``. Une fois que le
code est en place vous pouvez utiliser les fonctions de traduction comme
d'habitude::

// Avant 3.5, utilisez I18n::locale()
I18n::setLocale('fr_FR');
__d('animals', 'Dog'); // Retourne "Chien"

Expand All @@ -441,6 +443,7 @@ depuis un autre endroit::

// Charge les messages depuis src/Locale/folder/sub_folder/filename.po

// Avant 3.5, utilisez translator()
I18n::setTranslator(
'animals',
new Loader('filename', 'folder/sub_folder', 'po'),
Expand Down Expand Up @@ -480,6 +483,7 @@ Enfin, configurez le loader de traduction pour le domaine et la locale::

use Cake\I18n\MessagesFileLoader as Loader;

// Avant 3.5, utilisez translator()
I18n::setTranslator(
'animals',
new Loader('animals', 'fr_FR', 'yaml'),
Expand Down Expand Up @@ -596,6 +600,7 @@ la locale et utiliser les bonnes classes::
use Cake\I18n\Time;
use Cake\I18n\Number;

// Avant 3.5, utilisez I18n::locale()
I18n::setLocale('fr-FR');

$date = new Time('2015-04-05 23:00:00');
Expand Down
51 changes: 43 additions & 8 deletions fr/development/routing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,15 @@ d'accueil de votre site est visitée. Parfois vous avez besoin de routes
dynamiques qui vont accepter plusieurs paramètres, ce sera par exemple le cas
d'une route pour voir le contenu d'un article::

Router::connect('/articles/*', ['controller' => 'Articles', 'action' => 'view']);
$routes->connect('/articles/*', ['controller' => 'Articles', 'action' => 'view']);

La route ci-dessus accepte toute URL qui ressemble à ``/articles/15`` et appelle
la méthode ``view(15)`` dans ``ArticlesController``. En revanche, ceci ne va pas
empêcher les visiteurs d'accéder à une URLs ressemblant à
``/articles/foobar``. Si vous le souhaitez, vous pouvez restreindre certains
paramètres grâce à une expression régulière::

Router::connect(
$routes->connect(
'/articles/:id',
['controller' => 'Articles', 'action' => 'view'],
['id' => '\d+', 'pass' => ['id']]
Expand Down Expand Up @@ -79,14 +79,15 @@ Les routes peuvent aussi être labellisées avec un nom unique, cela vous permet
de rapidement leur faire référence lors de la construction des liens plutôt
que de spécifier chacun des paramètres de routing::

use Cake\Routing\Router;

Router::connect(
// Dans le fichier routes.php
$routes->connect(
'/login',
['controller' => 'Users', 'action' => 'login'],
['_name' => 'login']
);

use Cake\Routing\Router;

echo Router::url(['_name' => 'login']);
// Va afficher
/login
Expand Down Expand Up @@ -115,13 +116,12 @@ par défaut si vous n'en avez pas besoin.
Connecter les Routes
====================

.. php:staticmethod:: connect($route, $defaults = [], $options = [])
.. php:method:: connect($route, $defaults = [], $options = [])

Pour garder votre code :term:`DRY`, vous pouvez utiliser les 'routing scopes'.
Les scopes de Routing permettent non seulement de garder votre code DRY mais
aident aussi le Router à optimiser son opération. Comme vous l'avez vu
précédemment, vous pouvez aussi utiliser ``Router::connect()`` pour connecter
les routes. Cette méthode va par défaut vers le scope ``/``. Pour créer un
précédemment. Cette méthode va par défaut vers le scope ``/``. Pour créer un
scope et connecter certaines routes, nous allons utiliser la méthode
``scope()``::

Expand Down Expand Up @@ -772,6 +772,41 @@ Les extensions de fichier sont utilisées par le
:doc:`/controllers/components/request-handling` qui fait la commutation des
vues automatiquement en se basant sur les types de contenu.

.. _connecting-scoped-middleware:

Connecter des Middlewares à un scope
------------------------------------

Les middleware peuvent être appliqués à l'ensemble de votre application ou bien
à des scopes spécifiques. Avant qu'un middleware ne soit appliqué à un scope,
il a besoin d'être enregistré::

// dans config/routes.php
use Cake\Http\Middleware\CsrfProtectionMiddleware;
use Cake\Http\Middleware\EncryptedCookieMiddleware;

Router::scope('/', function ($routes) {
$routes->registerMiddleware('csrf', new CsrfProtectionMiddleware());
$routes->registerMiddleware('cookies', new EncryptedCookiesMiddleware());
});

Une fois enregistré dans le builder de routes, le middleware peut être appliqué
à des scopes spécifiques::

$routes->scope('/cms', function ($routes) {
// Active les middlewares enregistrés pour ce scope.
$routes->applyMiddleware('csrf', 'cookies');
});

Dans les cas où vous avez des scopes imbriqués, tous les middlewares appliqués
à chacun des scopes seront appliqués à partir du middleware de plus haut niveau
en terminant par les scopes imbriqués. En appliquant un middleware à des scopes
spécifiques, vous éviterez d'ajouter de la complexité dans la logique de vos
middlewares et les laisser s'occuper de leur tâche principale.

.. versionadded:: 3.5.0
Le support des middlewares par scope a été ajouté dans 3.5.0

.. _resource-routes:

Créer des Routes RESTful
Expand Down