From bcab77b4c5769e6871eaf3cb8cc91a42d54dfcad Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Sun, 4 Jan 2015 12:07:10 +0100 Subject: [PATCH] bump Symfony requirements to PHP 5.5 --- book/controller.rst | 4 ++-- book/installation.rst | 18 ++---------------- book/security.rst | 2 -- book/translation.rst | 8 ++++---- .../http_foundation/session_configuration.rst | 17 ----------------- contributing/code/patches.rst | 2 +- cookbook/bundles/best_practices.rst | 9 ++++----- cookbook/deployment/azure-website.rst | 5 ++--- cookbook/logging/monolog.rst | 4 ++-- .../_ircmaxwell_password-compat.rst.inc | 13 ------------- cookbook/security/entity_provider.rst | 2 -- cookbook/web_server/built_in.rst | 9 ++++----- quick_tour/the_big_picture.rst | 4 ++-- reference/configuration/framework.rst | 3 +-- reference/requirements.rst | 10 +--------- 15 files changed, 25 insertions(+), 85 deletions(-) delete mode 100644 cookbook/security/_ircmaxwell_password-compat.rst.inc diff --git a/book/controller.rst b/book/controller.rst index aa4ffb873e6..94ec262ff7b 100644 --- a/book/controller.rst +++ b/book/controller.rst @@ -116,7 +116,7 @@ Controllers are also called *actions*. This controller is pretty straightforward: -* *line 4*: Symfony takes advantage of PHP 5.3 namespace functionality to +* *line 4*: Symfony takes advantage of PHP's namespace functionality to namespace the entire controller class. The ``use`` keyword imports the ``Response`` class, which the controller must return. @@ -559,7 +559,7 @@ Symfony will automatically return a 500 HTTP response code. throw new \Exception('Something went wrong!'); In every case, an error page is shown to the end user and a full debug -error page is shown to the developer (i.e. when you're using ``app_dev.php`` - +error page is shown to the developer (i.e. when you're using ``app_dev.php`` - see :ref:`page-creation-environments`). You'll want to customize the error page your user sees. To do that, see the diff --git a/book/installation.rst b/book/installation.rst index e270eb87815..95bb41105b5 100644 --- a/book/installation.rst +++ b/book/installation.rst @@ -16,13 +16,6 @@ Using the Symfony Installer is the only recommended way to create new Symfony applications. This installer is a PHP application that has to be installed only once and then it can create any number of Symfony applications. -.. note:: - - The installer requires PHP 5.4 or higher. If you still use the legacy - PHP 5.3 version, you cannot use the Symfony Installer. Read the - :ref:`book-creating-applications-without-the-installer` section to learn how - to proceed. - Depending on your operating system, the installer must be installed in different ways. @@ -107,9 +100,8 @@ to use for your projects. Creating Symfony Applications without the Installer --------------------------------------------------- -If you still use PHP 5.3, or if you can't execute the installer for any reason, -you can create Symfony applications using the alternative installation method -based on `Composer`_. +If you can't execute the installer for any reason, you can create Symfony +applications using the alternative installation method based on `Composer`_. Composer is the dependency manager used by modern PHP applications and it can also be used to create new applications based on the Symfony framework. If you @@ -168,12 +160,6 @@ possible solutions depending on your operating system. All of them are explained in the :ref:`Setting up Permissions ` section. -.. note:: - - PHP's internal web server is available in PHP 5.4 or higher versions. If you - still use the legacy PHP 5.3 version, you'll have to configure a *virtual host* - in your web server. - The ``server:run`` command is only suitable while developing the application. In order to run Symfony applications on production servers, you'll have to configure your `Apache`_ or `Nginx`_ web server as explained in diff --git a/book/security.rst b/book/security.rst index c9740cf71b2..6b1851fe457 100644 --- a/book/security.rst +++ b/book/security.rst @@ -486,8 +486,6 @@ else, you'll want to encode their passwords. The best algorithm to use is // ... )); -.. include:: /cookbook/security/_ircmaxwell_password-compat.rst.inc - Of course, your user's passwords now need to be encoded with this exact algorithm. For hardcoded users, you can use an `online tool`_, which will give you something like this: diff --git a/book/translation.rst b/book/translation.rst index a847344b90d..bff9016bb3e 100644 --- a/book/translation.rst +++ b/book/translation.rst @@ -405,8 +405,8 @@ checks translation resources for several locales: .. note:: - When Symfony doesn't find a translation in the given locale, it will - add the missing translation to the log file. For details, + When Symfony doesn't find a translation in the given locale, it will + add the missing translation to the log file. For details, see :ref:`reference-framework-translator-logging`. .. _book-translation-user-locale: @@ -664,8 +664,8 @@ Translating Database Content ---------------------------- The translation of database content should be handled by Doctrine through -the `Translatable Extension`_ or the `Translatable Behavior`_ (PHP 5.4+). -For more information, see the documentation for these libraries. +the `Translatable Extension`_ or the `Translatable Behavior`_. For more information, +see the documentation for these libraries. Debugging Translations ---------------------- diff --git a/components/http_foundation/session_configuration.rst b/components/http_foundation/session_configuration.rst index c2608110621..f6b412e488e 100644 --- a/components/http_foundation/session_configuration.rst +++ b/components/http_foundation/session_configuration.rst @@ -218,23 +218,6 @@ particular cookie by reading the ``getLifetime()`` method:: The expiry time of the cookie can be determined by adding the created timestamp and the lifetime. -PHP 5.4 Compatibility -~~~~~~~~~~~~~~~~~~~~~ - -Since PHP 5.4.0, :phpclass:`SessionHandler` and :phpclass:`SessionHandlerInterface` -are available. Symfony provides forward compatibility for the :phpclass:`SessionHandlerInterface` -so it can be used under PHP 5.3. This greatly improves interoperability with other -libraries. - -:phpclass:`SessionHandler` is a special PHP internal class which exposes native save -handlers to PHP user-space. - -In order to provide a solution for those using PHP 5.4, Symfony has a special -class called :class:`Symfony\\Component\\HttpFoundation\\Session\\Storage\\Handler\\NativeSessionHandler` -which under PHP 5.4, extends from ``\SessionHandler`` and under PHP 5.3 is just a -empty base class. This provides some interesting opportunities to leverage -PHP 5.4 functionality if it is available. - Save Handler Proxy ~~~~~~~~~~~~~~~~~~ diff --git a/contributing/code/patches.rst b/contributing/code/patches.rst index 1f9bf7000e5..13581d1d8eb 100644 --- a/contributing/code/patches.rst +++ b/contributing/code/patches.rst @@ -14,7 +14,7 @@ Before working on Symfony, setup a friendly environment with the following software: * Git; -* PHP version 5.3.3 or above; +* PHP version 5.5.9 or above; * `PHPUnit`_ 4.2 or above. Configure Git diff --git a/cookbook/bundles/best_practices.rst b/cookbook/bundles/best_practices.rst index 30519f52888..5beb13fd741 100644 --- a/cookbook/bundles/best_practices.rst +++ b/cookbook/bundles/best_practices.rst @@ -29,10 +29,9 @@ Bundle Name ----------- A bundle is also a PHP namespace. The namespace must follow the technical -interoperability `standards`_ for PHP 5.3 namespaces and class names: it -starts with a vendor segment, followed by zero or more category segments, and -it ends with the namespace short name, which must end with a ``Bundle`` -suffix. +interoperability `standards`_ for PHP namespaces and class names: it starts +with a vendor segment, followed by zero or more category segments, and it +ends with the namespace short name, which must end with a ``Bundle`` suffix. A namespace becomes a bundle as soon as you add a bundle class to it. The bundle class name must follow these simple rules: @@ -348,7 +347,7 @@ there are 3 modes, which the user can configure in their project: * 2.4: the original 2.4 and earlier validation API; * 2.5: the new 2.5 and later validation API; * 2.5-BC: the new 2.5 API with a backwards-compatible layer so that the - 2.4 API still works. This is only available in PHP 5.3.9+. + 2.4 API still works. As a bundle author, you'll want to support *both* API's, since some users may still be using the 2.4 API. Specifically, if your bundle adds a violation diff --git a/cookbook/deployment/azure-website.rst b/cookbook/deployment/azure-website.rst index efee282260e..36d61f26bb7 100644 --- a/cookbook/deployment/azure-website.rst +++ b/cookbook/deployment/azure-website.rst @@ -96,9 +96,8 @@ and how to properly configure PHP for a production environment. Configuring the latest PHP Runtime ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Even though Symfony only requires PHP 5.3.3 to run, it's always recommended -to use the most recent PHP version whenever possible. PHP 5.3 is no longer -supported by the PHP core team, but you can update it easily in Azure. +Even though Symfony only requires PHP 5.5.9 to run, it's always recommended +to use the most recent PHP version whenever possible. To update your PHP version on Azure, go to the **Configure** tab of the control panel and select the version you want. diff --git a/cookbook/logging/monolog.rst b/cookbook/logging/monolog.rst index ab290e5d519..2909146fc48 100644 --- a/cookbook/logging/monolog.rst +++ b/cookbook/logging/monolog.rst @@ -4,8 +4,8 @@ How to Use Monolog to Write Logs ================================ -Monolog_ is a logging library for PHP 5.3 used by Symfony. It is -inspired by the Python LogBook library. +Monolog_ is a logging library for PHP used by Symfony. It is inspired by the +Python LogBook library. Usage ----- diff --git a/cookbook/security/_ircmaxwell_password-compat.rst.inc b/cookbook/security/_ircmaxwell_password-compat.rst.inc deleted file mode 100644 index 3f96c454488..00000000000 --- a/cookbook/security/_ircmaxwell_password-compat.rst.inc +++ /dev/null @@ -1,13 +0,0 @@ -.. caution:: - - If you're using PHP 5.4 or lower, you'll need to install the ``ircmaxell/password-compat`` - library via Composer in order to be able to use the ``bcrypt`` encoder: - - .. code-block:: json - - { - "require": { - ... - "ircmaxell/password-compat": "~1.0.3" - } - } diff --git a/cookbook/security/entity_provider.rst b/cookbook/security/entity_provider.rst index 398138398ce..97b19c2e8b6 100644 --- a/cookbook/security/entity_provider.rst +++ b/cookbook/security/entity_provider.rst @@ -355,8 +355,6 @@ the database to be encoded using this encoder. For details on how to create a new User object with a properly encoded password, see the :ref:`book-security-encoding-user-password` section of the security chapter. -.. include:: /cookbook/security/_ircmaxwell_password-compat.rst.inc - The ``providers`` section defines an ``administrators`` user provider. A user provider is a "source" of where users are loaded during authentication. In this case, the ``entity`` keyword means that Symfony will use the Doctrine diff --git a/cookbook/web_server/built_in.rst b/cookbook/web_server/built_in.rst index 33289907614..c9293749f99 100644 --- a/cookbook/web_server/built_in.rst +++ b/cookbook/web_server/built_in.rst @@ -8,11 +8,10 @@ How to Use PHP's built-in Web Server The ability to run the server as a background process was introduced in Symfony 2.6. -Since PHP 5.4 the CLI SAPI comes with a `built-in web server`_. It can be used -to run your PHP applications locally during development, for testing or for -application demonstrations. This way, you don't have to bother configuring -a full-featured web server such as -:doc:`Apache or Nginx `. +The CLI SAPI comes with a `built-in web server`_. It can be used to run your +PHP applications locally during development, for testing or for application +demonstrations. This way, you don't have to bother configuring a full-featured +web server such as :doc:`Apache or Nginx `. .. caution:: diff --git a/quick_tour/the_big_picture.rst b/quick_tour/the_big_picture.rst index 1dd9e8fa48a..1882e39ec5e 100644 --- a/quick_tour/the_big_picture.rst +++ b/quick_tour/the_big_picture.rst @@ -8,9 +8,9 @@ by showing you a simple project in action. If you've used a web framework before, you should feel right at home with Symfony. If not, welcome to a whole new way of developing web applications. -The only technical requisite to follow this tutorial is to have **PHP 5.4 or higher +The only technical requisite to follow this tutorial is to have **PHP 5.5.9 or higher installed on your computer**. If you use a packaged PHP solution such as WAMP, -XAMP or MAMP, check out that they are using PHP 5.4 or a more recent version. +XAMP or MAMP, check out that they are using PHP 5.5.9 or a more recent version. You can also execute the following command in your terminal or command console to display the installed PHP version: diff --git a/reference/configuration/framework.rst b/reference/configuration/framework.rst index 5c2d3bc2547..1f9c413d20f 100644 --- a/reference/configuration/framework.rst +++ b/reference/configuration/framework.rst @@ -641,8 +641,7 @@ API. The ``api`` option is used to switch between the different implementations: ``2.5-bc`` or ``auto`` If you omit a value or set the ``api`` option to ``2.5-bc`` or ``auto``, Symfony will use an API implementation that is compatible with both the - legacy implementation and the ``2.5`` implementation. You have to use - PHP 5.3.9 or higher to be able to use this implementation. + legacy implementation and the ``2.5`` implementation. Full default Configuration -------------------------- diff --git a/reference/requirements.rst b/reference/requirements.rst index 5edc791f788..12c24d65e7a 100644 --- a/reference/requirements.rst +++ b/reference/requirements.rst @@ -21,17 +21,11 @@ Below is the list of required and optional requirements. Required -------- -* PHP needs to be a minimum version of PHP 5.3.3 +* PHP needs to be a minimum version of PHP 5.5.9 * JSON needs to be enabled * ctype needs to be enabled * Your ``php.ini`` needs to have the ``date.timezone`` setting -.. caution:: - - Be aware that Symfony has some known limitations when using a PHP version - less than 5.3.8 or equal to 5.3.16. For more information see the - `Requirements section of the README`_. - Optional -------- @@ -56,5 +50,3 @@ Doctrine If you want to use Doctrine, you will need to have PDO installed. Additionally, you need to have the PDO driver installed for the database server you want to use. - -.. _`Requirements section of the README`: https://github.com/symfony/symfony#requirements