Permalink
Browse files

Updating from symfony-docs (second part)

  • Loading branch information...
gregquat committed Nov 3, 2012
1 parent aeefeba commit 06abc7c7f4cfc46f5c579a36ac6559cd6ea66808
Showing with 1,233 additions and 198 deletions.
  1. +5 −0 CONTRIBUTING.md
  2. +3 −3 README.markdown
  3. +11 −11 book/doctrine.rst
  4. +23 −23 book/forms.rst
  5. +4 −4 book/propel.rst
  6. +13 −6 book/security.rst
  7. +6 −6 book/service_container.rst
  8. +4 −3 book/templating.rst
  9. +1 −1 book/testing.rst
  10. +1 −1 book/validation.rst
  11. +30 −0 components/config/definition.rst
  12. +1 −0 components/console/index.rst
  13. +73 −0 components/console/introduction.rst
  14. +50 −0 components/console/single_command_tool.rst
  15. +1 −1 components/dependency_injection/advanced.rst
  16. +6 −0 components/dependency_injection/compilation.rst
  17. +6 −6 components/dependency_injection/factories.rst
  18. +1 −0 components/dependency_injection/index.rst
  19. +2 −0 components/dependency_injection/introduction.rst
  20. +10 −10 components/dependency_injection/parentservices.rst
  21. +1 −1 components/dependency_injection/tags.rst
  22. +83 −0 components/dependency_injection/workflow.rst
  23. +2 −0 components/map.rst.inc
  24. +1 −0 contributing/community/index.rst
  25. +121 −0 contributing/community/releases.rst
  26. +2 −0 contributing/documentation/format.rst
  27. +2 −2 contributing/documentation/overview.rst
  28. +1 −0 contributing/map.rst.inc
  29. +1 −1 cookbook/bundles/best_practices.rst
  30. +2 −2 cookbook/configuration/external_parameters.rst
  31. +2 −2 cookbook/configuration/override_dir_structure.rst
  32. +77 −0 cookbook/console/generating_urls.rst
  33. +2 −1 cookbook/console/index.rst
  34. +17 −0 cookbook/controller/service.rst
  35. +16 −16 cookbook/doctrine/dbal.rst
  36. +1 −1 cookbook/doctrine/file_uploads.rst
  37. +55 −17 cookbook/doctrine/multiple_entity_managers.rst
  38. +310 −0 cookbook/form/create_form_type_extension.rst
  39. +2 −2 cookbook/form/form_collections.rst
  40. +94 −51 cookbook/form/form_customization.rst
  41. +1 −0 cookbook/form/index.rst
  42. +3 −0 cookbook/map.rst.inc
  43. +2 −2 cookbook/profiler/data_collector.rst
  44. +1 −1 cookbook/security/custom_provider.rst
  45. +1 −1 cookbook/security/securing_services.rst
  46. +1 −1 cookbook/service_container/scopes.rst
  47. +1 −1 cookbook/templating/global_variables.rst
  48. +2 −5 cookbook/templating/twig_extension.rst
  49. +44 −0 cookbook/testing/bootstrap.rst
  50. +2 −2 cookbook/testing/http_authentication.rst
  51. +1 −0 cookbook/testing/index.rst
  52. +4 −4 cookbook/web_services/php_soap_extension.rst
  53. BIN images/release-process.jpg
  54. +4 −4 reference/configuration/assetic.rst
  55. +3 −3 reference/configuration/doctrine.rst
  56. +25 −0 reference/configuration/security.rst
  57. +1 −1 reference/constraints/UserPassword.rst
  58. +81 −1 reference/forms/twig_reference.rst
  59. +10 −0 reference/forms/types/collection.rst
  60. +3 −1 reference/forms/types/entity.rst
View
@@ -0,0 +1,5 @@
+Contribution
+------------
+
+Nous adorons les contributeurs ! Pour plus d'informations sur ce que vous pouvez apporter
+à la documentation de Symfony, veuillez lire [Contribuer à la Documentation](http://symfony.com/fr/doc/current/contributing/documentation/overview.html)
View
@@ -7,9 +7,9 @@ Contribuer
----------
>**Note**
->A moins que vous documentiez une fonctionnalité qui est nouvelle dans
->Symfony 2.1, toutes les « pull requests » doivent être basées sur la
->branche **2.0**, **et non pas** sur la branche master.
+>A moins que vous ne documentiez une fonctionnalité qui est nouvelle dans
+> une sous-version de Symfony 2, toutes les « pull requests » doivent être basées sur la
+>branche **2.0**, **et non pas** sur la branche master ou la branche 2.1.
Nous adorons les contributeurs ! Pour plus d'informations sur la manière
dont vous pouvez contribuer à la documentation de Symfony, veuillez lire
View
@@ -69,11 +69,11 @@ habituellement placés dans le fichier ``app/config/parameters.yml`` :
doctrine:
dbal:
- driver: %database_driver%
- host: %database_host%
- dbname: %database_name%
- user: %database_user%
- password: %database_password%
+ driver: "%database_driver%"
+ host: "%database_host%"
+ dbname: "%database_name%"
+ user: "%database_user%"
+ password: "%database_password%"
En gardant ces paramètres de connexion dans un fichier séparé, vous pouvez
facilement garder différentes versions de ce fichier sur chaque serveur.
@@ -769,7 +769,7 @@ Pour ce faire, ajouter le nom de la classe dépôt à vos informations de mappin
use Doctrine\ORM\Mapping as ORM;
/**
- * @ORM\Entity(repositoryClass="Acme\StoreBundle\Repository\ProductRepository")
+ * @ORM\Entity(repositoryClass="Acme\StoreBundle\Entity\ProductRepository")
*/
class Product
{
@@ -781,7 +781,7 @@ Pour ce faire, ajouter le nom de la classe dépôt à vos informations de mappin
# src/Acme/StoreBundle/Resources/config/doctrine/Product.orm.yml
Acme\StoreBundle\Entity\Product:
type: entity
- repositoryClass: Acme\StoreBundle\Repository\ProductRepository
+ repositoryClass: Acme\StoreBundle\Entity\ProductRepository
# ...
.. code-block:: xml
@@ -791,7 +791,7 @@ Pour ce faire, ajouter le nom de la classe dépôt à vos informations de mappin
<doctrine-mapping>
<entity name="Acme\StoreBundle\Entity\Product"
- repository-class="Acme\StoreBundle\Repository\ProductRepository">
+ repository-class="Acme\StoreBundle\Entity\ProductRepository">
<!-- ... -->
</entity>
</doctrine-mapping>
@@ -809,8 +809,8 @@ ordre alphabétique.
.. code-block:: php
- // src/Acme/StoreBundle/Repository/ProductRepository.php
- namespace Acme\StoreBundle\Repository;
+ // src/Acme/StoreBundle/Entity/ProductRepository.php
+ namespace Acme\StoreBundle\Entity;
use Doctrine\ORM\EntityRepository;
@@ -1158,7 +1158,7 @@ une jointure dans la requête originale. Ajouter le code suivant à la classe
.. code-block:: php
- // src/Acme/StoreBundle/Repository/ProductRepository.php
+ // src/Acme/StoreBundle/Entity/ProductRepository.php
public function findOneByIdJoinedToCategory($id)
{
View
@@ -230,7 +230,7 @@ fonctionnalité suivante à votre contrôleur :
->add('dueDate', 'date')
->getForm();
- if ($request->getMethod() == 'POST') {
+ if ($request->isMethod('POST')) {
$form->bind($request);
if ($form->isValid()) {
@@ -471,7 +471,7 @@ Vous pouvez aussi définir une logique entière en utilisant une Closure :
'validation_groups' => function(FormInterface $form) {
$data = $form->getData();
if (Entity\Client::TYPE_PERSON == $data->getType()) {
- return array('person')
+ return array('person');
} else {
return array('company');
}
@@ -1185,29 +1185,29 @@ balise :
{# src/Acme/TaskBundle/Resources/views/Form/fields.html.twig #}
- {% block field_row %}
+ {% block form_row %}
{% spaceless %}
<div class="form_row">
{{ form_label(form) }}
{{ form_errors(form) }}
{{ form_widget(form) }}
</div>
{% endspaceless %}
- {% endblock field_row %}
+ {% endblock form_row %}
.. code-block:: html+php
- <!-- src/Acme/TaskBundle/Resources/views/Form/field_row.html.php -->
+ <!-- src/Acme/TaskBundle/Resources/views/Form/form_row.html.php -->
<div class="form_row">
<?php echo $view['form']->label($form, $label) ?>
<?php echo $view['form']->errors($form) ?>
<?php echo $view['form']->widget($form, $parameters) ?>
</div>
-Le fragment de formulaire ``field_row`` est utilisé pour rendre la plupart
+Le fragment de formulaire ``form_row`` est utilisé pour rendre la plupart
des champs via la fonction ``form_row``. Pour dire au composant formulaire
-d'utiliser votre nouveau fragment ``field_row`` defini ci-dessus, ajoutez
+d'utiliser votre nouveau fragment ``form_row`` defini ci-dessus, ajoutez
ce qui suit en haut du template qui rend le formulaire :
.. configuration-block:: php
@@ -1235,8 +1235,8 @@ ce qui suit en haut du template qui rend le formulaire :
La balise ``form_theme`` (dans Twig) « importe » les fragments définis dans le
template donné et les utilise lorsqu'il rend le formulaire. En d'autres termes,
quand la fonction ``form_row`` est appelée plus tard dans ce template, elle va
-utiliser le bloc ``field_row`` de votre thème personnalisé (à la place du bloc
-par défaut ``field_row`` qui est délivré avec Symfony).
+utiliser le bloc ``form_row`` de votre thème personnalisé (à la place du bloc
+par défaut ``form_row`` qui est délivré avec Symfony).
Votre thème personnalisé n'a pas besoin de surcharger tous les blocks. Lorsqu'il
affiche un block qui n'est pas surchargé par votre thème personnalisé, le moteur de
@@ -1288,10 +1288,10 @@ sont situés dans le répertoire `Resources/views/Form` du bundle du framework
Chaque nom de fragment suit le même pattern de base et est divisé en deux parties,
séparées par un unique underscore (``_``). Quelques exemples sont :
-* ``field_row`` - utilisé par ``form_row`` pour rendre la plupart des champs ;
+* ``form_row`` - utilisé par ``form_row`` pour rendre la plupart des champs ;
* ``textarea_widget`` - utilisé par ``form_widget`` pour rendre un champ de
type ``textarea`` ;
-* ``field_errors`` - utilisé par ``form_errors`` pour rendre les erreurs d'un champ.
+* ``form_errors`` - utilisé par ``form_errors`` pour rendre les erreurs d'un champ.
Chaque fragment suit le même pattern de base : ``type_part``. La partie ``type``
correspond au *type* du champ qui doit être rendu (par exemple : ``textarea``,
@@ -1300,13 +1300,13 @@ va être rendu (par exemple : ``label``, ``widget``, ``errors``, etc). Par défa
il y a 4 *parts* possibles d'un formulaire qui peuvent être rendues :
+-------------+-----------------------------------+------------------------------------------------------------+
-| ``label`` | (par exemple : ``field_label``) | rend le label du champ |
+| ``label`` | (par exemple : ``form_label``) | rend le label du champ |
+-------------+-----------------------------------+------------------------------------------------------------+
-| ``widget`` | (par exemple : ``field_widget``) | rend la représentation HTML du champ |
+| ``widget`` | (par exemple : ``form_widget``) | rend la représentation HTML du champ |
+-------------+-----------------------------------+------------------------------------------------------------+
-| ``errors`` | (par exemple : ``field_errors``) | rend les erreurs du champ |
+| ``errors`` | (par exemple : ``form_errors``) | rend les erreurs du champ |
+-------------+-----------------------------------+------------------------------------------------------------+
-| ``row`` | (par exemple : ``field_row``) | rend la ligne entière du champ (label, widget, et erreurs) |
+| ``row`` | (par exemple : ``form_row``) | rend la ligne entière du champ (label, widget, et erreurs) |
+-------------+-----------------------------------+------------------------------------------------------------+
.. note::
@@ -1328,16 +1328,16 @@ Dans certains cas, le fragment que vous voulez personnaliser sera absent.
Par exemple, il n'y a pas de fragment ``textarea_errors`` dans les thèmes
fournis par défaut par Symfony.
-La réponse est : via le fragment ``field_errors``. Quand Symfony rend les erreurs
+La réponse est : via le fragment ``form_errors``. Quand Symfony rend les erreurs
d'un champ de type textarea, il recherche en premier un fragment ``textarea_errors``
-avant de se replier sur le fragment de secours ``field_errors``. Chaque type de
+avant de se replier sur le fragment de secours ``form_errors``. Chaque type de
champ a un type *parent* (le type parent de ``textarea`` est ``field``), et
Symfony l'utilise si le fragment de base n'existe pas.
Donc, afin de réécrire les erreurs pour les champs ``textarea`` *seulement*, copiez
-le fragment ``field_errors``, renommez-le en ``textarea_errors`` et personnalisez-le.
+le fragment ``form_errors``, renommez-le en ``textarea_errors`` et personnalisez-le.
Pour réécrire le rendu d'erreur par défaut pour *tous* les champs, copiez et personnalisez
-le fragment ``field_errors`` directement.
+le fragment ``form_errors`` directement.
.. tip::
@@ -1413,9 +1413,9 @@ maintenant utilisés globalement pour définir le rendu de formulaire en sortie.
{% form_theme form _self %}
{# effectue la personnalisation du fragment de formulaire #}
- {% block field_row %}
+ {% block form_row %}
{# personnalisez le rendu en sortie de la ligne du champ #}
- {% endblock field_row %}
+ {% endblock form_row %}
{% block content %}
{# ... #}
@@ -1574,7 +1574,7 @@ un tableau des données soumises. C'est en fait très facile :
->add('message', 'textarea')
->getForm();
- if ($request->getMethod() == 'POST') {
+ if ($request->isMethod('POST')) {
$form->bind($request);
// les données sont un tableau avec les clés "name", "email", et "message"
@@ -1711,6 +1711,6 @@ En savoir plus grâce au Cookbook
.. _`Composant Formulaire Symfony2`: https://github.com/symfony/Form
.. _`DateTime`: http://php.net/manual/en/class.datetime.php
.. _`Twig Bridge`: https://github.com/symfony/symfony/tree/master/src/Symfony/Bridge/Twig
-.. _`form_div_layout.html.twig`: https://github.com/symfony/symfony/blob/master/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig
+.. _`form_div_layout.html.twig`: https://github.com/symfony/symfony/blob/2.1/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig
.. _`Cross-site request forgery`: http://en.wikipedia.org/wiki/Cross-site_request_forgery
.. _`voir sur GitHub`: https://github.com/symfony/symfony/tree/master/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form
View
@@ -54,10 +54,10 @@ généralement configurées dans un fichier ``app/config/parameters.yml`` :
propel:
dbal:
- driver: %database_driver%
- user: %database_user%
- password: %database_password%
- dsn: %database_driver%:host=%database_host%;dbname=%database_name%;charset=%database_charset%
+ driver: "%database_driver%"
+ user: "%database_user%"
+ password: "%database_password%"
+ dsn: "%database_driver%:host=%database_host%;dbname=%database_name%;charset=%database_charset%"
Maintenant que Propel connaît votre base de données, Symfony2 peut créer cette dernière
pour vous :
View
@@ -1185,6 +1185,9 @@ en base64. En d'autres termes, le mot de passe a été très fortement obscurci
qu'il puisse être décodé (c'est-à-dire que vous ne pouvez pas retrouver le mot
de passe depuis le mot de passe haché).
+.. versionadded:: 2.2
+ Depuis Symfony 2.2 vous pouvez également utiliser l'encodeur de mot de passe PBKDF2.
+
Si vous avez une sorte de formulaire d'enregistrement pour les utilisateurs, vous devez pouvoir
générer un mot de passe haché pour pouvoir le sauvegarder. Peu importe l'algorithme que vous
avez configuré pour votre objet User, le mot de passe haché peut toujours être déterminé de
@@ -1257,8 +1260,9 @@ la base de données? C'est possible en créant un fournisseur qui lie les 2 four
chain_provider:
providers: [in_memory, user_db]
in_memory:
- users:
- foo: { password: test }
+ memory:
+ users:
+ foo: { password: test }
user_db:
entity: { class: Acme\UserBundle\Entity\User, property: username }
@@ -1271,7 +1275,9 @@ la base de données? C'est possible en créant un fournisseur qui lie les 2 four
<provider>user_db</provider>
</provider>
<provider name="in_memory">
- <user name="foo" password="test" />
+ <memory>
+ <user name="foo" password="test" />
+ </memory>
</provider>
<provider name="user_db">
<entity class="Acme\UserBundle\Entity\User" property="username" />
@@ -1287,9 +1293,10 @@ la base de données? C'est possible en créant un fournisseur qui lie les 2 four
'providers' => array('in_memory', 'user_db'),
),
'in_memory' => array(
- 'users' => array(
- 'foo' => array('password' => 'test'),
- ),
+ 'memory' => array(
+ 'users' => array(
+ 'foo' => array('password' => 'test'),
+ ),
),
'user_db' => array(
'entity' => array('class' => 'Acme\UserBundle\Entity\User', 'property' => 'username'),
View
@@ -188,7 +188,7 @@ simple. Les paramètres rendent les définitions de services plus organisées et
services:
my_mailer:
- class: %my_mailer.class%
+ class: "%my_mailer.class%"
arguments: [%my_mailer.transport%]
.. code-block:: xml
@@ -359,7 +359,7 @@ ou ``Resources/config`` n'existent pas, créez-les.
services:
my_mailer:
- class: %my_mailer.class%
+ class: "%my_mailer.class%"
arguments: [%my_mailer.transport%]
.. code-block:: xml
@@ -597,7 +597,7 @@ le conteneur de services nous donne une option beaucoup plus attrayante :
my_mailer:
# ...
newsletter_manager:
- class: %newsletter_manager.class%
+ class: "%newsletter_manager.class%"
arguments: [@my_mailer]
.. code-block:: xml
@@ -686,7 +686,7 @@ L'injection de la dépendance par la méthode setter a juste besoin d'un changem
my_mailer:
# ...
newsletter_manager:
- class: %newsletter_manager.class%
+ class: "%newsletter_manager.class%"
calls:
- [ setMailer, [ @my_mailer ] ]
@@ -751,7 +751,7 @@ elle existe et ne rien faire si ce n'est pas le cas :
services:
newsletter_manager:
- class: %newsletter_manager.class%
+ class: "%newsletter_manager.class%"
arguments: [@?my_mailer]
.. code-block:: xml
@@ -854,7 +854,7 @@ Configurer le conteneur de services est facile :
services:
newsletter_manager:
- class: %newsletter_manager.class%
+ class: "%newsletter_manager.class%"
arguments: [@mailer, @templating]
.. code-block:: xml
View
@@ -133,15 +133,16 @@ avec Twig et PHP.
designers.
Twig peut aussi faire des choses que PHP ne pourrait pas faire, comme le contrôle
- d'espaces blancs, le bac à sable et l'inclusion de fonctions et de filtres personnalisés
- qui n'affectent que les templates. Twig contient de petites fonctionnalités qui rendent
+ d'espaces blancs, le bac à sable, l'échappement de caractères automatique et
+ contecxtuel et l'inclusion de fonctions et de filtres personnalisés qui n'affectent
+ que les templates. Twig contient de petites fonctionnalités qui rendent
l'écriture de template plus facile et plus concise. Prenez l'exemple suivant, il
combine une boucle avec l'instruction logique ``if`` :
.. code-block:: html+jinja
<ul>
- {% for user in users %}
+ {% for user in users if user.active %}
<li>{{ user.username }}</li>
{% else %}
<li>Aucun utilisateur trouvé.</li>
View
@@ -857,7 +857,7 @@ En savoir plus
* :doc:`/cookbook/testing/http_authentication`
* :doc:`/cookbook/testing/insulating_clients`
* :doc:`/cookbook/testing/profiling`
-
+* :doc:`/cookbook/testing/bootstrap`
.. _`DemoControllerTest`: https://github.com/symfony/symfony-standard/blob/master/src/Acme/DemoBundle/Tests/Controller/DemoControllerTest.php
.. _`$_SERVER`: http://php.net/manual/en/reserved.variables.server.php
View
@@ -227,7 +227,7 @@ au code suivant::
$author = new Author();
$form = $this->createForm(new AuthorType(), $author);
- if ($request->getMethod() == 'POST') {
+ if ($request->isMethod('POST')) {
$form->bind($request);
if ($form->isValid()) {
Oops, something went wrong.

0 comments on commit 06abc7c

Please sign in to comment.