diff --git a/.doctor-rst.yaml b/.doctor-rst.yaml index 2ecd4fc7d2d..dfb85021586 100644 --- a/.doctor-rst.yaml +++ b/.doctor-rst.yaml @@ -8,6 +8,7 @@ rules: correct_code_block_directive_based_on_the_content: ~ deprecated_directive_should_have_version: ~ ensure_bash_prompt_before_composer_command: ~ + ensure_class_constant: ~ ensure_correct_format_for_phpfunction: ~ ensure_exactly_one_space_before_directive_type: ~ ensure_exactly_one_space_between_link_definition_and_link: ~ @@ -49,6 +50,7 @@ rules: no_namespace_after_use_statements: ~ no_php_open_tag_in_code_block_php_directive: ~ no_space_before_self_xml_closing_tag: ~ + no_typographic_quotes: ~ non_static_phpunit_assertions: ~ only_backslashes_in_namespace_in_php_code_block: ~ only_backslashes_in_use_statements_in_php_code_block: ~ @@ -72,7 +74,6 @@ rules: versionadded_directive_should_have_version: ~ yaml_instead_of_yml_suffix: ~ - # master versionadded_directive_major_version: major_version: 7 diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 497dfd9b430..42770d55fe3 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -72,7 +72,7 @@ jobs: key: ${{ runner.os }}-doctor-rst-${{ steps.extract_base_branch.outputs.branch }} - name: "Run DOCtor-RST" - uses: docker://oskarstark/doctor-rst:1.67.0 + uses: docker://oskarstark/doctor-rst:1.70.0 with: args: --short --error-format=github --cache-file=/github/workspace/.cache/doctor-rst.cache diff --git a/README.md b/README.md index 5c063058c02..84f91fbbbbc 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- + Symfony Logo

diff --git a/_build/redirection_map b/_build/redirection_map index ee14c191025..c30723eac58 100644 --- a/_build/redirection_map +++ b/_build/redirection_map @@ -435,6 +435,7 @@ /setup/composer /setup /security/security_checker /setup /setup/built_in_web_server /setup/symfony_server +/setup/symfony_server /setup/symfony_cli /service_container/parameters /configuration /routing/generate_url_javascript /routing /routing/slash_in_parameter /routing @@ -574,3 +575,7 @@ /doctrine/reverse_engineering /doctrine#doctrine-adding-mapping /components/serializer /serializer /serializer/custom_encoder /serializer/encoders#serializer-custom-encoder +/components/string /string +/form/button_based_validation /form/validation_groups +/form/data_based_validation /form/validation_groups +/form/validation_group_service_resolver /form/validation_groups diff --git a/best_practices.rst b/best_practices.rst index 2c393cae9c6..7ca5590036a 100644 --- a/best_practices.rst +++ b/best_practices.rst @@ -10,7 +10,7 @@ You can even ignore them completely and continue using your own best practices and methodologies. Symfony is flexible enough to adapt to your needs. This article assumes that you already have experience developing Symfony -applications. If you don't, read first the :doc:`Getting Started ` +applications. If you don't, first read the :doc:`Getting Started ` section of the documentation. .. tip:: @@ -95,7 +95,7 @@ Use Secrets for Sensitive Information ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ When your application has sensitive configuration, like an API key, you should -store those securely via :doc:`Symfony’s secrets management system `. +store those securely via :doc:`Symfony's secrets management system `. Use Parameters for Application Configuration ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -118,7 +118,7 @@ Use Short and Prefixed Parameter Names Consider using ``app.`` as the prefix of your :ref:`parameters ` to avoid collisions with Symfony and third-party bundles/libraries parameters. -Then, use just one or two words to describe the purpose of the parameter: +Then, use only one or two words to describe the purpose of the parameter: .. code-block:: yaml @@ -362,10 +362,6 @@ Unless you have two legitimately different authentication systems and users (e.g. form login for the main site and a token system for your API only), it's recommended to have only one firewall to keep things simple. -Additionally, you should use the ``anonymous`` key under your firewall. If you -require users to be logged in for different sections of your site, use the -:doc:`access_control ` option. - Use the ``auto`` Password Hasher ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/bundles.rst b/bundles.rst index 878bee3af4a..3e590a4e2aa 100644 --- a/bundles.rst +++ b/bundles.rst @@ -11,7 +11,7 @@ The Bundle System A bundle is similar to a plugin in other software, but even better. The core features of Symfony framework are implemented with bundles (FrameworkBundle, -SecurityBundle, DebugBundle, etc.) They are also used to add new features in +SecurityBundle, DebugBundle, etc.) Bundles are also used to add new features in your application via `third-party bundles`_. Bundles used in your applications must be enabled per @@ -42,7 +42,7 @@ file:: Creating a Bundle ----------------- -This section creates and enables a new bundle to show there are only a few steps required. +This section creates and enables a new bundle to show that only a few steps are required. The new bundle is called AcmeBlogBundle, where the ``Acme`` portion is an example name that should be replaced by some "vendor" name that represents you or your organization (e.g. AbcBlogBundle for some company named ``Abc``). diff --git a/bundles/best_practices.rst b/bundles/best_practices.rst index 37dc386b8e4..34bf24308ef 100644 --- a/bundles/best_practices.rst +++ b/bundles/best_practices.rst @@ -188,32 +188,31 @@ the ``tests/`` directory. Tests should follow the following principles: .. note:: A test suite must not contain ``AllTests.php`` scripts, but must rely on the - existence of a ``phpunit.xml.dist`` file. + existence of a ``phpunit.dist.xml`` file. Continuous Integration ---------------------- Testing bundle code continuously, including all its commits and pull requests, is a good practice called Continuous Integration. There are several services -providing this feature for free for open source projects, like `GitHub Actions`_ -and `Travis CI`_. +providing this feature for free for open source projects, like `GitHub Actions`_. A bundle should at least test: * The lower bound of their dependencies (by running ``composer update --prefer-lowest``); * The supported PHP versions; -* All supported major Symfony versions (e.g. both ``4.x`` and ``5.x`` if +* All supported major Symfony versions (e.g. both ``6.4`` and ``7.x`` if support is claimed for both). -Thus, a bundle supporting PHP 7.3, 7.4 and 8.0, and Symfony 4.4 and 5.x should +Thus, a bundle supporting PHP 7.4, 8.3 and 8.4, and Symfony 6.4 and 7.x should have at least this test matrix: =========== =============== =================== PHP version Symfony version Composer flags =========== =============== =================== -7.3 ``4.*`` ``--prefer-lowest`` -7.4 ``5.*`` -8.0 ``5.*`` +7.4 ``6.4`` ``--prefer-lowest`` +8.3 ``7.*`` +8.4 ``7.*`` =========== =============== =================== .. tip:: @@ -233,10 +232,10 @@ with Symfony Flex to install a specific Symfony version: .. code-block:: bash - # this requires Symfony 5.x for all Symfony packages - export SYMFONY_REQUIRE=5.* + # this requires Symfony 7.x for all Symfony packages + export SYMFONY_REQUIRE=7.* # alternatively you can run this command to update composer.json config - # composer config extra.symfony.require "5.*" + # composer config extra.symfony.require "7.*" # install Symfony Flex in the CI environment composer global config --no-plugins allow-plugins.symfony/flex true @@ -560,6 +559,7 @@ Learn more * :doc:`/bundles/extension` * :doc:`/bundles/configuration` +* :doc:`/frontend/create_ux_bundle` .. _`PSR-4`: https://www.php-fig.org/psr/psr-4/ .. _`Symfony Flex recipe`: https://github.com/symfony/recipes @@ -568,4 +568,3 @@ Learn more .. _`choose any license`: https://choosealicense.com/ .. _`valid license identifier`: https://spdx.org/licenses/ .. _`GitHub Actions`: https://docs.github.com/en/free-pro-team@latest/actions -.. _`Travis CI`: https://docs.travis-ci.com/ diff --git a/cache.rst b/cache.rst index 83bb5b4cedc..9379511fde8 100644 --- a/cache.rst +++ b/cache.rst @@ -32,12 +32,11 @@ You can read more about these at the :doc:`component documentation cache() diff --git a/components/browser_kit.rst b/components/browser_kit.rst index bcb8f7b3c8e..8cf0772298c 100644 --- a/components/browser_kit.rst +++ b/components/browser_kit.rst @@ -143,7 +143,7 @@ field values, etc.) before submitting it:: $crawler = $client->request('GET', 'https://github.com/login'); // find the form with the 'Log in' button and submit it - // 'Log in' can be the text content, id, value or name of a