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
2 changes: 1 addition & 1 deletion en/plugins.rst
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,7 @@ Plugin Routes
Plugins can provide routes files containing their routes. Each plugin can
contain a **config/routes.php** file. This routes file can be loaded when the
plugin is added, or in the application's routes file. To create the
ContactManager plugin routes. Put the following into
ContactManager plugin routes, put the following into
**plugins/ContactManager/config/routes.php**::

<?php
Expand Down
4 changes: 3 additions & 1 deletion fr/appendices/3-5-migration-guide.rst
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,9 @@ Cache

* Les moteurs de cache peuvent maintenant être configurés avec une clé ``fallback``
qui permet de définir une configuration de cache sur laquelle se rabattre si
le moteur était mal configuré ou indisponible.
le moteur était mal configuré ou indisponible. Reportez-vous à la section
:ref:`cache-configuration-fallback` pour plus d'informations sur la configuration
de 'fallbacks' pour vos configurations de cache.

Core
----
Expand Down
33 changes: 33 additions & 0 deletions fr/core-libraries/caching.rst
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,39 @@ syntaxes suivantes:
l'option ``mask`` pour assurer que les fichiers de cache sont créés avec
les autorisations nécessaires.

.. _cache-configuration-fallback:

Configurer un Fallback de Cache
-------------------------------

Dans le cas où un moteur de cache n'est pas disponible, comme par exemple le
``FileEngine`` essayant d'écrire dans un dossier sans les droits
d'écriture ou le ``RedisEngine`` n'arrivant pas à se connecter à Redis, le moteur
se repliera sur le moteur 'noop' ``NullEngine`` et déclenchera une erreur qui sera
loggée. Cela permet d'éviter que l'application lance une exception qui ne sera pas
interceptée à cause d'une erreur de cache.

Vous pouvez configurer vos configurations de Cache pour se replier sur une configuration
spécifique en utilisant la clé de configuration ``fallback``::

Cache::config('redis', [
'className' => 'Redis',
'duration' => '+1 hours',
'prefix' => 'cake_redis_',
'host' => '127.0.0.1',
'port' => 6379,
'fallback' => 'default',
]);

Si le serveur Redis tombait en erreur de manière inattendue, l'écriture dans le
cache avec la configuration ``redis`` se repliera sur la configuration ``default``.
Si l'écriture dans la configuration ``default`` échouait *elle aussi*, le moteur
se replierait à nouveau sur un autre 'fallback', ici le ``NullEngine``, et
empêcherait l'application de lancer une exception.

.. versionadded:: 3.5.0
Les fallbacks pour moteur de cache ont été ajoutés.

Suppression de Configuration de Cache
-------------------------------------

Expand Down
8 changes: 6 additions & 2 deletions fr/development/routing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -726,7 +726,11 @@ un scope de prefix::

Le code ci-dessus devrait créer une route similaire à
``/admin/debug_kit/:controller``. Elle devrait avoir les éléments de route
``prefix`` et ``plugin`` définis.
``prefix`` et ``plugin`` définis. Référez-vous à la section :ref:`plugin-routes`
pour avoir plus d'informations sur comment construire des routes de plugin.

Créer des Liens vers des Routes de Plugins
------------------------------------------

Vous pouvez créer des liens qui pointent vers un plugin, en ajoutant la clé
``plugin`` au tableau de l'URL::
Expand All @@ -744,7 +748,7 @@ souhaitez créer un lien qui n'a pas de plugin, vous pouvez faire ceci::
['plugin' => null, 'controller' => 'Users', 'action' => 'profile']
);

En définissant ``plugin => null``, vous dites au Router que vous souhaitez
En définissant ``'plugin' => null``, vous dites au Router que vous souhaitez
créer un lien qui n'appartient pas à un plugin.

Routing Favorisant le SEO
Expand Down
80 changes: 51 additions & 29 deletions fr/plugins.rst
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,57 @@ re-générer votre autoloader une fois que vous avez créé votre plugin:

php composer.phar dumpautoload

.. _plugin-routes:

Routes de Plugins
=================

Les plugins peuvent contenir des fichiers de routes contenant leurs propres routes.
Chaque plugin contient un fichier **config/routes.php**. Ce fichier de routes
peut être chargé quand le plugin est ajouté ou dans le fichier de routes de l'application.
Pour créer les routes du plugin ContractManager, ajoutez le code suivant dans
**plugins/ContactManager/config/routes.php**::

<?php
use Cake\Routing\Route\DashedRoute;
use Cake\Routing\Router;

Router::plugin(
'ContactManager',
['path' => '/contact-manager'],
function ($routes) {
$routes->get('/contacts', ['controller' => 'Contacts']);
$routes->get('/contacts/:id', ['controller' => 'Contacts', 'action' => 'view']);
$routes->put('/contacts/:id', ['controller' => 'Contacts', 'action' => 'update']);
}
);

Le code ci-dessus connectera les routes par défaut de votre plugin. Vous pouvez
personnaliser ce fichier avec plus de routes plus tard.

Avant de pouvoir accéder à vos controllers, assuez-vous que le plugin est bien
chargé et que les routes du plugin le sont également. Dans votre fichier
**config/bootstrap.php**, ajoutez la ligne suivante::

Plugin::load('ContactManager', ['routes' => true]);

Vous pouvez également charger les routes du plugin dans la liste des routes de votre
application. Le faire de cette manière vous permet d'avoir plus de contrôle sur la manière
dont les routes de plugin sont chargées et vous permet d'englober les routes du plugin
dans des préfixes et des 'scopes' spécifiques::

Router::scope('/', function ($routes) {
// Connect other routes.
$routes->scope('/backend', function ($routes) {
$routes->loadPlugin('ContactManager');
});
});

Le code ci-dessus vous permettrait d'avoir des URLs de la forme ``/backend/contact_manager/contacts``.

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

Controllers du Plugin
=====================

Expand Down Expand Up @@ -332,35 +383,6 @@ Un ``AppController`` dédié à votre plugin peut contenir la logique commune à
tous les controllers de votre plugin, et n'est pas obligatoire si vous ne
souhaitez pas en utiliser.

Avant d'accéder à vos controllers, vous devrez vous assurez que le plugin est
chargé et que les routes du plugin sont chargées. Dans votre
**config/bootstrap.php**, ajoutez ce qui suit::

Plugin::load('ContactManager', ['routes' => true]);

Si vous utilisez ``Plugin::loadAll()``, assurez-vous que les routes sont
chargées::

Plugin::loadAll(['routes' => true]);

Ensuite créez les routes du plugin ContactManager. Mettez ce qui suit dans
**plugins/ContactManager/config/routes.php**::

<?php
use Cake\Routing\Route\DashedRoute;
use Cake\Routing\Router;

Router::plugin(
'ContactManager',
['path' => '/contact-manager'],
function ($routes) {
$routes->fallbacks(DashedRoute::class);
}
);

Ce qui est au-dessus connecte les routes par défaut pour votre plugin. Vous
pouvez personnaliser ce fichier avec des routes plus spécifiques plus tard.

Si vous souhaitez accéder à ce qu'on a fait avant, visitez
``/contact-manager/contacts``. Vous aurez une erreur "Missing Model"
parce que nous n'avons pas de model Contact encore défini.
Expand Down