From 184478802d516c5cc9bccacaf6df0821c76046f2 Mon Sep 17 00:00:00 2001 From: Yves P Date: Sat, 29 Jul 2017 18:49:16 +0200 Subject: [PATCH 1/6] [fr] Follows #5121 --- fr/appendices/3-5-migration-guide.rst | 3 +++ fr/development/routing.rst | 12 +++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/fr/appendices/3-5-migration-guide.rst b/fr/appendices/3-5-migration-guide.rst index 16a8cab665..edc14cac02 100644 --- a/fr/appendices/3-5-migration-guide.rst +++ b/fr/appendices/3-5-migration-guide.rst @@ -77,6 +77,9 @@ par des méthodes ``getX()`` et ``setX()`` : ``setInvalidField()``, maintenant ``getInvalidField()``) ``Cake\ORM\Table`` * ``validator()`` +``Cake\Routing\RouteBuilder`` + * ``extensions()`` + * ``routeClass()`` ``Cake\Routing\RouteCollection`` * ``extensions()`` ``Cake\TestSuite\TestFixture`` diff --git a/fr/development/routing.rst b/fr/development/routing.rst index e3a9bad2ad..dbcda57b8e 100644 --- a/fr/development/routing.rst +++ b/fr/development/routing.rst @@ -316,7 +316,8 @@ l'exemple ci-dessus peut être réécrit en:: // Crée un builder avec une classe de Route différente. $routes->scope('/', function ($routes) { - $routes->routeClass(DashedRoute::class); + + $routes->setRouteClass(DashedRoute::class); $routes->connect('/:controller/:id', ['action' => 'view']) ->setPatterns(['id' => '[0-9]+']); @@ -856,7 +857,7 @@ Pour restreindre les extensions à un *scope* spécifique, vous pouvez les défi en utilisant la méthode :php:meth:`Cake\\Routing\\RouteBuilder::extensions()`:: Router::scope('/', function ($routes) { - $routes->extensions(['json', 'xml']); + $routes->setExtensions(['json', 'xml']); // ... }); @@ -880,7 +881,7 @@ souhaitez créer une URL comme ``/page/title-of-page.html`` vous devriez créer un scope comme ceci:: Router::scope('/page', function ($routes) { - $routes->extensions(['json', 'xml', 'html']); + $routes->setExtensions(['json', 'xml', 'html']); $routes->connect( '/:title', ['controller' => 'Pages', 'action' => 'view'] @@ -989,7 +990,7 @@ de données REST, nous ferions quelque chose comme ceci:: //Dans config/routes.php Router::scope('/', function ($routes) { - $routes->extensions(['json']); + $routes->setExtensions(['json']); $routes->resources('Recipes'); }); @@ -1397,7 +1398,8 @@ d'une route en utilisant l'option ``routeClass``:: // Ou en définissant la routeClass dans votre scope. $routes->scope('/', function ($routes) { - $routes->routeClass('SlugRoute'); + // Avant 3.5.0, utilisez `routeClass()` + $routes->setRouteClass('SlugRoute'); $routes->connect( '/:slug', ['controller' => 'Articles', 'action' => 'view'] From 5f1c043309957e1c2f778da35aa83950ca12baba Mon Sep 17 00:00:00 2001 From: Yves P Date: Sat, 29 Jul 2017 18:51:50 +0200 Subject: [PATCH 2/6] [fr] Follows #5124 --- fr/appendices/3-5-migration-guide.rst | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/fr/appendices/3-5-migration-guide.rst b/fr/appendices/3-5-migration-guide.rst index edc14cac02..294ec7d855 100644 --- a/fr/appendices/3-5-migration-guide.rst +++ b/fr/appendices/3-5-migration-guide.rst @@ -27,6 +27,12 @@ version 4.0.0, à partir de laquelle ils seront supprimés. ``Cake\Database\TableSchemaAwareInterface`` à la place. * ``Cake\Console\ShellDispatcher`` est dépréciée. Vous devez mettre à jour vos Applications pour qu'elles utilisent ``Cake\Console\CommandRunner`` à la place. +* ``Cake\Database\Schema\TableSchema::column()`` est dépréciée. Utilisez + ``Cake\Database\Schema\TableSchema::getColumn()`` à la place. +* ``Cake\Database\Schema\TableSchema::constraint()`` est dépréciée. Utilisez + ``Cake\Database\Schema\TableSchema::getConstraint()`` à la place. +* ``Cake\Database\Schema\TableSchema::index()`` est dépréciée. Utilisez + ``Cake\Database\Schema\TableSchema::getIndex()`` à la place. Dépréciation des Méthodes Get / Set combinées --------------------------------------------- @@ -58,8 +64,11 @@ par des méthodes ``getX()`` et ``setX()`` : ``Cake\Datasource\ModelAwareTrait`` * ``modelType()`` ``Cake\Database\Query`` - * ``valueBinder()`` est maintenant ``getValueBinder()`` + * la partie "getter" de ``valueBinder()`` (maintenant ``getValueBinder()``) +``Cake\Database\Schema\TableSchema`` + * ``columnType()`` ``Cake\Datasource\QueryTrait`` + * la partie "getter" de ``eagerLoaded()`` (maintenant ``isEagerLoaded()``) * ``eagerLoaded()`` (maintenant ``isEagerLoaded()``) ``Cake\Event\EventDispatcherTrait`` * ``eventManager()`` From dfa913b9451b11b20c57c42cafca745cb93b3a3c Mon Sep 17 00:00:00 2001 From: Yves P Date: Sat, 29 Jul 2017 18:53:43 +0200 Subject: [PATCH 3/6] [fr] Follows #5128 --- fr/appendices/3-5-migration-guide.rst | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/fr/appendices/3-5-migration-guide.rst b/fr/appendices/3-5-migration-guide.rst index 294ec7d855..9440695560 100644 --- a/fr/appendices/3-5-migration-guide.rst +++ b/fr/appendices/3-5-migration-guide.rst @@ -57,7 +57,9 @@ par des méthodes ``getX()`` et ``setX()`` : * ``outputAs()`` ``Cake\Database\Connection`` * ``logger()`` -``Cake\Datasource\TypedResultTrait`` +``Cake\Database\TypedResultInterface`` + * ``returnType()`` +``Cake\Database\TypedResultTrait`` * ``returnType()`` ``Cake\Database\Log\LoggingStatement`` * ``logger()`` @@ -70,6 +72,8 @@ par des méthodes ``getX()`` et ``setX()`` : ``Cake\Datasource\QueryTrait`` * la partie "getter" de ``eagerLoaded()`` (maintenant ``isEagerLoaded()``) * ``eagerLoaded()`` (maintenant ``isEagerLoaded()``) +``Cake\Event\EventDispatcherInterface`` + * ``eventManager()`` ``Cake\Event\EventDispatcherTrait`` * ``eventManager()`` ``Cake\Error\Debugger`` @@ -79,6 +83,8 @@ par des méthodes ``getX()`` et ``setX()`` : ``Cake\I18n\I18n`` * ``locale()`` * ``translator()`` +``Cake\ORM\Association\BelongsToMany`` + * ``sort()`` ``Cake\ORM\LocatorAwareTrait`` * ``tableLocator()`` ``Cake\ORM\EntityTrait`` From e68888d78dc6306fba71a2b43c2e3903e8a2f968 Mon Sep 17 00:00:00 2001 From: Yves P Date: Sun, 30 Jul 2017 14:58:09 +0200 Subject: [PATCH 4/6] [fr] Follows #5126 & #5127 --- en/appendices/3-5-migration-guide.rst | 1 - fr/appendices/3-5-migration-guide.rst | 13 +++++ fr/core-libraries/collections.rst | 77 +++++++++++++++++++------- fr/development/configuration.rst | 80 ++++++++++++++------------- 4 files changed, 110 insertions(+), 61 deletions(-) diff --git a/en/appendices/3-5-migration-guide.rst b/en/appendices/3-5-migration-guide.rst index f9670cc731..30c1845e3b 100644 --- a/en/appendices/3-5-migration-guide.rst +++ b/en/appendices/3-5-migration-guide.rst @@ -194,7 +194,6 @@ Collection * ``Cake\Collection\Collection::avg()`` was added. * ``Cake\Collection\Collection::median()`` was added. - Core ---- diff --git a/fr/appendices/3-5-migration-guide.rst b/fr/appendices/3-5-migration-guide.rst index 9440695560..3f053b9043 100644 --- a/fr/appendices/3-5-migration-guide.rst +++ b/fr/appendices/3-5-migration-guide.rst @@ -183,6 +183,19 @@ 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. +Support de dotenv au squelette d'Application +-------------------------------------------- + +Le squelette d'application possède maintenant une intégration "dotenv", facilitant +l'utilisation de variables d'environnement pour configurer votre application. +Référez-vous à la section :ref:`environment-variables` pour plus d'informations. + +Collection +---------- + +* ``Cake\Collection\Collection::avg()`` a été ajoutée. +* ``Cake\Collection\Collection::median()`` a été ajoutée. + Core ---- diff --git a/fr/core-libraries/collections.rst b/fr/core-libraries/collections.rst index 380b2f98b8..f70761bd57 100644 --- a/fr/core-libraries/collections.rst +++ b/fr/core-libraries/collections.rst @@ -55,27 +55,27 @@ Liste des Méthodes .. table:: :class: docutils internal-toc - +-----------------------+---------------------------+----------------------+---------------------+ - | :php:meth:`append` | :php:meth:`buffered` | :php:meth:`combine` | :php:meth:`compile` | - +-----------------------+---------------------------+----------------------+---------------------+ - | :php:meth:`contains` | :php:meth:`countBy` | :php:meth:`chunk` | :php:meth:`each` | - +-----------------------+---------------------------+----------------------+---------------------+ - | :php:meth:`every` | :php:meth:`extract` | :php:meth:`filter` | :php:meth:`first` | - +-----------------------+---------------------------+----------------------+---------------------+ - | :php:meth:`groupBy` | :php:meth:`indexBy` | :php:meth:`insert` | :php:meth:`isEmpty` | - +-----------------------+---------------------------+----------------------+---------------------+ - | :php:meth:`last` | :php:meth:`listNested` | :php:meth:`map` | :php:meth:`match` | - +-----------------------+---------------------------+----------------------+---------------------+ - | :php:meth:`max` | :php:meth:`min` | :php:meth:`nest` | :php:meth:`reduce` | - +-----------------------+---------------------------+----------------------+---------------------+ - | :php:meth:`reject` | :php:meth:`sample` | :php:meth:`shuffle` | :php:meth:`skip` | - +-----------------------+---------------------------+----------------------+---------------------+ - | :php:meth:`some` | :php:meth:`sortBy` | :php:meth:`stopWhen` | :php:meth:`sumOf` | - +-----------------------+---------------------------+----------------------+---------------------+ - | :php:meth:`take` | :php:meth:`through` | :php:meth:`unfold` | :php:meth:`zip` | - +-----------------------+---------------------------+----------------------+---------------------+ - | :php:meth:`transpose` | :php:meth:`chunkWithKeys` | | | - +-----------------------+---------------------------+----------------------+---------------------+ + +---------------------------------------------------+----------------------+------------------------+ + | :php:meth:`append` | :php:meth:`avg` | :php:meth:`buffered` | :php:meth:`combine` | + +---------------------------+-----------------------+----------------------+------------------------+ + | :php:meth:`compile` | :php:meth:`contains` | :php:meth:`countBy` | :php:meth:`chunk` | + +---------------------------+-----------------------+----------------------+------------------------+ + | :php:meth:`chunkWithKeys` | :php:meth:`each` | :php:meth:`every` | :php:meth:`extract` | + +---------------------------+-----------------------+----------------------+------------------------+ + | :php:meth:`filter` | :php:meth:`first` | :php:meth:`groupBy` | :php:meth:`indexBy` | + +---------------------------+-----------------------+----------------------+------------------------+ + | :php:meth:`insert` | :php:meth:`isEmpty` | :php:meth:`last` | :php:meth:`listNested` | + +---------------------------+-----------------------+----------------------+------------------------+ + | :php:meth:`map` | :php:meth:`match` | :php:meth:`max` | :php:meth:`median` | + +---------------------------+-----------------------+----------------------+------------------------+ + | :php:meth:`min` | :php:meth:`nest` | :php:meth:`reduce` | :php:meth:`reject` | + +---------------------------+-----------------------+----------------------+------------------------+ + | :php:meth:`sample` | :php:meth:`shuffle` | :php:meth:`skip` | :php:meth:`some` | + +---------------------------+-----------------------+----------------------+------------------------+ + | :php:meth:`sortBy` | :php:meth:`stopWhen` | :php:meth:`sumOf` | :php:meth:`take` | + +---------------------------+-----------------------+----------------------+------------------------+ + | :php:meth:`through` | :php:meth:`transpose` | :php:meth:`unfold` | :php:meth:`zip` | + +---------------------------+-----------------------+----------------------+------------------------+ Faire une Itération =================== @@ -483,6 +483,41 @@ les éléments:: $sumOfDadAges = $collection->sumOf('dad.age'); +.. php:method:: avg($matcher = null) + +Calcule la moyenne des éléments de la collection. Vous pouvez passer, en +option, un "path" à matcher ou une fonction pour extraire les valeurs pour +lesquelles vous souhaitez générer la moyenne:: + + $items = [ + ['invoice' => ['total' => 100]], + ['invoice' => ['total' => 200]], + ]; + + // Average: 150 + $average = (new Collection($items))->avg('invoice.total'); + +.. versionadded:: 3.5.0 + +.. php:method:: median($matcher = null) + +Calcule la valeur médianne d'un jeu d'élément. Vous pouvez passer, en +option, un "path" à matcher ou une fonction pour extraire les valeurs pour +lesquelles vous souhaitez calculer la valeur moyenne:: + + $items = [ + ['invoice' => ['total' => 400]], + ['invoice' => ['total' => 500]], + ['invoice' => ['total' => 100]], + ['invoice' => ['total' => 333]], + ['invoice' => ['total' => 200]], + ]; + + // Median: 333 + $median = (new Collection($items))->median('invoice.total'); + +.. versionadded:: 3.5.0 + Grouper et Compter ------------------ diff --git a/fr/development/configuration.rst b/fr/development/configuration.rst index 4a61b4f238..598e054c1e 100755 --- a/fr/development/configuration.rst +++ b/fr/development/configuration.rst @@ -231,6 +231,47 @@ Configuration de Inflection Regardez :ref:`inflection-configuration` pour plus d'informations. +.. _environment-variables: + +Variables d'Environnement +========================= + +Beaucoup de fournisseur de cloud, comme Heroku, vous permettent de définir des +variables pour les données de configuration. Vous pouvez configurer CakePHP +via des variables d'environnement à la manière `12factor app `_. +Les variables d'environnement permettent à votre application d'avoir besoin de moins +d'état, facilitant la gestion de votre application lors de déploiements sur des +plusieurs environnements. + +Comme vous pouvez le voir dans votre fichier **app.php**, la fonction ``env()`` +est utilisée pour lire des données de configuration depuis l'environnement et +construire la configuration de l'application. +CakePHP utilise les chaînes :term:`DSN` pour les configurations de bases de données, +des logs, des transports d'emails et du cache, vous permettant de faire varier les +configurations d'un environnement à l'autre. + +Lors d'un développement local, CakePHP utilise `dotenv +`_ pour faciliter le développement local +utilisant des variables d'environnement. Vous verrez un fichier ``config/.env.default`` +dans votre application. En copiant ce fichier dans ``config/.env`` et en modifiant les +valeurs, vous pourrez configurer votre application. + +Il est conseillé de ne pas commiter le fichier ``config/.env`` dans votre dépôt +et d'utiliser le fichier ``config/.env.default`` comme template avec des valeurs +par défaut (ou des placeholders) pour que les membres de votre équipe sachent +quelles variables sont utilisés et ce que chaque variable est censée contenir. + +Une fois vos variables d'environnement définies, vous pouvez utiliser la +fonction ``env()`` pour lire les données depuis l'environnement:: + + $debug = env('APP_DEBUG', false); + +La seconde valeur passée à la fonction ``env()`` est la valeur par défaut. Cette +valeur sera utilisée si aucune variable d'environnement n'existe pour la clé fournie. + +.. versionchanged:: 3.5.0 + Support de la librairie dotenv ajouté au squelette d'application. + Classe Configure ================ @@ -675,45 +716,6 @@ Charger les plugins et les événements dans ``Application::bootstrap()`` rend les :ref:`integration-testing` plus faciles car les événements et les routes seront ainsi à nouveau traités pour chaque méthode de test. -Variables d'environnement -========================= - -Certains fournisseurs d'architectures dans le cloud comme Heroku, vous -permettent de définir des variables d'environnement. En définissant des -variables d'environnement, vous pouvez configurer vos applications comme des -applications 12factor. Suivre les `instructions pour les applications 12factor `_ -vous permet de créer des applications "stateless" et donc de faciliter le -déploiement de votre application. -Cela signifie ainsi que si vous avez besoin par exemple de changer votre base -de données, vous avez juste besoin de changer la variable DATABASE_URL dans la -configuration sur votre fournisseur sans rien avoir à changer dans votre code. - -Comme vous pouvez le voir dans le fichier **app.php**, les variables suivantes -sont concernés : - -- ``DEBUG`` (``0`` or ``1``) -- ``APP_ENCODING`` (ex: UTF-8) -- ``APP_DEFAULT_LOCALE`` (ex: ``en_US``) -- ``SECURITY_SALT`` -- ``CACHE_DEFAULT_URL`` (ex: ``File:///?prefix=myapp_&serialize=true&timeout=3600&path=../tmp/cache/``) -- ``CACHE_CAKECORE_URL`` (ex: ``File:///?prefix=myapp_cake_core_&serialize=true&timeout=3600&path=../tmp/cache/persistent/``) -- ``CACHE_CAKEMODEL_URL`` (ex: ``File:///?prefix=myapp_cake_model_&serialize=true&timeout=3600&path=../tmp/cache/models/``) -- ``EMAIL_TRANSPORT_DEFAULT_URL`` (ex: ``smtp://user:password@hostname:port?tls=null&client=null&timeout=30``) -- ``DATABASE_URL`` (ex: ``mysql://user:pass@db/my_app``) -- ``DATABASE_TEST_URL`` (ex: ``mysql://user:pass@db/test_my_app``) -- ``LOG_DEBUG_URL`` (ex: ``file:///?levels[]=notice&levels[]=info&levels[]=debug&file=debug&path=../logs/``) -- ``LOG_ERROR_URL`` (ex: ``file:///?levels[]=warning&levels[]=error&levels[]=critical&levels[]=alert&levels[]=emergency&file=error&path=../logs/``) - -Comme vous pouvez le voir dans ces exemples, nous définissons certaines options -de configuration à l'aide de chaînes :term:`DSN`. C'est le cas pour les bases -de données, les logs, le transport d'emails et les configurations du cache. - -Si certaines variables d'environnement ne sont pas définies dans votre environnement, -CakePHP utilisera les valeurs définies dans **app.php**. Vous pouvez utiliser -la `librairie php-dotenv `_ pour -utiliser les variables d'environnement dans vos développements en local. -Reportez-vous aux instructions dans le README pour plus d'informations. - Désactiver les tables génériques ================================ From b82a2baedb6d44405087fb74c07bc4a687de535d Mon Sep 17 00:00:00 2001 From: Yves P Date: Sun, 30 Jul 2017 15:04:04 +0200 Subject: [PATCH 5/6] [fr] Fix typos --- fr/core-libraries/collections.rst | 4 ++-- fr/development/configuration.rst | 19 ++++++++++--------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/fr/core-libraries/collections.rst b/fr/core-libraries/collections.rst index f70761bd57..7a1e6d4410 100644 --- a/fr/core-libraries/collections.rst +++ b/fr/core-libraries/collections.rst @@ -494,7 +494,7 @@ lesquelles vous souhaitez générer la moyenne:: ['invoice' => ['total' => 200]], ]; - // Average: 150 + // Moyenne : 150 $average = (new Collection($items))->avg('invoice.total'); .. versionadded:: 3.5.0 @@ -513,7 +513,7 @@ lesquelles vous souhaitez calculer la valeur moyenne:: ['invoice' => ['total' => 200]], ]; - // Median: 333 + // Valeur médiane : 333 $median = (new Collection($items))->median('invoice.total'); .. versionadded:: 3.5.0 diff --git a/fr/development/configuration.rst b/fr/development/configuration.rst index 598e054c1e..9ac2f9ebe1 100755 --- a/fr/development/configuration.rst +++ b/fr/development/configuration.rst @@ -236,30 +236,30 @@ Regardez :ref:`inflection-configuration` pour plus d'informations. Variables d'Environnement ========================= -Beaucoup de fournisseur de cloud, comme Heroku, vous permettent de définir des +Beaucoup de fournisseurs de cloud, comme Heroku, vous permettent de définir des variables pour les données de configuration. Vous pouvez configurer CakePHP via des variables d'environnement à la manière `12factor app `_. Les variables d'environnement permettent à votre application d'avoir besoin de moins -d'état, facilitant la gestion de votre application lors de déploiements sur des +d'états, facilitant la gestion de votre application lors de déploiements sur plusieurs environnements. Comme vous pouvez le voir dans votre fichier **app.php**, la fonction ``env()`` est utilisée pour lire des données de configuration depuis l'environnement et construire la configuration de l'application. -CakePHP utilise les chaînes :term:`DSN` pour les configurations de bases de données, +CakePHP utilise les chaînes :term:`DSN` pour les configurations des bases de données, des logs, des transports d'emails et du cache, vous permettant de faire varier les configurations d'un environnement à l'autre. Lors d'un développement local, CakePHP utilise `dotenv -`_ pour faciliter le développement local -utilisant des variables d'environnement. Vous verrez un fichier ``config/.env.default`` -dans votre application. En copiant ce fichier dans ``config/.env`` et en modifiant les -valeurs, vous pourrez configurer votre application. +`_ pour faciliter l'utilisation des variables +d'environnement. Vous verrez un fichier ``config/.env.default`` dans votre application. +En copiant ce fichier dans ``config/.env`` et en modifiant les valeurs, vous pourrez +configurer votre application. Il est conseillé de ne pas commiter le fichier ``config/.env`` dans votre dépôt et d'utiliser le fichier ``config/.env.default`` comme template avec des valeurs par défaut (ou des placeholders) pour que les membres de votre équipe sachent -quelles variables sont utilisés et ce que chaque variable est censée contenir. +quelles variables sont utilisées et ce que chaque variable est censée contenir. Une fois vos variables d'environnement définies, vous pouvez utiliser la fonction ``env()`` pour lire les données depuis l'environnement:: @@ -267,7 +267,8 @@ fonction ``env()`` pour lire les données depuis l'environnement:: $debug = env('APP_DEBUG', false); La seconde valeur passée à la fonction ``env()`` est la valeur par défaut. Cette -valeur sera utilisée si aucune variable d'environnement n'existe pour la clé fournie. +valeur sera utilisée si aucune variable d'environnement n'existe pas pour la clé +fournie. .. versionchanged:: 3.5.0 Support de la librairie dotenv ajouté au squelette d'application. From 65853c8421f9cc7e73c571e422f1784cdf2e8357 Mon Sep 17 00:00:00 2001 From: Yves P Date: Sun, 30 Jul 2017 16:17:34 +0200 Subject: [PATCH 6/6] [fr] Fix a copy / paste error --- 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 7a1e6d4410..736acaeab6 100644 --- a/fr/core-libraries/collections.rst +++ b/fr/core-libraries/collections.rst @@ -503,7 +503,7 @@ lesquelles vous souhaitez générer la moyenne:: Calcule la valeur médianne d'un jeu d'élément. Vous pouvez passer, en option, un "path" à matcher ou une fonction pour extraire les valeurs pour -lesquelles vous souhaitez calculer la valeur moyenne:: +lesquelles vous souhaitez calculer la valeur médianne:: $items = [ ['invoice' => ['total' => 400]],