From d372c8ce9759350f6e73394fea5715e4c8f49e5e Mon Sep 17 00:00:00 2001 From: Yves P Date: Mon, 10 Jul 2017 19:36:37 +0200 Subject: [PATCH 1/3] [fr] Follows #5025 --- en/plugins.rst | 2 +- fr/development/routing.rst | 8 +++- fr/plugins.rst | 80 ++++++++++++++++++++++++-------------- 3 files changed, 58 insertions(+), 32 deletions(-) diff --git a/en/plugins.rst b/en/plugins.rst index 3a9f1a102f..0f2ee7cdda 100644 --- a/en/plugins.rst +++ b/en/plugins.rst @@ -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**:: 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 diff --git a/fr/plugins.rst b/fr/plugins.rst index 58f25c8472..deaa00ea12 100755 --- a/fr/plugins.rst +++ b/fr/plugins.rst @@ -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 route 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**:: + + '/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és 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 ===================== @@ -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**:: - - '/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. From c29b019d4e644e8e4f7f6e5ad491cd3f3b690e1b Mon Sep 17 00:00:00 2001 From: Yves P Date: Mon, 10 Jul 2017 19:53:53 +0200 Subject: [PATCH 2/3] [fr] Follows #5051 --- fr/appendices/3-5-migration-guide.rst | 4 +++- fr/core-libraries/caching.rst | 33 +++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/fr/appendices/3-5-migration-guide.rst b/fr/appendices/3-5-migration-guide.rst index c14493c72e..a7ef7e9f3c 100644 --- a/fr/appendices/3-5-migration-guide.rst +++ b/fr/appendices/3-5-migration-guide.rst @@ -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 configuration de cache. Core ---- diff --git a/fr/core-libraries/caching.rst b/fr/core-libraries/caching.rst index 84eccf88f4..ef9bc0bff8 100644 --- a/fr/core-libraries/caching.rst +++ b/fr/core-libraries/caching.rst @@ -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 par exemple 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 ------------------------------------- From d14c11b4a2fc29ac71011b714db044e14f4db77e Mon Sep 17 00:00:00 2001 From: Yves P Date: Mon, 10 Jul 2017 20:53:31 +0200 Subject: [PATCH 3/3] [fr] Fix after review --- fr/appendices/3-5-migration-guide.rst | 2 +- fr/core-libraries/caching.rst | 2 +- fr/plugins.rst | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/fr/appendices/3-5-migration-guide.rst b/fr/appendices/3-5-migration-guide.rst index a7ef7e9f3c..882e95564d 100644 --- a/fr/appendices/3-5-migration-guide.rst +++ b/fr/appendices/3-5-migration-guide.rst @@ -143,7 +143,7 @@ Cache qui permet de définir une configuration de cache sur laquelle se rabattre si 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 configuration de cache. + de 'fallbacks' pour vos configurations de cache. Core ---- diff --git a/fr/core-libraries/caching.rst b/fr/core-libraries/caching.rst index ef9bc0bff8..efe65fb15d 100644 --- a/fr/core-libraries/caching.rst +++ b/fr/core-libraries/caching.rst @@ -158,7 +158,7 @@ Configurer un Fallback de Cache ------------------------------- Dans le cas où un moteur de cache n'est pas disponible, comme par exemple le -``FileEngine`` essayant par exemple d'écrire dans un dossier sans les droits +``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 diff --git a/fr/plugins.rst b/fr/plugins.rst index deaa00ea12..2690baae6d 100755 --- a/fr/plugins.rst +++ b/fr/plugins.rst @@ -297,7 +297,7 @@ re-générer votre autoloader une fois que vous avez créé votre plugin: Routes de Plugins ================= -Les plugins peuvent contenir des fichiers de route contenant leurs propres routes. +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 @@ -328,7 +328,7 @@ chargé et que les routes du plugin le sont également. Dans votre fichier 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és et vous permet d'englober les routes du plugin +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) {