From 26c7813e8dbc2f66379479473baaa24f2cd28416 Mon Sep 17 00:00:00 2001 From: WouterJ Date: Sat, 23 May 2015 10:48:16 +0200 Subject: [PATCH 01/23] [#4228] Moved requiring files to definitions --- components/dependency_injection/advanced.rst | 41 ------------------- .../dependency_injection/definitions.rst | 12 ++++++ 2 files changed, 12 insertions(+), 41 deletions(-) diff --git a/components/dependency_injection/advanced.rst b/components/dependency_injection/advanced.rst index 82263ca6e66..d333a38de74 100644 --- a/components/dependency_injection/advanced.rst +++ b/components/dependency_injection/advanced.rst @@ -182,44 +182,3 @@ service by asking for the ``bar`` service like this:: foo: class: Example\Foo bar: "@foo" - - -Requiring Files ---------------- - -There might be use cases when you need to include another file just before -the service itself gets loaded. To do so, you can use the ``file`` directive. - -.. configuration-block:: - - .. code-block:: yaml - - services: - foo: - class: Example\Foo\Bar - file: "%kernel.root_dir%/src/path/to/file/foo.php" - - .. code-block:: xml - - - - - - - %kernel.root_dir%/src/path/to/file/foo.php - - - - - .. code-block:: php - - use Symfony\Component\DependencyInjection\Definition; - - $definition = new Definition('Example\Foo\Bar'); - $definition->setFile('%kernel.root_dir%/src/path/to/file/foo.php'); - $container->setDefinition('foo', $definition); - -Notice that Symfony will internally call the PHP statement ``require_once``, -which means that your file will be included only once per request. diff --git a/components/dependency_injection/definitions.rst b/components/dependency_injection/definitions.rst index c9d1e72cb3d..9c9574c7b9b 100644 --- a/components/dependency_injection/definitions.rst +++ b/components/dependency_injection/definitions.rst @@ -125,3 +125,15 @@ You can also replace any existing method calls with an array of new ones with:: the container is compiled. Once the container is compiled you cannot manipulate service definitions further. To learn more about compiling the container see :doc:`/components/dependency_injection/compilation`. + +Requiring Files +~~~~~~~~~~~~~~~ + +There might be use cases when you need to include another file just before +the service itself gets loaded. To do so, you can use the +:method:`Symfony\\Component\\DependencyInjection\\Definition::setFile` method:: + + $definition->setFile('/src/path/to/file/foo.php'); + +Notice that Symfony will internally call the PHP statement ``require_once``, +which means that your file will be included only once per request. From 69475d0c22c88c7b1991f8db64ddc8f2177ce3af Mon Sep 17 00:00:00 2001 From: Ana Cicconi Date: Sat, 23 May 2015 11:44:46 +0200 Subject: [PATCH 02/23] Adding a caution to the getUploadRootDir() method | Doc fix? | yes | New docs? | no | Applies to | all | Fixed tickets | #4177 [Doctrine] Security issue in handling file uploads with Doctrine --- cookbook/doctrine/file_uploads.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cookbook/doctrine/file_uploads.rst b/cookbook/doctrine/file_uploads.rst index f9a2d7bb4d9..3929f262621 100644 --- a/cookbook/doctrine/file_uploads.rst +++ b/cookbook/doctrine/file_uploads.rst @@ -99,6 +99,13 @@ file. If you're using annotations to specify your validation rules (as shown in this example), be sure that you've enabled validation by annotation (see :ref:`validation configuration `). + +.. caution:: + + If you use the getUploadRootDir() method, be aware that this will save + the file inside the document root, which can be accessed by everyone. + Consider placing it out of the document root and adding custom viewing + logic when you need to secure the files. To handle the actual file upload in the form, use a "virtual" ``file`` field. For example, if you're building your form directly in a controller, it might From a80d669ece91f9d4c77923fab3ddb9940c7eedc8 Mon Sep 17 00:00:00 2001 From: Ana Cicconi Date: Sat, 23 May 2015 11:52:13 +0200 Subject: [PATCH 03/23] Add a caution to the getUploadRootDir - correction --- cookbook/doctrine/file_uploads.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cookbook/doctrine/file_uploads.rst b/cookbook/doctrine/file_uploads.rst index 3929f262621..ce9659cc46a 100644 --- a/cookbook/doctrine/file_uploads.rst +++ b/cookbook/doctrine/file_uploads.rst @@ -102,7 +102,7 @@ file. .. caution:: - If you use the getUploadRootDir() method, be aware that this will save + If you use the ``getUploadRootDir()`` method, be aware that this will save the file inside the document root, which can be accessed by everyone. Consider placing it out of the document root and adding custom viewing logic when you need to secure the files. From 2616acd8f32cd9ea55ae29aab2c95f7a42a473ff Mon Sep 17 00:00:00 2001 From: Ana Cicconi Date: Sat, 23 May 2015 12:18:18 +0200 Subject: [PATCH 04/23] Constraints - empty strings and null values --- reference/constraints/Length.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/reference/constraints/Length.rst b/reference/constraints/Length.rst index 034024e17b5..82d30261827 100644 --- a/reference/constraints/Length.rst +++ b/reference/constraints/Length.rst @@ -115,6 +115,10 @@ min This required option is the "min" length value. Validation will fail if the given value's length is **less** than this min value. +It is important to notice that NULL values and empty strings are considered +valid no matter if the constraint required a minimum length. Validators are +triggered only if the value is not blank. + max ~~~ From 62ce22064c5c82831d12d6695647444340c01031 Mon Sep 17 00:00:00 2001 From: Javier Eguiluz Date: Tue, 26 May 2015 12:02:50 +0200 Subject: [PATCH 05/23] Use the reserved domains example.com and example.org --- contributing/documentation/standards.rst | 3 +++ reference/configuration/framework.rst | 12 ++++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/contributing/documentation/standards.rst b/contributing/documentation/standards.rst index 3210ee65927..84b1ee98d42 100644 --- a/contributing/documentation/standards.rst +++ b/contributing/documentation/standards.rst @@ -57,6 +57,8 @@ Code Examples Unless the example requires a custom bundle, make sure to always use the ``AppBundle`` bundle to store your code; * Use ``Acme`` when the code requires a vendor name; +* Use ``example.com`` as the domain of sample URLs and ``example.org`` when a + second domain is required. Both domains are `reserved by the IANA`_. * To avoid horizontal scrolling on code blocks, we prefer to break a line correctly if it crosses the 85th character; * When you fold one or more lines of code, place ``...`` in a comment at the point @@ -174,6 +176,7 @@ In addition, documentation follows these rules: .. _`the Sphinx documentation`: http://sphinx-doc.org/rest.html#source-code .. _`Twig Coding Standards`: http://twig.sensiolabs.org/doc/coding_standards.html +.. _`reserved by the IANA`: http://www.iana.org/domains/reserved .. _`American English`: http://en.wikipedia.org/wiki/American_English .. _`American English Oxford Dictionary`: http://www.oxforddictionaries.com/definition/american_english/ .. _`headings and titles`: http://en.wikipedia.org/wiki/Letter_case#Headings_and_publication_titles diff --git a/reference/configuration/framework.rst b/reference/configuration/framework.rst index 2aa107344a4..4a011dd388e 100644 --- a/reference/configuration/framework.rst +++ b/reference/configuration/framework.rst @@ -283,7 +283,7 @@ respond and the user will receive a 500 response. # app/config/config.yml framework: - trusted_hosts: ['acme.com', 'acme.org'] + trusted_hosts: ['example.com', 'example.org'] .. code-block:: xml @@ -296,8 +296,8 @@ respond and the user will receive a 500 response. http://symfony.com/schema/dic/symfony http://symfony.com/schema/dic/symfony/symfony-1.0.xsd"> - acme.com - acme.org + example.com + example.org @@ -306,17 +306,17 @@ respond and the user will receive a 500 response. // app/config/config.php $container->loadFromExtension('framework', array( - 'trusted_hosts' => array('acme.com', 'acme.org'), + 'trusted_hosts' => array('example.com', 'example.org'), )); -Hosts can also be configured using regular expressions (e.g. ``.*\.?acme.com$``), +Hosts can also be configured using regular expressions (e.g. ``.*\.?example.com$``), which make it easier to respond to any subdomain. In addition, you can also set the trusted hosts in the front controller using the ``Request::setTrustedHosts()`` method:: // web/app.php - Request::setTrustedHosts(array('.*\.?acme.com$', '.*\.?acme.org$')); + Request::setTrustedHosts(array('.*\.?example.com$', '.*\.?example.org$')); The default value for this option is an empty array, meaning that the application can respond to any given host. From 3931faf1232dabaa428b27b21686cd99c1d7c635 Mon Sep 17 00:00:00 2001 From: Javier Eguiluz Date: Tue, 26 May 2015 12:33:22 +0200 Subject: [PATCH 06/23] Updated the list of reserved domains and the URL reference --- contributing/documentation/standards.rst | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/contributing/documentation/standards.rst b/contributing/documentation/standards.rst index 84b1ee98d42..8aa289c36da 100644 --- a/contributing/documentation/standards.rst +++ b/contributing/documentation/standards.rst @@ -57,8 +57,9 @@ Code Examples Unless the example requires a custom bundle, make sure to always use the ``AppBundle`` bundle to store your code; * Use ``Acme`` when the code requires a vendor name; -* Use ``example.com`` as the domain of sample URLs and ``example.org`` when a - second domain is required. Both domains are `reserved by the IANA`_. +* Use ``example.com`` as the domain of sample URLs and ``example.org`` and + ``example.net`` when additional domains are required. All of these domains are + `reserved by the IANA`_. * To avoid horizontal scrolling on code blocks, we prefer to break a line correctly if it crosses the 85th character; * When you fold one or more lines of code, place ``...`` in a comment at the point @@ -176,7 +177,7 @@ In addition, documentation follows these rules: .. _`the Sphinx documentation`: http://sphinx-doc.org/rest.html#source-code .. _`Twig Coding Standards`: http://twig.sensiolabs.org/doc/coding_standards.html -.. _`reserved by the IANA`: http://www.iana.org/domains/reserved +.. _`reserved by the IANA`: http://tools.ietf.org/html/rfc2606#section-3 .. _`American English`: http://en.wikipedia.org/wiki/American_English .. _`American English Oxford Dictionary`: http://www.oxforddictionaries.com/definition/american_english/ .. _`headings and titles`: http://en.wikipedia.org/wiki/Letter_case#Headings_and_publication_titles From 8254761eab95870a735d8281ab1b615fbfd66372 Mon Sep 17 00:00:00 2001 From: Javier Eguiluz Date: Thu, 19 Mar 2015 12:43:57 +0100 Subject: [PATCH 07/23] Reviewed the Bundles cookbook articles --- cookbook/bundles/best_practices.rst | 43 ++++++++---------------- cookbook/bundles/configuration.rst | 8 ++--- cookbook/bundles/extension.rst | 4 +-- cookbook/bundles/inheritance.rst | 24 +++++++------- cookbook/bundles/installation.rst | 51 ++++++++++++++++++++++------- 5 files changed, 71 insertions(+), 59 deletions(-) diff --git a/cookbook/bundles/best_practices.rst b/cookbook/bundles/best_practices.rst index 321411673d7..6967cb19a45 100644 --- a/cookbook/bundles/best_practices.rst +++ b/cookbook/bundles/best_practices.rst @@ -4,7 +4,7 @@ Best Practices for Reusable Bundles =================================== -There are 2 types of bundles: +There are two types of bundles: * Application-specific bundles: only used to build your application; * Reusable bundles: meant to be shared across many projects. @@ -13,12 +13,8 @@ This article is all about how to structure your **reusable bundles** so that they're easy to configure and extend. Many of these recommendations do not apply to application bundles because you'll want to keep those as simple as possible. For application bundles, just follow the practices shown throughout -the book and cookbook. - -.. seealso:: - - The best practices for application-specific bundles are discussed in - :doc:`/best_practices/introduction`. +the :doc:`book `, the :doc:`cookbook ` and the +:doc:`best practices ` book. .. index:: pair: Bundle; Naming conventions @@ -38,7 +34,7 @@ bundle class name must follow these simple rules: * Use only alphanumeric characters and underscores; * Use a CamelCased name; -* Use a descriptive and short name (no more than 2 words); +* Use a descriptive and short name (no more than two words); * Prefix the name with the concatenation of the vendor (and optionally the category namespaces); * Suffix the name with ``Bundle``. @@ -112,7 +108,7 @@ The following files are mandatory: structure to work. The depth of sub-directories should be kept to the minimal for most used -classes and files (2 levels at a maximum). More levels can be defined for +classes and files (two levels at a maximum). More levels can be defined for non-strategic, less-used files. The bundle directory is read-only. If you need to write temporary files, store @@ -158,7 +154,7 @@ instance, a ``HelloController`` controller is stored in ``Bundle/HelloBundle/Controller/HelloController.php`` and the fully qualified class name is ``Bundle\HelloBundle\Controller\HelloController``. -All classes and files must follow the Symfony coding :doc:`standards `. +All classes and files must follow the :doc:`Symfony coding standards `. Some classes should be seen as facades and should be as short as possible, like Commands, Helpers, Listeners, and Controllers. @@ -181,7 +177,7 @@ Tests ----- A bundle should come with a test suite written with PHPUnit and stored under -the ``Tests/`` directory. Tests should follow the following principles: +the ``Tests/`` directory. Tests should follow these principles: * The test suite must be executable with a simple ``phpunit`` command run from a sample application; @@ -190,13 +186,14 @@ the ``Tests/`` directory. Tests should follow the following principles: * The tests should cover at least 95% of the code base. .. note:: + A test suite must not contain ``AllTests.php`` scripts, but must rely on the existence of a ``phpunit.xml.dist`` file. Documentation ------------- -All classes and functions must come with full PHPDoc. +All classes and functions must be fully documented using `phpDocumentor`_ tags. Extensive documentation should also be provided in the :doc:`reStructuredText ` format, under @@ -306,9 +303,6 @@ following standardized instructions in your ``README.md`` file. .. _`installation chapter`: https://getcomposer.org/doc/00-intro.md -This template assumes that your bundle is in its ``1.x`` version. If not, change -the ``"~1"`` installation version accordingly (``"~2"``, ``"~3"``, etc.) - Optionally, you can add more installation steps (*Step 3*, *Step 4*, etc.) to explain other required installation tasks, such as registering routes or dumping assets. @@ -330,7 +324,8 @@ Translation Files ----------------- If a bundle provides message translations, they must be defined in the XLIFF -format; the domain should be named after the bundle name (``bundle.hello``). +format; the :ref:`translation domain ` should be named +after the bundle name (``bundle.hello``). A bundle must not override existing messages from another bundle. @@ -369,27 +364,17 @@ The end user can provide values in any configuration file: // app/config/config.php $container->setParameter('acme_hello.email.from', 'fabien@example.com'); - .. code-block:: ini - - ; app/config/config.ini - [parameters] - acme_hello.email.from = fabien@example.com - Retrieve the configuration parameters in your code from the container:: $container->getParameter('acme_hello.email.from'); Even if this mechanism is simple enough, you are highly encouraged to use the -semantic configuration described in the cookbook. +:doc:`semantic bundle configuration ` instead. .. note:: If you are defining services, they should also be prefixed with the bundle alias. -Learn more from the Cookbook ----------------------------- - -* :doc:`/cookbook/bundles/extension` - -.. _standards: http://www.php-fig.org/psr/psr-4/ +.. _`standards`: http://www.php-fig.org/psr/psr-0/ +.. _`phpDocumentor`: http://www.phpdoc.org/ diff --git a/cookbook/bundles/configuration.rst b/cookbook/bundles/configuration.rst index a6505f481af..43c5242ed5c 100644 --- a/cookbook/bundles/configuration.rst +++ b/cookbook/bundles/configuration.rst @@ -6,13 +6,13 @@ How to Create Friendly Configuration for a Bundle ================================================= If you open your application configuration file (usually ``app/config/config.yml``), -you'll see a number of different configuration "namespaces", such as ``framework``, +you'll see a number of different configuration sections, such as ``framework``, ``twig`` and ``doctrine``. Each of these configures a specific bundle, allowing -you to configure things at a high level and then let the bundle make all the +you to define options at a high level and then let the bundle make all the low-level, complex changes based on your settings. -For example, the following tells the FrameworkBundle to enable the form -integration, which involves the definition of quite a few services as well +For example, the following configuration tells the FrameworkBundle to enable the +form integration, which involves the definition of quite a few services as well as integration of other related components: .. configuration-block:: diff --git a/cookbook/bundles/extension.rst b/cookbook/bundles/extension.rst index 78092a3f3fd..1cc271212e2 100644 --- a/cookbook/bundles/extension.rst +++ b/cookbook/bundles/extension.rst @@ -6,7 +6,7 @@ How to Load Service Configuration inside a Bundle ================================================= In Symfony, you'll find yourself using many services. These services can be -registered in the `app/config` directory of your application. But when you +registered in the ``app/config/`` directory of your application. But when you want to decouple the bundle for use in other projects, you want to include the service configuration in the bundle itself. This article will teach you how to do that. @@ -15,7 +15,7 @@ Creating an Extension Class --------------------------- In order to load service configuration, you have to create a Dependency -Injection Extension for your bundle. This class has some conventions in order +Injection (DI) Extension for your bundle. This class has some conventions in order to be detected automatically. But you'll later see how you can change it to your own preferences. By default, the Extension has to comply with the following conventions: diff --git a/cookbook/bundles/inheritance.rst b/cookbook/bundles/inheritance.rst index 25c29da67fc..90457f54320 100644 --- a/cookbook/bundles/inheritance.rst +++ b/cookbook/bundles/inheritance.rst @@ -12,16 +12,16 @@ things like controllers, templates, and other files in a bundle's For example, suppose that you're installing the `FOSUserBundle`_, but you want to override its base ``layout.html.twig`` template, as well as one of -its controllers. Suppose also that you have your own AcmeUserBundle -where you want the overridden files to live. Start by registering the FOSUserBundle -as the "parent" of your bundle:: +its controllers. Suppose also that you have your own UserBundle where you want +the overridden files to live. Start by registering the FOSUserBundle as the +"parent" of your bundle:: - // src/Acme/UserBundle/AcmeUserBundle.php - namespace Acme\UserBundle; + // src/UserBundle/UserBundle.php + namespace UserBundle; use Symfony\Component\HttpKernel\Bundle\Bundle; - class AcmeUserBundle extends Bundle + class UserBundle extends Bundle { public function getParent() { @@ -45,8 +45,8 @@ Suppose you want to add some functionality to the ``registerAction`` of a just create your own ``RegistrationController.php`` file, override the bundle's original method, and change its functionality:: - // src/Acme/UserBundle/Controller/RegistrationController.php - namespace Acme\UserBundle\Controller; + // src/UserBundle/Controller/RegistrationController.php + namespace UserBundle\Controller; use FOS\UserBundle\Controller\RegistrationController as BaseController; @@ -82,9 +82,9 @@ location as your parent bundle. For example, it's very common to need to override the FOSUserBundle's ``layout.html.twig`` template so that it uses your application's base layout. Since the file lives at ``Resources/views/layout.html.twig`` in the FOSUserBundle, -you can create your own file in the same location of AcmeUserBundle. -Symfony will ignore the file that lives inside the FOSUserBundle entirely, -and use your file instead. +you can create your own file in the same location of UserBundle. Symfony will +ignore the file that lives inside the FOSUserBundle entirely, and use your file +instead. The same goes for routing files and some other resources. @@ -92,7 +92,7 @@ The same goes for routing files and some other resources. The overriding of resources only works when you refer to resources with the ``@FOSUserBundle/Resources/config/routing/security.xml`` method. - If you refer to resources without using the @BundleName shortcut, they + If you refer to resources without using the ``@BundleName`` shortcut, they can't be overridden in this way. .. caution:: diff --git a/cookbook/bundles/installation.rst b/cookbook/bundles/installation.rst index c4ce4e7aab5..9759469505e 100644 --- a/cookbook/bundles/installation.rst +++ b/cookbook/bundles/installation.rst @@ -15,16 +15,16 @@ A) Add Composer Dependencies ---------------------------- Dependencies are managed with Composer, so if Composer is new to you, learn -some basics in `their documentation`_. This has 2 steps: +some basics in `their documentation`_. This involves two steps: 1) Find out the Name of the Bundle on Packagist ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The README for a bundle (e.g. `FOSUserBundle`_) usually tells you its name (e.g. ``friendsofsymfony/user-bundle``). If it doesn't, you can search for -the library on the `Packagist.org`_ site. +the bundle on the `Packagist.org`_ site. -.. note:: +.. tip:: Looking for bundles? Try searching at `KnpBundles.com`_: the unofficial archive of Symfony Bundles. @@ -39,9 +39,12 @@ Now that you know the package name, you can install it via Composer: $ composer require friendsofsymfony/user-bundle This will choose the best version for your project, add it to ``composer.json`` -and download the library into the ``vendor/`` directory. If you need a specific -version, add a ``:`` and the version right after the library name (see -`composer require`_). +and download its code into the ``vendor/`` directory. If you need a specific +version, include it as the second argument of the `composer require`_ command: + +.. code-block:: bash + + $ composer require friendsofsymfony/user-bundle "~2.0@dev" B) Enable the Bundle -------------------- @@ -68,22 +71,46 @@ The only thing you need to do now is register the bundle in ``AppKernel``:: } } +By default, Symfony bundles are registered in all the application +:doc:`execution environments `. If the bundle +is meant to be used only in the development or test environments, register it in +the section below:: + + // app/AppKernel.php + + // ... + class AppKernel extends Kernel + { + // ... + + public function registerBundles() + { + $bundles = array( + // ..., + ); + + if (in_array($this->getEnvironment(), array('dev', 'test'))) { + $bundles[] = new FOS\UserBundle\FOSUserBundle(); + } + + // ... + } + } + C) Configure the Bundle ----------------------- It's pretty common for a bundle to need some additional setup or configuration in ``app/config/config.yml``. The bundle's documentation will tell you about -the configuration, but you can also get a reference of the bundle's config -via the ``config:dump-reference`` command. - -For instance, in order to look the reference of the ``assetic`` config you -can use this: +the configuration, but you can also get a reference of the bundle's configuration +via the ``config:dump-reference`` command: .. code-block:: bash $ app/console config:dump-reference AsseticBundle -or this: +Instead of the full bundle name, you can also pass the short name used as the root +of the bundle's configuration: .. code-block:: bash From 3dd40b2f8bd72c277f1781d53393dead3ed7fbc3 Mon Sep 17 00:00:00 2001 From: Javier Eguiluz Date: Thu, 19 Mar 2015 16:13:00 +0100 Subject: [PATCH 08/23] Fixed an internal link reference --- cookbook/bundles/installation.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cookbook/bundles/installation.rst b/cookbook/bundles/installation.rst index 9759469505e..265976fb411 100644 --- a/cookbook/bundles/installation.rst +++ b/cookbook/bundles/installation.rst @@ -72,7 +72,7 @@ The only thing you need to do now is register the bundle in ``AppKernel``:: } By default, Symfony bundles are registered in all the application -:doc:`execution environments `. If the bundle +:doc:`execution environments `. If the bundle is meant to be used only in the development or test environments, register it in the section below:: From c0637b6bd7937674b8db035448181ccf8ae2e7a6 Mon Sep 17 00:00:00 2001 From: Javier Eguiluz Date: Wed, 25 Mar 2015 09:04:59 +0100 Subject: [PATCH 09/23] Implemented the changes suggested by reviewers --- cookbook/bundles/best_practices.rst | 6 ++++++ cookbook/bundles/installation.rst | 9 +++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/cookbook/bundles/best_practices.rst b/cookbook/bundles/best_practices.rst index 6967cb19a45..97a86c58659 100644 --- a/cookbook/bundles/best_practices.rst +++ b/cookbook/bundles/best_practices.rst @@ -303,6 +303,12 @@ following standardized instructions in your ``README.md`` file. .. _`installation chapter`: https://getcomposer.org/doc/00-intro.md +The example above assumes that you are installing the latest stable version of +the bundle, where you don't have to provide the package version number +(e.g. ``composer require friendsofsymfony/user-bundle``). If the installation +instructions refer to some past bundle version or to some inestable version, +include the version constraint (e.g. ``composer require friendsofsymfony/user-bundle "~2.0@dev"``). + Optionally, you can add more installation steps (*Step 3*, *Step 4*, etc.) to explain other required installation tasks, such as registering routes or dumping assets. diff --git a/cookbook/bundles/installation.rst b/cookbook/bundles/installation.rst index 265976fb411..bbe70cee3a1 100644 --- a/cookbook/bundles/installation.rst +++ b/cookbook/bundles/installation.rst @@ -63,7 +63,7 @@ The only thing you need to do now is register the bundle in ``AppKernel``:: public function registerBundles() { $bundles = array( - // ..., + // ... new FOS\UserBundle\FOSUserBundle(), ); @@ -73,8 +73,9 @@ The only thing you need to do now is register the bundle in ``AppKernel``:: By default, Symfony bundles are registered in all the application :doc:`execution environments `. If the bundle -is meant to be used only in the development or test environments, register it in -the section below:: +is meant to be used only in some environment, register it within an ``if`` statement, +like the following example, where the FOSUserBundle is only enabled for the +``dev`` and ``test`` environments:: // app/AppKernel.php @@ -86,7 +87,7 @@ the section below:: public function registerBundles() { $bundles = array( - // ..., + // ... ); if (in_array($this->getEnvironment(), array('dev', 'test'))) { From 88612157c6a27e6c5191e9ab9fb6f2ca77e57e2d Mon Sep 17 00:00:00 2001 From: Javier Eguiluz Date: Wed, 25 Mar 2015 09:09:03 +0100 Subject: [PATCH 10/23] Replace phpDocumentor by the standard PHPDoc --- cookbook/bundles/best_practices.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cookbook/bundles/best_practices.rst b/cookbook/bundles/best_practices.rst index 97a86c58659..74891d54365 100644 --- a/cookbook/bundles/best_practices.rst +++ b/cookbook/bundles/best_practices.rst @@ -193,7 +193,7 @@ the ``Tests/`` directory. Tests should follow these principles: Documentation ------------- -All classes and functions must be fully documented using `phpDocumentor`_ tags. +All classes and functions must be fully documented using `PHPDoc`_ tags. Extensive documentation should also be provided in the :doc:`reStructuredText ` format, under @@ -383,4 +383,4 @@ Even if this mechanism is simple enough, you are highly encouraged to use the alias. .. _`standards`: http://www.php-fig.org/psr/psr-0/ -.. _`phpDocumentor`: http://www.phpdoc.org/ +.. _`PHPDoc`: https://en.wikipedia.org/wiki/PHPDoc From 8008ac678324f906eb3b131d68b58d3e3683d6b9 Mon Sep 17 00:00:00 2001 From: Javier Eguiluz Date: Fri, 29 May 2015 09:19:34 +0200 Subject: [PATCH 11/23] Implemented the suggestions made by Christian and Wouter --- cookbook/bundles/installation.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cookbook/bundles/installation.rst b/cookbook/bundles/installation.rst index bbe70cee3a1..aac75a53ee1 100644 --- a/cookbook/bundles/installation.rst +++ b/cookbook/bundles/installation.rst @@ -44,7 +44,7 @@ version, include it as the second argument of the `composer require`_ command: .. code-block:: bash - $ composer require friendsofsymfony/user-bundle "~2.0@dev" + $ composer require friendsofsymfony/user-bundle "~2.0" B) Enable the Bundle -------------------- From 5a33e0eda9c0b744a35e83a0dba384ad70b3ebce Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Sun, 31 May 2015 11:56:26 +0200 Subject: [PATCH 12/23] clarify bundle installation instructions --- cookbook/bundles/best_practices.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cookbook/bundles/best_practices.rst b/cookbook/bundles/best_practices.rst index 321411673d7..eb4cb9957cd 100644 --- a/cookbook/bundles/best_practices.rst +++ b/cookbook/bundles/best_practices.rst @@ -233,8 +233,8 @@ following standardized instructions in your ``README.md`` file. Step 2: Enable the Bundle ------------------------- - Then, enable the bundle by adding the following line in the `app/AppKernel.php` - file of your project: + Then, enable the bundle by adding it to the list of registered bundles + in the `app/AppKernel.php` file of your project: ```php Date: Sat, 23 May 2015 11:17:41 +0200 Subject: [PATCH 13/23] [#4228] Move synthetic services to its own recipe --- components/dependency_injection/advanced.rst | 55 ------------------- components/dependency_injection/index.rst | 1 + .../synthetic_services.rst | 50 +++++++++++++++++ components/map.rst.inc | 1 + 4 files changed, 52 insertions(+), 55 deletions(-) create mode 100644 components/dependency_injection/synthetic_services.rst diff --git a/components/dependency_injection/advanced.rst b/components/dependency_injection/advanced.rst index d333a38de74..0ea6b296a67 100644 --- a/components/dependency_injection/advanced.rst +++ b/components/dependency_injection/advanced.rst @@ -73,61 +73,6 @@ below) to access this service (via the alias). Services are by default public. -Synthetic Services ------------------- - -Synthetic services are services that are injected into the container instead -of being created by the container. - -For example, if you're using the :doc:`HttpKernel ` -component with the DependencyInjection component, then the ``request`` -service is injected in the -:method:`ContainerAwareHttpKernel::handle() ` -method when entering the request :doc:`scope `. -The class does not exist when there is no request, so it can't be included in -the container configuration. Also, the service should be different for every -subrequest in the application. - -To create a synthetic service, set ``synthetic`` to ``true``: - -.. configuration-block:: - - .. code-block:: yaml - - services: - request: - synthetic: true - - .. code-block:: xml - - - - - - - - - - .. code-block:: php - - use Symfony\Component\DependencyInjection\Definition; - - $container - ->setDefinition('request', new Definition()) - ->setSynthetic(true); - -As you see, only the ``synthetic`` option is set. All other options are only used -to configure how a service is created by the container. As the service isn't -created by the container, these options are omitted. - -Now, you can inject the class by using -:method:`Container::set `:: - - // ... - $container->set('request', new MyRequest(...)); - Aliasing -------- diff --git a/components/dependency_injection/index.rst b/components/dependency_injection/index.rst index 4261a0a7854..dfa2e1ef54b 100644 --- a/components/dependency_injection/index.rst +++ b/components/dependency_injection/index.rst @@ -8,6 +8,7 @@ types parameters definitions + synthetic_services compilation tags factories diff --git a/components/dependency_injection/synthetic_services.rst b/components/dependency_injection/synthetic_services.rst new file mode 100644 index 00000000000..cbe32a8c60a --- /dev/null +++ b/components/dependency_injection/synthetic_services.rst @@ -0,0 +1,50 @@ +.. index:: + single: DependencyInjection; Synthetic Services + +How to Inject Instances into the Container +------------------------------------------ + +When using the container in your application, you sometimes need to inject an +instance instead of configuring the container to create a new instance. + +For instance, if you're using the :doc:`HttpKernel ` +component with the DependencyInjection component, then the ``kernel`` +service is injected into the container from within the ``Kernel`` class:: + + // ... + abstract class Kernel implements KernelInterface, TerminableInterface + { + // ... + protected function initializeContainer() + { + // ... + $this->container->set('kernel', $this); + + // ... + } + } + +The ``kernel`` service is called a synthetic service. This service has to be +configured in the container, so the container knows the service does exist +during compilation (otherwise, services depending on this ``kernel`` service +will get a "service does not exists" error). + +In order to do so, you have to use +:method:`Definition::setSynthetic() `:: + + use Symfony\Component\DependencyInjectino\Definition; + + // synthetic services don't specify a class + $kernelDefinition = new Definition(); + $kernelDefinition->setSynthetic(true); + + $container->setDefinition('your_service', $kernelDefinition); + +Now, you can inject the instance in the container using +:method:`Container::set() `:: + + $yourService = new YourObject(); + $container->set('your_service', $yourService); + +``$container->get('your_service')`` will now return the same instance as +``$yourService``. diff --git a/components/map.rst.inc b/components/map.rst.inc index a2039699b4b..38bf2e07748 100644 --- a/components/map.rst.inc +++ b/components/map.rst.inc @@ -39,6 +39,7 @@ * :doc:`/components/dependency_injection/types` * :doc:`/components/dependency_injection/parameters` * :doc:`/components/dependency_injection/definitions` + * :doc:`/components/dependency_injection/synthetic_services` * :doc:`/components/dependency_injection/compilation` * :doc:`/components/dependency_injection/tags` * :doc:`/components/dependency_injection/factories` From 73e98330c1e8b62ec501182a16157ca90647cc12 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Fri, 16 Jan 2015 16:37:18 +0100 Subject: [PATCH 14/23] [Components][ClassLoader] remove DebugClassLoader The `DebugClassLoader` has been moved to the Debug component with Symfony 2.4 and will be removed in 3.0 (see symfony/symfony#13203). --- components/class_loader/class_loader.rst | 3 +-- components/class_loader/debug_class_loader.rst | 3 --- components/class_loader/index.rst | 6 +++++- components/class_loader/introduction.rst | 14 ++++++++------ components/map.rst.inc | 1 - 5 files changed, 14 insertions(+), 13 deletions(-) diff --git a/components/class_loader/class_loader.rst b/components/class_loader/class_loader.rst index 246ee38a68a..1bef3f652d9 100644 --- a/components/class_loader/class_loader.rst +++ b/components/class_loader/class_loader.rst @@ -12,8 +12,7 @@ load all of your project's classes. You can use both the ``ApcClassLoader`` and the ``XcacheClassLoader`` to :doc:`cache ` a ``ClassLoader`` - instance or the ``DebugClassLoader`` to :doc:`debug ` - it. + instance. Usage ----- diff --git a/components/class_loader/debug_class_loader.rst b/components/class_loader/debug_class_loader.rst index 75bf66c707a..d41afe9d277 100644 --- a/components/class_loader/debug_class_loader.rst +++ b/components/class_loader/debug_class_loader.rst @@ -1,6 +1,3 @@ -.. index:: - single: ClassLoader; DebugClassLoader - Debugging a Class Loader ======================== diff --git a/components/class_loader/index.rst b/components/class_loader/index.rst index 9808f59c6d8..5215b57291d 100644 --- a/components/class_loader/index.rst +++ b/components/class_loader/index.rst @@ -9,5 +9,9 @@ ClassLoader psr4_class_loader map_class_loader cache_class_loader - debug_class_loader class_map_generator + +.. toctree:: + :hidden: + + debug_class_loader diff --git a/components/class_loader/introduction.rst b/components/class_loader/introduction.rst index 9db1e7f41fa..55ba19a3e53 100644 --- a/components/class_loader/introduction.rst +++ b/components/class_loader/introduction.rst @@ -23,12 +23,14 @@ the class. Symfony provides three autoloaders, which are able to load your class * :doc:`/components/class_loader/map_class_loader`: loads classes using a static map from class name to file path. -Additionally, the Symfony ClassLoader component ships with a set of wrapper -classes which can be used to add additional functionality on top of existing -autoloaders: - -* :doc:`/components/class_loader/cache_class_loader` -* :doc:`/components/class_loader/debug_class_loader` +Additionally, the Symfony ClassLoader component ships with a wrapper class +which makes it possible +:doc:`to cache the results of a class loader `. + +When using the :doc:`Debug component `, you +can also use a special :doc:`DebugClassLoader ` +that eases debugging by throwing more helpful exceptions when a class could +not be found by a class loader. Installation ------------ diff --git a/components/map.rst.inc b/components/map.rst.inc index 7b6ceae5db2..3d796fecade 100644 --- a/components/map.rst.inc +++ b/components/map.rst.inc @@ -7,7 +7,6 @@ * :doc:`/components/class_loader/psr4_class_loader` * :doc:`/components/class_loader/map_class_loader` * :doc:`/components/class_loader/cache_class_loader` - * :doc:`/components/class_loader/debug_class_loader` * :doc:`/components/class_loader/class_map_generator` * :doc:`/components/config/index` From ae3533813f02ab6c8e73ccc643269b2de93f5ec4 Mon Sep 17 00:00:00 2001 From: Ryan Weaver Date: Mon, 8 Jun 2015 21:19:23 -0400 Subject: [PATCH 15/23] [#5095] Fixing a typo and updating to a more realistic example --- cookbook/bundles/best_practices.rst | 2 +- cookbook/bundles/installation.rst | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cookbook/bundles/best_practices.rst b/cookbook/bundles/best_practices.rst index 74891d54365..be34df0a756 100644 --- a/cookbook/bundles/best_practices.rst +++ b/cookbook/bundles/best_practices.rst @@ -306,7 +306,7 @@ following standardized instructions in your ``README.md`` file. The example above assumes that you are installing the latest stable version of the bundle, where you don't have to provide the package version number (e.g. ``composer require friendsofsymfony/user-bundle``). If the installation -instructions refer to some past bundle version or to some inestable version, +instructions refer to some past bundle version or to some unstable version, include the version constraint (e.g. ``composer require friendsofsymfony/user-bundle "~2.0@dev"``). Optionally, you can add more installation steps (*Step 3*, *Step 4*, etc.) to diff --git a/cookbook/bundles/installation.rst b/cookbook/bundles/installation.rst index aac75a53ee1..638dcdf12f5 100644 --- a/cookbook/bundles/installation.rst +++ b/cookbook/bundles/installation.rst @@ -71,11 +71,11 @@ The only thing you need to do now is register the bundle in ``AppKernel``:: } } -By default, Symfony bundles are registered in all the application -:doc:`execution environments `. If the bundle -is meant to be used only in some environment, register it within an ``if`` statement, -like the following example, where the FOSUserBundle is only enabled for the -``dev`` and ``test`` environments:: +In a few rare cases, you may want a bundle to be *only* enabled in the development +:doc:`environment `. For example, +the DoctrineFixturesBundle helps load dummy data - something you probably +only want to do while developing. To only load this bundle in the ``dev`` +and ``test`` environments, register the bundle in this way:: // app/AppKernel.php @@ -91,7 +91,7 @@ like the following example, where the FOSUserBundle is only enabled for the ); if (in_array($this->getEnvironment(), array('dev', 'test'))) { - $bundles[] = new FOS\UserBundle\FOSUserBundle(); + $bundles[] = new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle(); } // ... From 963d0a6e9affa040d6e859b31f945e84ebb1c037 Mon Sep 17 00:00:00 2001 From: Javier Eguiluz Date: Tue, 9 Jun 2015 16:52:55 +0200 Subject: [PATCH 16/23] Added mentions to some popular (and useful) Symfony bundles --- book/security.rst | 8 +++++++- cookbook/assetic/asset_management.rst | 8 ++++++++ cookbook/assetic/jpeg_optimize.rst | 6 ++++++ cookbook/doctrine/file_uploads.rst | 8 ++++++++ cookbook/security/custom_authentication_provider.rst | 10 +++++++++- 5 files changed, 38 insertions(+), 2 deletions(-) diff --git a/book/security.rst b/book/security.rst index 2bf071c0cbe..b20ae745c5c 100644 --- a/book/security.rst +++ b/book/security.rst @@ -275,6 +275,11 @@ But who can you login as? Where do users come from? What other methods are supported? See the :doc:`Configuration Reference ` or :doc:`build your own `. +.. tip:: + + If your application logs in users via a third-party service such as Google, + Facebook or Twitter, check out the `HWIOAuthBundle`_ community bundle. + .. _security-user-providers: .. _where-do-users-come-from-user-providers: @@ -480,7 +485,7 @@ else, you'll want to encode their passwords. The best algorithm to use is - + @@ -1283,3 +1288,4 @@ Learn More from the Cookbook .. _`online tool`: https://www.dailycred.com/blog/12/bcrypt-calculator .. _`frameworkextrabundle documentation`: http://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/index.html +.. _`HWIOAuthBundle`: https://github.com/hwi/HWIOAuthBundle diff --git a/cookbook/assetic/asset_management.rst b/cookbook/assetic/asset_management.rst index 6db46608147..89c33321538 100644 --- a/cookbook/assetic/asset_management.rst +++ b/cookbook/assetic/asset_management.rst @@ -183,6 +183,12 @@ To include an image you can use the ``image`` tag. You can also use Assetic for image optimization. More information in :doc:`/cookbook/assetic/jpeg_optimize`. +.. tip:: + + Instead of using Assetic to include images, you may consider using the + `LiipImagineBundle`_ community bundle, which allows to compress and + manipulate images (rotate, resize, watermark, etc.) before serving them. + .. _cookbook-assetic-cssrewrite: Fixing CSS Paths with the ``cssrewrite`` Filter @@ -572,3 +578,5 @@ some isolated directory (e.g. ``/js/compiled``), to keep things organized: ) as $url): ?> + +.. _`LiipImagineBundle`: http://knpbundles.com/liip/LiipImagineBundle diff --git a/cookbook/assetic/jpeg_optimize.rst b/cookbook/assetic/jpeg_optimize.rst index d3aebeb9e94..3d2973fa773 100644 --- a/cookbook/assetic/jpeg_optimize.rst +++ b/cookbook/assetic/jpeg_optimize.rst @@ -250,4 +250,10 @@ file: ), )); +.. tip:: + + Instead of using Assetic and Jpegoptim, you can also compress and manipulate + images before serving them using the `LiipImagineBundle`_ community bundle. + .. _`Jpegoptim`: http://www.kokkonen.net/tjko/projects.html +.. _`LiipImagineBundle`: http://knpbundles.com/liip/LiipImagineBundle diff --git a/cookbook/doctrine/file_uploads.rst b/cookbook/doctrine/file_uploads.rst index f9a2d7bb4d9..22ce38521bb 100644 --- a/cookbook/doctrine/file_uploads.rst +++ b/cookbook/doctrine/file_uploads.rst @@ -4,6 +4,13 @@ How to Handle File Uploads with Doctrine ======================================== +.. note:: + + Instead of handling file uploading yourself, you may consider using the + `VichUploaderBundle`_ community bundle. This bundle provides all the common + operations (such as file renaming, saving and deleting) and it's tightly + integratd with Doctrine ORm, ODM, PHPCR ODM and Propel. + Handling file uploads with Doctrine entities is no different than handling any other file upload. In other words, you're free to move the file in your controller after handling a form submission. For examples of how to do this, @@ -557,3 +564,4 @@ order to remove the file. Before it's removed, you must store the file path from the database, you can safely delete the file (in ``PostRemove``). .. _`preUpdate`: http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html#preupdate +.. _`VichUploaderBundle`: https://github.com/dustin10/VichUploaderBundle diff --git a/cookbook/security/custom_authentication_provider.rst b/cookbook/security/custom_authentication_provider.rst index e91171a97ef..fb21870acaf 100644 --- a/cookbook/security/custom_authentication_provider.rst +++ b/cookbook/security/custom_authentication_provider.rst @@ -4,6 +4,13 @@ How to Create a custom Authentication Provider ============================================== +.. note:: + + If you want to authenticate users via OAuth using a third-party service + such as Google, Facebook or Twitter, there is no need to create your own + authentication provider. In those cases, use the `HWIOAuthBundle`_ community + bundle. + If you have read the chapter on :doc:`/book/security`, you understand the distinction Symfony makes between authentication and authorization in the implementation of security. This chapter discusses the core classes involved @@ -280,7 +287,7 @@ the ``PasswordDigest`` header value matches with the user's password. .. note:: - The comparsion of the expected and the provided digests uses a constant + The comparison of the expected and the provided digests uses a constant time comparison provided by the :method:`Symfony\\Component\\Security\\Core\\Util\\StringUtils::equals` method of the ``StringUtils`` class. It is used to mitigate possible @@ -615,6 +622,7 @@ set to any desirable value per firewall. The rest is up to you! Any relevant configuration items can be defined in the factory and consumed or passed to the other classes in the container. +.. _`HWIOAuthBundle`: https://github.com/hwi/HWIOAuthBundle .. _`WSSE`: http://www.xml.com/pub/a/2003/12/17/dive.html .. _`nonce`: http://en.wikipedia.org/wiki/Cryptographic_nonce .. _`timing attacks`: http://en.wikipedia.org/wiki/Timing_attack From bf4f3d641d3184f3f5bf60e22e27e216ac74e4e8 Mon Sep 17 00:00:00 2001 From: Javier Eguiluz Date: Tue, 9 Jun 2015 17:40:25 +0200 Subject: [PATCH 17/23] Link to the official repository of the bundle. --- cookbook/assetic/asset_management.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cookbook/assetic/asset_management.rst b/cookbook/assetic/asset_management.rst index 89c33321538..121a1e9ac46 100644 --- a/cookbook/assetic/asset_management.rst +++ b/cookbook/assetic/asset_management.rst @@ -579,4 +579,4 @@ some isolated directory (e.g. ``/js/compiled``), to keep things organized: -.. _`LiipImagineBundle`: http://knpbundles.com/liip/LiipImagineBundle +.. _`LiipImagineBundle`: https://github.com/liip/LiipImagineBundle From 73704338d0f844ed89db8a1f6e19639ea038d023 Mon Sep 17 00:00:00 2001 From: Javier Eguiluz Date: Tue, 9 Jun 2015 17:43:29 +0200 Subject: [PATCH 18/23] Fixed typos --- cookbook/doctrine/file_uploads.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cookbook/doctrine/file_uploads.rst b/cookbook/doctrine/file_uploads.rst index 22ce38521bb..e2a97c556f7 100644 --- a/cookbook/doctrine/file_uploads.rst +++ b/cookbook/doctrine/file_uploads.rst @@ -9,7 +9,7 @@ How to Handle File Uploads with Doctrine Instead of handling file uploading yourself, you may consider using the `VichUploaderBundle`_ community bundle. This bundle provides all the common operations (such as file renaming, saving and deleting) and it's tightly - integratd with Doctrine ORm, ODM, PHPCR ODM and Propel. + integrated with Doctrine ORM, MongoDB ODM, PHPCR ODM and Propel. Handling file uploads with Doctrine entities is no different than handling any other file upload. In other words, you're free to move the file in your From 9dc8b8f9b83957109ee034a09bec1a162fd5e685 Mon Sep 17 00:00:00 2001 From: Javier Eguiluz Date: Wed, 10 Jun 2015 09:40:35 +0200 Subject: [PATCH 19/23] Fixed a minor grammar issue --- book/security.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book/security.rst b/book/security.rst index b20ae745c5c..bb26ec180d7 100644 --- a/book/security.rst +++ b/book/security.rst @@ -277,7 +277,7 @@ But who can you login as? Where do users come from? .. tip:: - If your application logs in users via a third-party service such as Google, + If your application logs users in via a third-party service such as Google, Facebook or Twitter, check out the `HWIOAuthBundle`_ community bundle. .. _security-user-providers: From c98658cf0d0d5caa7632ada1488c34aa537f6f27 Mon Sep 17 00:00:00 2001 From: Sasha Matejic Date: Sun, 14 Jun 2015 21:59:12 +0200 Subject: [PATCH 20/23] Fix after install URL and new photo since AcmeDemoBundle is not part of 2.7 --- book/installation.rst | 3 ++- images/quick_tour/welcome.png | Bin 123539 -> 51365 bytes 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/book/installation.rst b/book/installation.rst index 57a5e6b913b..f0a1cd5cd92 100644 --- a/book/installation.rst +++ b/book/installation.rst @@ -169,7 +169,8 @@ browsing the project directory and executing this command: $ cd my_project_name/ $ php app/console server:run -Then, open your browser and access the ``http://localhost:8000`` URL to see the +Then, open your browser and access the ``http://localhost:8000/app/example`` +URL to see the Welcome page of Symfony: .. image:: /images/quick_tour/welcome.png diff --git a/images/quick_tour/welcome.png b/images/quick_tour/welcome.png index 75fce7f560fbdddf30662639f768b857205ffd88..1a9c527ff63f418f2da400dbdd73ce0f76831233 100644 GIT binary patch literal 51365 zcmeFabx>T*)-Q~c-~@L9K@wyjxI+jKLU4C?8Qg|JLU0f65Q2Mfhu{vub&%jXxDFrB zvG?S>_x^F~lY6T^sG_Rr-K%@;)k}W8dUq3|ASZ>1Mv4Xp2Zt&B;k^;%z&5m{CeAN4)hS9Np&IT^pzE3*M#+Cjz9^A^VjUO8-+&hNqz2Q;Z z;A;vK)0gD5mz=E2KB(D(qUXh>_ZJ$j3MR0J9gv z+x)75k2%wz&z@N^kWpyfDZEtkoiy{Al(+|3S!U<$<~k`gdYh171I7`=NrD0Vm`7llE2>Jyi^OTm9gi!Tw(wI}YK z$b1$SePd9RJhy)TlX;do1Vy!vlCMw^{+9-GWGV&G+p>txb7;I(JFkxSS&|vX2y1z8 z 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�n!V>FcVuz9^ZiTXYBuUIN1dL`mG-tOECb&J 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�t{;Ekcm%zrmtFe6lv5VlR~5_H39T8 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 bMR=!7lQVq_zuMCO0R1S+s>(D-nT7o?8i#E= From 695fe217656640d0e41545ca8f797017ae5e7508 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Dunglas?= Date: Fri, 29 May 2015 12:31:48 +0200 Subject: [PATCH 21/23] [PSR-7] Bridge documentation --- cookbook/index.rst | 1 + cookbook/map.rst.inc | 4 ++ cookbook/psr7.rst | 88 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 93 insertions(+) create mode 100644 cookbook/psr7.rst diff --git a/cookbook/index.rst b/cookbook/index.rst index 63f5dc08898..681d6dbe4c9 100644 --- a/cookbook/index.rst +++ b/cookbook/index.rst @@ -27,6 +27,7 @@ The Cookbook serializer service_container/index session/index + psr7 symfony1 templating/index testing/index diff --git a/cookbook/map.rst.inc b/cookbook/map.rst.inc index 4316f0de726..abbf7eface6 100644 --- a/cookbook/map.rst.inc +++ b/cookbook/map.rst.inc @@ -195,6 +195,10 @@ * (configuration) :doc:`/cookbook/configuration/pdo_session_storage` * :doc:`/cookbook/session/avoid_session_start` +* **PSR-7** + + * :doc:`/cookbook/psr7` + * **symfony1** * :doc:`/cookbook/symfony1` diff --git a/cookbook/psr7.rst b/cookbook/psr7.rst new file mode 100644 index 00000000000..ece2040850b --- /dev/null +++ b/cookbook/psr7.rst @@ -0,0 +1,88 @@ +.. index:: + single: PSR-7 + +The PSR-7 Bridge +================ + + The PSR-7 bridge converts :doc:`HttpFoundation ` + objects from and to objects implementing HTTP message interfaces defined + by the `PSR-7`_. + +Installation +------------ + +You can install the component in 2 different ways: + +* :doc:`Install it via Composer ` (``symfony/psr-http-message-bridge`` on `Packagist`_); +* Use the official Git repository (https://github.com/symfony/psr-http-message-bridge). + +The bridge also needs a PSR-7 implementation to allow converting HttpFoundation +objects to PSR-7 objects. It provides native support for _`Zend Diactoros`_. +Use Composer (``zendframework/zend-diactoros`` on `Packagist`_) or refers to +the project documentation to install it. + +Usage +----- + +Converting from HttpFoundation Objects to PSR-7 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The bridge provides an interface of a factory called +:class:`Symfony\\Bridge\\PsrHttpMessage\\HttpMessageFactoryInterface` +that builds objects implementing PSR-7 interfaces from HttpFoundation objects. +It also provide a default implementation using Zend Diactoros internally. + +The following code snippet explain how to convert a :class:`Symfony\\Component\\HttpFoundation\\Request` +to a Zend Diactoros :class:`Zend\\Diactoros\\ServerRequest` implementing the +:class:`Psr\\Http\\Message\\ServerRequestInterface` interface:: + + use Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory; + use Symfony\Component\HttpFoundation\Request; + + $symfonyRequest = new Request(array(), array(), array(), array(), array(), array('HTTP_HOST' => 'dunglas.fr'), 'Content'); + // The HTTP_HOST server key must be set to avoid an unexpected error + + $psr7Factory = new DiactorosFactory(); + $psrRequest = $psr7Factory->createRequest($symfonyRequest); + +And now from a :class:`Symfony\\Component\\HttpFoundation\\Response` to a Zend +Diactoros :class:`Zend\\Diactoros\\Response` implementing the :class:`Psr\\Http\\Message\\ResponseInterface` +interface:: + + use Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory; + use Symfony\Component\HttpFoundation\Response; + + $symfonyResponse = new Response('Content'); + + $psr7Factory = new DiactorosFactory(); + $psrResponse = $psr7Factory->createResponse($symfonyResponse); + +Converting Objects implementing PSR-7 Interfaces to HttpFoundation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +On the other hand, the bridge provide a factory interface called +:class:`Symfony\\Bridge\\PsrHttpMessage\\HttpFoundationFactoryInterface` +that builds HttpFoundation objects from objects implementing PSR-7 interfaces. + +The next snippet explain how to convert an object implementing the :class:`Psr\\Http\\Message\\ServerRequestInterface` +interface to a :class:`Symfony\\Component\\HttpFoundation\\Request` instance:: + + use Symfony\Bridge\PsrHttpMessage\Factory\HttpFoundationFactory; + + // $psrRequest is an instance of Psr\Http\Message\ServerRequestInterface + + $httpFoundationFactory = new HttpFoundationFactory(); + $symfonyRequest = $httpFoundationFactory->createRequest($psrRequest); + +From an object implementing the :class:`Psr\\Http\\Message\\ResponseInterface` +to a :class:`Symfony\\Component\\HttpFoundation\\Response` instance:: + + use Symfony\Bridge\PsrHttpMessage\Factory\HttpFoundationFactory; + + // $psrResponse is an instance of Psr\Http\Message\ResponseInterface + + $httpFoundationFactory = new HttpFoundationFactory(); + $symfonyResponse = $httpFoundationFactory->createResponse($psrResponse); + +.. _`PSR-7`: http://www.php-fig.org/psr/psr-7/ +.. _Packagist: https://packagist.org/packages/symfony/psr-http-message-bridge From c7ec6211d5b5846b49d80b28971575fe189a86f4 Mon Sep 17 00:00:00 2001 From: Ryan Weaver Date: Fri, 19 Jun 2015 11:11:09 -0400 Subject: [PATCH 22/23] [#5373] Small tweak per Stof's comment --- cookbook/assetic/jpeg_optimize.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cookbook/assetic/jpeg_optimize.rst b/cookbook/assetic/jpeg_optimize.rst index 3d2973fa773..295bc27dd3a 100644 --- a/cookbook/assetic/jpeg_optimize.rst +++ b/cookbook/assetic/jpeg_optimize.rst @@ -252,8 +252,8 @@ file: .. tip:: - Instead of using Assetic and Jpegoptim, you can also compress and manipulate - images before serving them using the `LiipImagineBundle`_ community bundle. + For uploaded images, you can compress and manipulate them using the + `LiipImagineBundle`_ community bundle. .. _`Jpegoptim`: http://www.kokkonen.net/tjko/projects.html .. _`LiipImagineBundle`: http://knpbundles.com/liip/LiipImagineBundle From 89eaec25508759d827c3372722e9431a1310e2a4 Mon Sep 17 00:00:00 2001 From: Ryan Weaver Date: Fri, 19 Jun 2015 12:24:17 -0400 Subject: [PATCH 23/23] [#5331] Tiny typo --- cookbook/psr7.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cookbook/psr7.rst b/cookbook/psr7.rst index ece2040850b..2d0316d1824 100644 --- a/cookbook/psr7.rst +++ b/cookbook/psr7.rst @@ -18,7 +18,7 @@ You can install the component in 2 different ways: The bridge also needs a PSR-7 implementation to allow converting HttpFoundation objects to PSR-7 objects. It provides native support for _`Zend Diactoros`_. -Use Composer (``zendframework/zend-diactoros`` on `Packagist`_) or refers to +Use Composer (``zendframework/zend-diactoros`` on `Packagist`_) or refer to the project documentation to install it. Usage