diff --git a/.doctor-rst.yaml b/.doctor-rst.yaml new file mode 100644 index 000000000..b75742ee3 --- /dev/null +++ b/.doctor-rst.yaml @@ -0,0 +1,80 @@ +rules: + american_english: ~ + avoid_repetetive_words: ~ + blank_line_after_anchor: ~ + blank_line_after_directive: ~ + blank_line_before_directive: ~ + composer_dev_option_not_at_the_end: ~ + correct_code_block_directive_based_on_the_content: ~ + deprecated_directive_should_have_version: ~ + ensure_bash_prompt_before_composer_command: ~ + ensure_correct_format_for_phpfunction: ~ + ensure_exactly_one_space_before_directive_type: ~ + ensure_exactly_one_space_between_link_definition_and_link: ~ + ensure_explicit_nullable_types: ~ + ensure_github_directive_start_with_prefix: + prefix: 'Symfony' + ensure_link_bottom: ~ + ensure_link_definition_contains_valid_url: ~ + ensure_order_of_code_blocks_in_configuration_block: ~ + ensure_php_reference_syntax: ~ + extend_abstract_controller: ~ + # extension_xlf_instead_of_xliff: ~ + forbidden_directives: + directives: + - '.. index::' + indention: ~ + lowercase_as_in_use_statements: ~ + max_blank_lines: + max: 2 + max_colons: ~ + no_app_console: ~ + no_attribute_redundant_parenthesis: ~ + no_blank_line_after_filepath_in_php_code_block: ~ + no_blank_line_after_filepath_in_twig_code_block: ~ + no_blank_line_after_filepath_in_xml_code_block: ~ + no_blank_line_after_filepath_in_yaml_code_block: ~ + no_brackets_in_method_directive: ~ + no_composer_req: ~ + no_directive_after_shorthand: ~ + no_duplicate_use_statements: ~ + no_footnotes: ~ + no_inheritdoc: ~ + no_merge_conflict: ~ + no_namespace_after_use_statements: ~ + no_php_open_tag_in_code_block_php_directive: ~ + no_space_before_self_xml_closing_tag: ~ + only_backslashes_in_namespace_in_php_code_block: ~ + only_backslashes_in_use_statements_in_php_code_block: ~ + ordered_use_statements: ~ + php_prefix_before_bin_console: ~ + remove_trailing_whitespace: ~ + replace_code_block_types: ~ + replacement: ~ + short_array_syntax: ~ + space_between_label_and_link_in_doc: ~ + space_between_label_and_link_in_ref: ~ + string_replacement: ~ + title_underline_length_must_match_title_length: ~ + typo: ~ + unused_links: ~ + use_deprecated_directive_instead_of_versionadded: ~ + use_named_constructor_without_new_keyword_rule: ~ + use_https_xsd_urls: ~ + valid_inline_highlighted_namespaces: ~ + valid_use_statements: ~ + versionadded_directive_should_have_version: ~ + yaml_instead_of_yml_suffix: ~ + + # master + versionadded_directive_major_version: + major_version: 1 + + versionadded_directive_min_version: + min_version: '1.0' + + deprecated_directive_major_version: + major_version: 7 + + deprecated_directive_min_version: + min_version: '1.0' diff --git a/.gitattributes b/.gitattributes index e3fa146e4..1beeae2f4 100644 --- a/.gitattributes +++ b/.gitattributes @@ -4,3 +4,4 @@ /tests export-ignore /tools export-ignore docker-compose.yml export-ignore +/_docs_build export-ignore diff --git a/.github/workflows/ci-docs.yaml b/.github/workflows/ci-docs.yaml new file mode 100644 index 000000000..28b41ed11 --- /dev/null +++ b/.github/workflows/ci-docs.yaml @@ -0,0 +1,41 @@ +name: "CI Docs Analysis" + +on: + pull_request: + push: + branches: + - 'main' + schedule: + - cron: '0 0 * * *' + +env: + PHPUNIT_FLAGS: "-v" + SYMFONY_PHPUNIT_DIR: "$HOME/symfony-bridge/.phpunit" + +jobs: + doctor-rst: + name: Lint (DOCtor-RST) + + runs-on: ubuntu-latest + + steps: + - name: "Checkout" + uses: actions/checkout@v3 + + - name: "Create cache dir" + run: mkdir .cache + + - name: "Extract base branch name" + run: echo "branch=$(echo ${GITHUB_BASE_REF:=${GITHUB_REF##*/}})" >> $GITHUB_OUTPUT + id: extract_base_branch + + - name: "Cache DOCtor-RST" + uses: actions/cache@v3 + with: + path: .cache + key: ${{ runner.os }}-doctor-rst-${{ steps.extract_base_branch.outputs.branch }} + + - name: "Run DOCtor-RST" + uses: docker://oskarstark/doctor-rst:1.61.1 + with: + args: --short --error-format=github --cache-file=/github/workspace/.cache/doctor-rst.cache diff --git a/.gitignore b/.gitignore index 196fcbfd3..8bf8e4505 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,5 @@ /tools/*/composer.lock /tools/*/vendor /vendor/ +/_docs_build/vendor +/_docs_build/output diff --git a/README.md b/README.md index 77aa12f20..79dd09409 100644 --- a/README.md +++ b/README.md @@ -25,3 +25,27 @@ B) The generated code itself may change between minor releases. This [1]: https://symfony.com/doc/current/bundles/SymfonyMakerBundle/index.html [2]: https://symfony.com/doc/current/contributing/code/bc.html + +--- + +Build Documentation Locally +--------------------------- + +This is not needed for contributing, but it's useful if you would like to debug some +issue in the docs or if you want to read MakerBundles Documentation offline. + +```bash +$ cd _docs_build/ + +$ composer install + +$ php build.php +``` + +After generating docs, serve them with the internal PHP server: + +```bash +$ php -S localhost:8000 -t output/ +``` + +Browse `http://localhost:8000` to read the docs. diff --git a/_docs_build/build.php b/_docs_build/build.php new file mode 100755 index 000000000..20bec5ad2 --- /dev/null +++ b/_docs_build/build.php @@ -0,0 +1,65 @@ +#!/usr/bin/env php + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +require __DIR__.'/vendor/autoload.php'; + +use Symfony\Component\Console\Application; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Output\OutputInterface; +use Symfony\Component\Console\Style\SymfonyStyle; +use SymfonyDocsBuilder\BuildConfig; +use SymfonyDocsBuilder\DocBuilder; + +(new Application('Symfony Docs Builder', '1.0')) + ->register('build-docs') + ->addOption('generate-fjson-files', null, InputOption::VALUE_NONE, 'Use this option to generate docs both in HTML and JSON formats') + ->setCode(function (InputInterface $input, OutputInterface $output) { + $io = new SymfonyStyle($input, $output); + $io->text('Building all Symfony Docs...'); + + $outputDir = __DIR__.'/output'; + $buildConfig = (new BuildConfig()) + ->setSymfonyVersion('7.1') + ->setContentDir(__DIR__.'/../src/Resources/doc') + ->setOutputDir($outputDir) + ->setImagesDir(__DIR__.'/output/_images') + ->setImagesPublicPrefix('_images') + ->setTheme('rtd') + ->diableBuildCache() + ; + + $buildConfig->setExcludedPaths(['.github/', '_build/']); + + if (!$generateJsonFiles = $input->getOption('generate-fjson-files')) { + $buildConfig->disableJsonFileGeneration(); + } + + $io->comment(sprintf('cache: disabled / output file type(s): %s', $generateJsonFiles ? 'HTML and JSON' : 'HTML')); + + $result = (new DocBuilder())->build($buildConfig); + + if ($result->isSuccessful()) { + $io->success(sprintf('The Symfony Docs were successfully built at %s', realpath($outputDir))); + + return 0; + } + + $io->error(sprintf("There were some errors while building the docs:\n\n%s\n", $result->getErrorTrace())); + $io->newLine(); + $io->comment('Tip: you can add the -v, -vv or -vvv flags to this command to get debug information.'); + + return 1; + }) + ->getApplication() + ->setDefaultCommand('build-docs', true) + ->run(); diff --git a/_docs_build/composer.json b/_docs_build/composer.json new file mode 100644 index 000000000..069af7e92 --- /dev/null +++ b/_docs_build/composer.json @@ -0,0 +1,22 @@ +{ + "minimum-stability": "dev", + "prefer-stable": true, + "config": { + "platform": { + "php": "8.1.0" + }, + "preferred-install": { + "*": "dist" + }, + "sort-packages": true, + "allow-plugins": { + "symfony/flex": true + } + }, + "require": { + "php": ">=8.1", + "symfony-tools/docs-builder": "^0.23", + "symfony/console": "^6.2", + "symfony/process": "^6.2" + } +} diff --git a/_docs_build/composer.lock b/_docs_build/composer.lock new file mode 100644 index 000000000..5ee65995c --- /dev/null +++ b/_docs_build/composer.lock @@ -0,0 +1,1867 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "54d13426e2db0a0cca88612376b5c9e0", + "packages": [ + { + "name": "doctrine/event-manager", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/event-manager.git", + "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/750671534e0241a7c50ea5b43f67e23eb5c96f32", + "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "conflict": { + "doctrine/common": "<2.9" + }, + "require-dev": { + "doctrine/coding-standard": "^10", + "phpstan/phpstan": "^1.8.8", + "phpunit/phpunit": "^9.5", + "vimeo/psalm": "^4.28" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", + "homepage": "https://www.doctrine-project.org/projects/event-manager.html", + "keywords": [ + "event", + "event dispatcher", + "event manager", + "event system", + "events" + ], + "support": { + "issues": "https://github.com/doctrine/event-manager/issues", + "source": "https://github.com/doctrine/event-manager/tree/2.0.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager", + "type": "tidelift" + } + ], + "time": "2022-10-12T20:59:15+00:00" + }, + { + "name": "doctrine/rst-parser", + "version": "0.5.6", + "source": { + "type": "git", + "url": "https://github.com/doctrine/rst-parser.git", + "reference": "ca7f5f31f9ea58fde5aeffe0f7b8eb569e71a104" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/rst-parser/zipball/ca7f5f31f9ea58fde5aeffe0f7b8eb569e71a104", + "reference": "ca7f5f31f9ea58fde5aeffe0f7b8eb569e71a104", + "shasum": "" + }, + "require": { + "doctrine/event-manager": "^1.0 || ^2.0", + "php": "^7.2 || ^8.0", + "symfony/filesystem": "^4.1 || ^5.0 || ^6.0 || ^7.0", + "symfony/finder": "^4.1 || ^5.0 || ^6.0 || ^7.0", + "symfony/polyfill-mbstring": "^1.0", + "symfony/string": "^5.3 || ^6.0 || ^7.0", + "symfony/translation-contracts": "^1.1 || ^2.0 || ^3.0", + "twig/twig": "^2.9 || ^3.3" + }, + "require-dev": { + "doctrine/coding-standard": "^11.0", + "gajus/dindent": "^2.0.2", + "phpstan/phpstan": "^1.9", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.2", + "phpstan/phpstan-strict-rules": "^1.4", + "phpunit/phpunit": "^7.5 || ^8.0 || ^9.0", + "symfony/css-selector": "4.4 || ^5.2 || ^6.0 || ^7.0", + "symfony/dom-crawler": "4.4 || ^5.2 || ^6.0 || ^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\RST\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Grégoire Passault", + "email": "g.passault@gmail.com", + "homepage": "http://www.gregwar.com/" + }, + { + "name": "Jonathan H. Wage", + "email": "jonwage@gmail.com", + "homepage": "https://jwage.com" + } + ], + "description": "PHP library to parse reStructuredText documents and generate HTML or LaTeX documents.", + "homepage": "https://github.com/doctrine/rst-parser", + "keywords": [ + "html", + "latex", + "markup", + "parser", + "reStructuredText", + "rst" + ], + "support": { + "issues": "https://github.com/doctrine/rst-parser/issues", + "source": "https://github.com/doctrine/rst-parser/tree/0.5.6" + }, + "time": "2024-01-14T11:02:23+00:00" + }, + { + "name": "masterminds/html5", + "version": "2.9.0", + "source": { + "type": "git", + "url": "https://github.com/Masterminds/html5-php.git", + "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f5ac2c0b0a2eefca70b2ce32a5809992227e75a6", + "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8 || ^9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Masterminds\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matt Butcher", + "email": "technosophos@gmail.com" + }, + { + "name": "Matt Farina", + "email": "matt@mattfarina.com" + }, + { + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" + } + ], + "description": "An HTML5 parser and serializer.", + "homepage": "http://masterminds.github.io/html5-php", + "keywords": [ + "HTML5", + "dom", + "html", + "parser", + "querypath", + "serializer", + "xml" + ], + "support": { + "issues": "https://github.com/Masterminds/html5-php/issues", + "source": "https://github.com/Masterminds/html5-php/tree/2.9.0" + }, + "time": "2024-03-31T07:05:07+00:00" + }, + { + "name": "psr/container", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "psr/log", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.0" + }, + "time": "2021-07-14T16:46:02+00:00" + }, + { + "name": "scrivo/highlight.php", + "version": "v9.18.1.10", + "source": { + "type": "git", + "url": "https://github.com/scrivo/highlight.php.git", + "reference": "850f4b44697a2552e892ffe71490ba2733c2fc6e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/scrivo/highlight.php/zipball/850f4b44697a2552e892ffe71490ba2733c2fc6e", + "reference": "850f4b44697a2552e892ffe71490ba2733c2fc6e", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": ">=5.4" + }, + "require-dev": { + "phpunit/phpunit": "^4.8|^5.7", + "sabberworm/php-css-parser": "^8.3", + "symfony/finder": "^2.8|^3.4|^5.4", + "symfony/var-dumper": "^2.8|^3.4|^5.4" + }, + "suggest": { + "ext-mbstring": "Allows highlighting code with unicode characters and supports language with unicode keywords" + }, + "type": "library", + "autoload": { + "files": [ + "HighlightUtilities/functions.php" + ], + "psr-0": { + "Highlight\\": "", + "HighlightUtilities\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Geert Bergman", + "homepage": "http://www.scrivo.org/", + "role": "Project Author" + }, + { + "name": "Vladimir Jimenez", + "homepage": "https://allejo.io", + "role": "Maintainer" + }, + { + "name": "Martin Folkers", + "homepage": "https://twobrain.io", + "role": "Contributor" + } + ], + "description": "Server side syntax highlighter that supports 185 languages. It's a PHP port of highlight.js", + "keywords": [ + "code", + "highlight", + "highlight.js", + "highlight.php", + "syntax" + ], + "support": { + "issues": "https://github.com/scrivo/highlight.php/issues", + "source": "https://github.com/scrivo/highlight.php" + }, + "funding": [ + { + "url": "https://github.com/allejo", + "type": "github" + } + ], + "time": "2022-12-17T21:53:22+00:00" + }, + { + "name": "symfony-tools/docs-builder", + "version": "v0.23.0", + "source": { + "type": "git", + "url": "https://github.com/symfony-tools/docs-builder.git", + "reference": "218bfe8bef908cea3934851fd294ffa0d48db059" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony-tools/docs-builder/zipball/218bfe8bef908cea3934851fd294ffa0d48db059", + "reference": "218bfe8bef908cea3934851fd294ffa0d48db059", + "shasum": "" + }, + "require": { + "doctrine/rst-parser": "^0.5", + "ext-curl": "*", + "ext-json": "*", + "php": ">=7.4", + "scrivo/highlight.php": "^9.18.1", + "symfony/console": "^5.2 || ^6.0 || ^7.0", + "symfony/css-selector": "^5.2 || ^6.0 || ^7.0", + "symfony/dom-crawler": "^5.2 || ^6.0 || ^7.0", + "symfony/filesystem": "^5.2 || ^6.0 || ^7.0", + "symfony/finder": "^5.2 || ^6.0 || ^7.0", + "symfony/http-client": "^5.2 || ^6.0 || ^7.0", + "twig/twig": "^2.14 || ^3.3" + }, + "require-dev": { + "gajus/dindent": "^2.0", + "masterminds/html5": "^2.7", + "symfony/phpunit-bridge": "^5.2 || ^6.0 || ^7.0", + "symfony/process": "^5.2 || ^6.0 || ^7.0" + }, + "bin": [ + "bin/docs-builder" + ], + "type": "project", + "autoload": { + "psr-4": { + "SymfonyDocsBuilder\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "The build system for Symfony's documentation", + "support": { + "issues": "https://github.com/symfony-tools/docs-builder/issues", + "source": "https://github.com/symfony-tools/docs-builder/tree/v0.23.0" + }, + "time": "2023-12-26T14:50:41+00:00" + }, + { + "name": "symfony/console", + "version": "v6.4.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "a170e64ae10d00ba89e2acbb590dc2e54da8ad8f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/a170e64ae10d00ba89e2acbb590dc2e54da8ad8f", + "reference": "a170e64ae10d00ba89e2acbb590dc2e54da8ad8f", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/string": "^5.4|^6.0|^7.0" + }, + "conflict": { + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/lock": "^5.4|^6.0|^7.0", + "symfony/messenger": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/stopwatch": "^5.4|^6.0|^7.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command-line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v6.4.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:22:46+00:00" + }, + { + "name": "symfony/css-selector", + "version": "v6.4.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "1c5d5c2103c3762aff27a27e1e2409e30a79083b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/1c5d5c2103c3762aff27a27e1e2409e30a79083b", + "reference": "1c5d5c2103c3762aff27a27e1e2409e30a79083b", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Converts CSS selectors to XPath expressions", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/css-selector/tree/v6.4.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:22:46+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:32:20+00:00" + }, + { + "name": "symfony/dom-crawler", + "version": "v6.4.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "2088c5da700b1e7a8689fffc10dda6c1f643deea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/2088c5da700b1e7a8689fffc10dda6c1f643deea", + "reference": "2088c5da700b1e7a8689fffc10dda6c1f643deea", + "shasum": "" + }, + "require": { + "masterminds/html5": "^2.6", + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0" + }, + "require-dev": { + "symfony/css-selector": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\DomCrawler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases DOM navigation for HTML and XML documents", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/dom-crawler/tree/v6.4.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:22:46+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v6.4.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "78dde75f8f6dbbca4ec436a4b0087f7af02076d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/78dde75f8f6dbbca4ec436a4b0087f7af02076d4", + "reference": "78dde75f8f6dbbca4ec436a4b0087f7af02076d4", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8", + "symfony/process": "^5.4|^6.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v6.4.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:22:46+00:00" + }, + { + "name": "symfony/finder", + "version": "v6.4.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "511c48990be17358c23bf45c5d71ab85d40fb764" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/511c48990be17358c23bf45c5d71ab85d40fb764", + "reference": "511c48990be17358c23bf45c5d71ab85d40fb764", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "symfony/filesystem": "^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v6.4.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-23T10:36:43+00:00" + }, + { + "name": "symfony/http-client", + "version": "v6.4.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client.git", + "reference": "3683d8107cf1efdd24795cc5f7482be1eded34ac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client/zipball/3683d8107cf1efdd24795cc5f7482be1eded34ac", + "reference": "3683d8107cf1efdd24795cc5f7482be1eded34ac", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/http-client-contracts": "^3.4.1", + "symfony/service-contracts": "^2.5|^3" + }, + "conflict": { + "php-http/discovery": "<1.15", + "symfony/http-foundation": "<6.3" + }, + "provide": { + "php-http/async-client-implementation": "*", + "php-http/client-implementation": "*", + "psr/http-client-implementation": "1.0", + "symfony/http-client-implementation": "3.0" + }, + "require-dev": { + "amphp/amp": "^2.5", + "amphp/http-client": "^4.2.1", + "amphp/http-tunnel": "^1.0", + "amphp/socket": "^1.1", + "guzzlehttp/promises": "^1.4|^2.0", + "nyholm/psr7": "^1.0", + "php-http/httplug": "^1.0|^2.0", + "psr/http-client": "^1.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/http-kernel": "^5.4|^6.0|^7.0", + "symfony/messenger": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/stopwatch": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpClient\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", + "homepage": "https://symfony.com", + "keywords": [ + "http" + ], + "support": { + "source": "https://github.com/symfony/http-client/tree/v6.4.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:22:46+00:00" + }, + { + "name": "symfony/http-client-contracts", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client-contracts.git", + "reference": "20414d96f391677bf80078aa55baece78b82647d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/20414d96f391677bf80078aa55baece78b82647d", + "reference": "20414d96f391677bf80078aa55baece78b82647d", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\HttpClient\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to HTTP clients", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/http-client-contracts/tree/v3.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:32:20+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4", + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d", + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec", + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/process", + "version": "v6.4.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "cdb1c81c145fd5aa9b0038bab694035020943381" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/cdb1c81c145fd5aa9b0038bab694035020943381", + "reference": "cdb1c81c145fd5aa9b0038bab694035020943381", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Executes commands in sub-processes", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v6.4.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:22:46+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:32:20+00:00" + }, + { + "name": "symfony/string", + "version": "v6.4.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "ffeb9591c61f65a68d47f77d12b83fa530227a69" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/ffeb9591c61f65a68d47f77d12b83fa530227a69", + "reference": "ffeb9591c61f65a68d47f77d12b83fa530227a69", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.5" + }, + "require-dev": { + "symfony/error-handler": "^5.4|^6.0|^7.0", + "symfony/http-client": "^5.4|^6.0|^7.0", + "symfony/intl": "^6.2|^7.0", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v6.4.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:22:46+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", + "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to translation", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:32:20+00:00" + }, + { + "name": "twig/twig", + "version": "v3.10.3", + "source": { + "type": "git", + "url": "https://github.com/twigphp/Twig.git", + "reference": "67f29781ffafa520b0bbfbd8384674b42db04572" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/67f29781ffafa520b0bbfbd8384674b42db04572", + "reference": "67f29781ffafa520b0bbfbd8384674b42db04572", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-mbstring": "^1.3", + "symfony/polyfill-php80": "^1.22" + }, + "require-dev": { + "psr/container": "^1.0|^2.0", + "symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0" + }, + "type": "library", + "autoload": { + "files": [ + "src/Resources/core.php", + "src/Resources/debug.php", + "src/Resources/escaper.php", + "src/Resources/string_loader.php" + ], + "psr-4": { + "Twig\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + }, + { + "name": "Twig Team", + "role": "Contributors" + }, + { + "name": "Armin Ronacher", + "email": "armin.ronacher@active-4.com", + "role": "Project Founder" + } + ], + "description": "Twig, the flexible, fast, and secure template language for PHP", + "homepage": "https://twig.symfony.com", + "keywords": [ + "templating" + ], + "support": { + "issues": "https://github.com/twigphp/Twig/issues", + "source": "https://github.com/twigphp/Twig/tree/v3.10.3" + }, + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "type": "tidelift" + } + ], + "time": "2024-05-16T10:04:27+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "dev", + "stability-flags": [], + "prefer-stable": true, + "prefer-lowest": false, + "platform": { + "php": ">=8.1" + }, + "platform-dev": [], + "platform-overrides": { + "php": "8.1.0" + }, + "plugin-api-version": "2.6.0" +} diff --git a/_docs_build/redirection_map b/_docs_build/redirection_map new file mode 100644 index 000000000..f7c1f6503 --- /dev/null +++ b/_docs_build/redirection_map @@ -0,0 +1,570 @@ +/book/index /index +/cookbook/index /index +/book/stable_api /contributing/code/bc +/book/internals /reference/events +/configuration/apache_router /routing +/cookbook/console/sending_emails /cookbook/console/request_context +/cookbook/deployment-tools /cookbook/deployment/tools +/cookbook/doctrine/migrations /bundles/DoctrineFixturesBundle/index +/cookbook/doctrine/doctrine_fixtures /bundles/DoctrineFixturesBundle/index +/cookbook/doctrine/mongodb /bundles/DoctrineMongoDBBundle/index +/cookbook/form/dynamic_form_generation /cookbook/form/dynamic_form_modification +/cookbook/form/simple_signup_form_with_mongodb /bundles/DoctrineMongoDBBundle/form +/cookbook/email /email +/cookbook/gmail /cookbook/email/gmail +/cookbook/console /components/console +/cookbook/tools/autoloader https://github.com/symfony/class-loader +/cookbook/tools/finder /components/finder +/cookbook/service_container/parentservices /service_container/parent_services +/cookbook/service_container/factories /service_container/factories +/cookbook/service_container/tags /service_container/tags +/reference/configuration/mongodb /bundles/DoctrineMongoDBBundle/config +/reference/YAML /components/yaml +/cookbook/console/generating_urls /cookbook/console/sending_emails +/cmf/reference/configuration/block /cmf/bundles/block/configuration +/cmf/reference/configuration/content /cmf/bundles/content/configuration +/cmf/reference/configuration/core /cmf/bundles/core/configuration +/cmf/reference/configuration/create /cmf/bundles/create/configuration +/cmf/reference/configuration/media /cmf/bundles/media/configuration +/cmf/reference/configuration/menu /cmf/bundles/menu/configuration +/cmf/reference/configuration/phpcr_odm /cmf/bundles/phpcr_odm/configuration +/cmf/reference/configuration/routing /cmf/bundles/routing/configuration +/cmf/reference/configuration/search /cmf/bundles/search/configuration +/cmf/reference/configuration/seo /cmf/bundles/seo/configuration +/cmf/reference/configuration/simple_cms /cmf/bundles/simple_cms/configuration +/cmf/reference/configuration/tree_browser /cmf/bundles/tree_browser/configuration +/cmf/cookbook/exposing_content_via_rest /cmf/bundles/content/exposing_content_via_rest +/cmf/cookbook/creating_a_cms/auto-routing /cmf/tutorial/auto-routing +/cmf/cookbook/creating_a_cms/conclusion /cmf/tutorial/conclusion +/cmf/cookbook/creating_a_cms/content-to-controllers /cmf/tutorial/content-to-controllers +/cmf/cookbook/creating_a_cms/getting-started /cmf/tutorial/getting-started +/cmf/cookbook/creating_a_cms/index /cmf/tutorial/index +/cmf/cookbook/creating_a_cms/introduction /cmf/tutorial/introduction +/cmf/cookbook/creating_a_cms/make-homepage /cmf/tutorial/make-homepage +/cmf/cookbook/creating_a_cms/sonata-admin /cmf/tutorial/sonata-admin +/cmf/cookbook/creating_a_cms/the-frontend /cmf/tutorial/the-frontend +/cookbook/upgrading /cookbook/upgrade/index +/cookbook/security/voters_data_permission /cookbook/security/voters +/cookbook/configuration/pdo_session_storage /cookbook/doctrine/pdo_session_storage +/cookbook/configuration/mongodb_session_storage /cookbook/doctrine/mongodb_session_storage +/cookbook/service_container/event_listener /event_dispatcher +/create_framework/http-foundation /create_framework/http_foundation +/create_framework/front-controller /create_framework/front_controller +/create_framework/http-kernel-controller-resolver /create_framework/http_kernel_controller_resolver +/create_framework/separation-of-concerns /create_framework/separation_of_concerns +/create_framework/unit-testing /create_framework/unit_testing +/create_framework/event-dispatcher /create_framework/event_dispatcher +/create_framework/http-kernel-httpkernelinterface /create_framework/http_kernel_httpkernelinterface +/create_framework/http-kernel-httpkernel-class /create_framework/http_kernel_httpkernel_class +/create_framework/dependency-injection /create_framework/dependency_injection +/cookbook/doctrine/file_uploads /cookbook/controller/upload_file +/book/installation /setup +/book/page_creation /page_creation +/book/controller /controller +/book/routing /routing +/book/templating /templating +/book/bundles /bundles +/book/doctrine /doctrine +/book/testing /testing +/book/validation /validation +/book/forms /forms +/book/security /security +/book/http_cache /http_cache +/book/translation /translation +/book/service_container /service_container +/book/http_fundamentals /introduction/http_fundamentals +/book/from_flat_php_to_symfony2 /introduction/from_flat_php_to_symfony2 +/book/configuration /configuration +/book/propel /propel/propel +/book/performance /performance +/bundles/installation /bundles +/cookbook/assetic/apply_to_option /frontend/assetic/apply_to_option +/cookbook/assetic/asset_management /frontend/assetic/asset_management +/cookbook/assetic/index /frontend/assetic/index +/cookbook/assetic/jpeg_optimize /frontend/assetic/jpeg_optimize +/cookbook/assetic/php /frontend/assetic/php +/cookbook/assetic/uglifyjs /frontend/assetic/uglifyjs +/cookbook/assetic/yuicompressor /frontend/assetic/yuicompressor +/assetic /frontend/assetic/index +/assetic/apply_to_option /frontend/assetic/apply_to_option +/assetic/asset_management /frontend/assetic/asset_management +/assetic/jpeg_optimize /frontend/assetic/jpeg_optimize +/assetic/php /frontend/assetic/php +/assetic/uglifyjs /frontend/assetic/uglifyjs +/assetic/yuicompressor /frontend/assetic/yuicompressor +/cookbook/bundles/best_practices /bundles/best_practices +/cookbook/bundles/configuration /bundles/configuration +/cookbook/bundles/extension /bundles/extension +/cookbook/bundles/index /bundles +/cookbook/bundles/inheritance /bundles/inheritance +/cookbook/bundles/installation /bundles +/cookbook/bundles/override /bundles/override +/cookbook/bundles/prepend_extension /bundles/prepend_extension +/cookbook/bundles/remove /bundles +/bundles/remove /bundles +/cookbook/cache/form_csrf_caching /http_cache/form_csrf_caching +/cookbook/cache/varnish /http_cache/varnish +/cookbook/composer /setup/composer +/cookbook/configuration/apache_router /routing +/cookbook/configuration/configuration_organization /configuration/configuration_organization +/cookbook/configuration/environments /configuration/environments +/cookbook/configuration/external_parameters /configuration/external_parameters +/cookbook/configuration/front_controllers_and_kernel /configuration/front_controllers_and_kernel +/cookbook/configuration/micro-kernel-trait /configuration/micro_kernel_trait +/cookbook/configuration/index /configuration +/cookbook/configuration/override_dir_structure /configuration/override_dir_structure +/cookbook/configuration/using_parameters_in_dic /configuration/using_parameters_in_dic +/cookbook/configuration/web_server_configuration /setup/web_server_configuration +/cookbook/console/command_in_controller /console/command_in_controller +/cookbook/console/commands_as_services /console/commands_as_services +/cookbook/console/console_command /console +/cookbook/console/index /console +/cookbook/console/logging /console +/cookbook/console/request_context /console/request_context +/cookbook/console/style /console/style +/cookbook/console/usage /console +/console/usage /console +/cookbook/controller/csrf_token_validation /security/csrf +/cookbook/controller/error_pages /controller/error_pages +/cookbook/controller/forwarding /controller/forwarding +/cookbook/controller/index /controller +/cookbook/controller/service /controller/service +/cookbook/controller/upload_file /controller/upload_file +/cookbook/debugging / +/debug/debugging / +/cookbook/deployment/tools /deployment/tools +/cookbook/doctrine/common_extensions /doctrine/common_extensions +/cookbook/doctrine/console /doctrine +/cookbook/doctrine/custom_dql_functions /doctrine/custom_dql_functions +/cookbook/doctrine/dbal /doctrine/dbal +/cookbook/doctrine/event_listeners_subscribers /doctrine/event_listeners_subscribers +/cookbook/doctrine/index /doctrine +/cookbook/doctrine/mapping_model_classes /doctrine +/doctrine/mapping_model_classes /doctrine +/cookbook/doctrine/mongodb_session_storage /doctrine/mongodb_session_storage +/cookbook/doctrine/multiple_entity_managers /doctrine/multiple_entity_managers +/cookbook/doctrine/pdo_session_storage /doctrine/pdo_session_storage +/cookbook/doctrine/registration_form /doctrine/registration_form +/cookbook/doctrine/resolve_target_entity /doctrine/resolve_target_entity +/cookbook/doctrine/reverse_engineering /doctrine/reverse_engineering +/doctrine/repository /doctrine +/doctrine/console /doctrine +/cookbook/email/cloud /email +/cookbook/email/dev_environment /email/dev_environment +/cookbook/email/email /email +/cookbook/email/gmail /email +/cookbook/email/index /email +/cookbook/email/spool /email/spool +/cookbook/email/testing /email/testing +/cookbook/event_dispatcher/before_after_filters /event_dispatcher#event-dispatcher-before-after-filters +/event_dispatcher/before_after_filters /event_dispatcher#event-dispatcher-before-after-filters +/cookbook/event_dispatcher/class_extension /event_dispatcher/class_extension +/cookbook/event_dispatcher/event_listener /event_dispatcher +/cookbook/event_dispatcher/index /event_dispatcher +/cookbook/event_dispatcher/method_behavior /event_dispatcher/method_behavior +/event_dispatcher/method_behavior /event_dispatcher#event-dispatcher-method-behavior +/cookbook/expressions /security/expressions +/expressions /security/expressions +/cookbook/form/create_custom_field_type /form/create_custom_field_type +/cookbook/form/create_form_type_extension /form/create_form_type_extension +/cookbook/form/data_transformers /form/data_transformers +/cookbook/form/direct_submit /form/direct_submit +/cookbook/form/dynamic_form_modification /form/dynamic_form_modification +/cookbook/form/form_collections /form/form_collections +/cookbook/form/form_customization /form/form_customization +/cookbook/form/index /forms +/cookbook/form/inherit_data_option /form/inherit_data_option +/cookbook/form/unit_testing /form/unit_testing +/cookbook/form/use_empty_data /form/use_empty_data +/cookbook/frontend/bower /frontend +/cookbook/frontend/index /frontend +/cookbook/install/unstable_versions /setup/unstable_versions +/cookbook/install/bundles /setup/bundles +/cookbook/install/index /setup +/cookbook/install/upgrade_major /setup/upgrade_major +/cookbook/install/upgrade_minor /setup/upgrade_minor +/cookbook/install/upgrade_patch /setup/upgrade_patch +/cookbook/logging/channels_handlers /logging/channels_handlers +/cookbook/logging/index /logging +/cookbook/logging/monolog /logging +/cookbook/logging/monolog_console /logging/monolog_console +/cookbook/logging/monolog_email /logging/monolog_email +/cookbook/logging/monolog_regex_based_excludes /logging/monolog_regex_based_excludes +/cookbook/profiler/data_collector /profiler#profiler-data-collector +/profiler/data_collector /profiler#profiler-data-collector +/cookbook/profiler/index /profiler +/cookbook/profiler/matchers /profiler/matchers +/cookbook/profiler/profiling_data /profiler/profiling_data +/cookbook/profiler/storage /profiler/storage +/cookbook/psr7 /components/psr7 +/cookbook/request/index /request +/cookbook/request/load_balancer_reverse_proxy /deployment/proxies +/cookbook/request/mime_type /reference/configuration/framework +/cookbook/routing/conditions /routing/conditions +/cookbook/routing/custom_route_loader /routing/custom_route_loader +/cookbook/routing/debug /routing/debug +/cookbook/routing/external_resources /routing/external_resources +/cookbook/routing/extra_information /routing/extra_information +/cookbook/routing/index /routing +/cookbook/routing/method_parameters /routing/requirements +/cookbook/routing/optional_placeholders /routing/optional_placeholders +/cookbook/routing/redirect_in_config /routing/redirect_in_config +/cookbook/routing/redirect_trailing_slash /routing/redirect_trailing_slash +/cookbook/routing/requirements /routing/requirements +/cookbook/routing/routing_from_database /routing/routing_from_database +/cookbook/routing/scheme /routing/scheme +/cookbook/routing/service_container_parameters /routing/service_container_parameters +/cookbook/routing/slash_in_parameter /routing/slash_in_parameter +/cookbook/security/access_control /security/access_control +/cookbook/security/acl /security/acl +/cookbook/security/acl_advanced /security/acl_advanced +/cookbook/security/api_key_authentication /security/api_key_authentication +/cookbook/security/csrf_in_login_form /security/csrf +/cookbook/security/custom_authentication_provider /security/custom_authentication_provider +/cookbook/security/custom_password_authenticator /security/custom_password_authenticator +/cookbook/security/custom_provider /security/custom_provider +/cookbook/security/entity_provider /security/entity_provider +/cookbook/security/firewall_restriction /security/firewall_restriction +/cookbook/security/force_https /security/force_https +/cookbook/security/form_login /security/form_login +/cookbook/security/form_login_setup /security/form_login_setup +/cookbook/security/guard-authentication /security/guard_authentication +/cookbook/security/host_restriction /security/host_restriction +/cookbook/security/impersonating_user /security/impersonating_user +/cookbook/security/ldap /security/ldap +/cookbook/security/multiple_guard_authenticators /security/multiple_guard_authenticators +/cookbook/security/index /security +/cookbook/security/multiple_user_providers /security/multiple_user_providers +/cookbook/security/named_encoders /security/named_encoders +/cookbook/security/pre_authenticated /security/pre_authenticated +/cookbook/security/remember_me /security/remember_me +/cookbook/security/securing_services /security/securing_services +/cookbook/security/target_path /security/target_path +/cookbook/security/user_checkers /security/user_checkers +/cookbook/security/voters /security/voters +/cookbook/serializer /serializer +/cookbook/service_container/compiler_passes /service_container/compiler_passes +/cookbook/service_container/index /service_container +/cookbook/service_container/scopes /service_container/scopes +/cookbook/service_container/shared /service_container/shared +/cookbook/session/avoid_session_start /session/avoid_session_start +/cookbook/session/index /session +/cookbook/session/limit_metadata_writes /reference/configuration/framework +/session/limit_metadata_writes /reference/configuration/framework +/cookbook/session/locale_sticky_session /session#locale-sticky-session +/cookbook/locale_sticky_session /session#locale-sticky-session +/cookbook/session/php_bridge /session/php_bridge +/cookbook/session/proxy_examples /session/proxy_examples +/cookbook/session/sessions_directory /session/sessions_directory +/cookbook/symfony1 /introduction/symfony1 +/cookbook/templating/global_variables /templating#templating-global-variables +/templating/global_variables /templating#templating-global-variables +/cookbook/templating/index /templating +/cookbook/templating/namespaced_paths /templating/namespaced_paths +/cookbook/templating/PHP /templating/PHP +/cookbook/templating/render_without_controller /templating/render_without_controller +/cookbook/templating/twig_extension /templating/twig_extension +/cookbook/testing/bootstrap /testing/bootstrap +/cookbook/testing/database /testing/database +/cookbook/testing/doctrine /testing/doctrine +/cookbook/testing/http_authentication /testing/http_authentication +/cookbook/testing/index /testing +/cookbook/testing/insulating_clients /testing/insulating_clients +/cookbook/testing/profiling /testing/profiling +/cookbook/testing/simulating_authentication /testing/simulating_authentication +/cookbook/upgrade/bundles /upgrade/patch_version +/cookbook/upgrade/index /setup/upgrade_major +/cookbook/upgrade/major_version /setup/upgrade_minor +/cookbook/upgrade/minor_version /setup/upgrade_major +/cookbook/upgrade/patch_version /upgrade/bundles +/cookbook/validation/custom_constraint /validation/custom_constraint +/cookbook/validation/group_service_resolver /form/validation_group_service_resolver +/cookbook/validation/index /validation +/cookbook/validation/severity /validation/severity +/cookbook/web_server/built_in /setup/built_in_web_server +/cookbook/web_server/index /setup/built_in_web_server +/cookbook/web_services/index /controller/soap_web_service +/cookbook/web_services/php_soap_extension /controller/soap_web_service +/cookbook/workflow/homestead /setup/homestead +/cookbook/workflow/index /setup +/cookbook/workflow/new_project_git /setup +/cookbook/workflow/new_project_svn /setup +/setup/new_project_git /setup +/setup/new_project_svn /setup +/components/asset/index /components/asset +/components/asset/introduction /components/asset +/components/browser_kit/index /components/browser_kit +/components/browser_kit/introduction /components/browser_kit +/components/class_loader/introduction https://github.com/symfony/class-loader +/components/class_loader/index https://github.com/symfony/class-loader +/components/class_loader/cache_class_loader https://github.com/symfony/class-loader +/components/class_loader/class_loader https://github.com/symfony/class-loader +/components/class_loader/class_map_generator https://github.com/symfony/class-loader +/components/class_loader/debug_class_loader https://github.com/symfony/class-loader +/components/class_loader/map_class_loader https://github.com/symfony/class-loader +/components/class_loader/map_class_loader https://github.com/symfony/class-loader +/components/class_loader/psr4_class_loader https://github.com/symfony/class-loader +/components/config/introduction /components/config +/components/config/index /components/config +/components/console/helpers/tablehelper /components/console/helpers/table +/components/console/helpers/progresshelper /components/console/helpers/progressbar +/components/console/helpers/dialoghelper /components/console/helpers/questionhelper +/components/console/introduction /components/console +/components/console/index /components/console +/components/debug/class_loader /components/debug +/components/debug/introduction /components/debug +/components/debug/index /components/debug +/components/dependency_injection/advanced /service_container/alias_private +/components/dependency_injection/autowiring /service_container/autowiring +/components/dependency_injection/definitions /service_container/definitions +/components/dependency_injection/introduction /components/dependency_injection +/components/dependency_injection/index /components/dependency_injection +/components/dependency_injection/factories /service_container/factories +/components/dependency_injection/lazy_services /service_container/lazy_services +/components/dependency_injection/parameters /service_container/parameters +/components/dependency_injection/parentservices /service_container/parent_services +/components/dependency_injection/parent_services /service_container/parent_services +/components/dependency_injection/synthetic_services /service_container/synthetic_services +/components/dependency_injection/tags /service_container/tags +/components/dependency_injection/types /service_container/injection_types +/components/event_dispatcher/index /components/event_dispatcher +/components/event_dispatcher/introduction /components/event_dispatcher +/components/expression_language/introduction /components/expression_language +/components/expression_language/index /components/expression_language +/components/filesystem/introduction /components/filesystem +/components/filesystem/index /components/filesystem +/components/form/form_events /form/events +/components/form/introduction /components/form +/components/form/index /components/form +/components/form/type_guesser /form/type_guesser +/components/http_foundation/index /components/http_foundation +/components/http_foundation/introduction /components/http_foundation +/request/load_balancer_reverse_proxy /deployment/proxies +/components/http_foundation/trusting_proxies /deployment/proxies +/components/http_kernel/introduction /components/http_kernel +/components/http_kernel/index /components/http_kernel +/components/property_access/introduction /components/property_access +/components/property_access/index /components/property_access +/components/routing/index https://github.com/symfony/routing +/components/routing/introduction https://github.com/symfony/routing +/components/routing/hostname_pattern /routing/hostname_pattern +/components/security/introduction /components/security +/components/security/index /components/security +/components/templating/introduction https://github.com/symfony/templating +/components/templating/index https://github.com/symfony/templating +/components/templating/helpers/assetshelper https://github.com/symfony/templating +/components/templating/helpers/slotshelper https://github.com/symfony/templating +/components/translation/introduction /components/translation +/components/translation/index /components/translation +/components/var_dumper/introduction /components/var_dumper +/components/var_dumper/index /components/var_dumper +/components/yaml/introduction /components/yaml +/components/yaml/index /components/yaml +/console/logging /console +/controller/csrf_token_validation /security/csrf +/deployment/tools /deployment +/form/csrf_protection /security/csrf +/install/bundles /setup/bundles +/email/gmail /email +/email/cloud /email +/event_dispatcher/class_extension /event_dispatcher +/form /forms +/form/use_virtual_forms /form/inherit_data_option +/frontend/assetic /frontend/assetic/index +/frontend/assetic/apply_to_option /frontend/assetic/index +/frontend/assetic/asset_management /frontend/assetic/index +/frontend/assetic/jpeg_optimize /frontend/assetic/index +/frontend/assetic/php /frontend/assetic/index +/frontend/assetic/uglifyjs /frontend/assetic/index +/frontend/assetic/yuicompressor /frontend/assetic/index +/reference/configuration/assetic /frontend/assetic/index +/security/target_path /security +/security/csrf_in_login_form /security/csrf +/service_container/service_locators /service_container/service_subscribers_locators +/service_container/third_party /service_container +/templating/templating_service /templates +/testing/simulating_authentication /testing/http_authentication +/validation/group_service_resolver /form/validation_group_service_resolver +/request/load_balancer_reverse_proxy /deployment/proxies +/quick_tour/the_controller /quick_tour/the_big_picture +/quick_tour/the_view /quick_tour/flex_recipes +/service_container/service_locators /service_container/service_subscribers_locators +/templating/overriding /bundles/override +/templating/twig_extension /templates#templates-twig-extension +/templating/hinclude /templates#templates-hinclude +/templating/PHP /templates +/security/custom_provider /security/user_provider +/security/multiple_user_providers /security/user_provider +/security/custom_password_authenticator /security/guard_authentication +/security/api_key_authentication /security/guard_authentication +/security/pre_authenticated /security/auth_providers +/security/host_restriction /security/firewall_restriction +/security/acl_advanced /security/acl +/security/password_encoding /security +/weblink /web_link +/components/weblink https://github.com/symfony/web-link +/frontend/encore/installation-no-flex /frontend/encore/installation +/http_cache/form_csrf_caching /security/csrf +/console/logging /console +/reference/forms/twig_reference /form/form_customization +/form/rendering /form/form_customization +/profiler/matchers /profiler +/profiler/profiling_data /profiler +/profiler/wdt_follow_ajax /profiler +/security/entity_provider /security/user_provider +/session/avoid_session_start /session +/session/sessions_directory /session +/session/configuring_ttl /session#session-configure-ttl +/frontend/encore/legacy-apps /frontend/encore/legacy-applications +/configuration/external_parameters /configuration/environment_variables +/contributing/code/patches /contributing/code/pull_requests +/workflow/state-machines /workflow/workflow-and-state-machine +/workflow/introduction /workflow/workflow-and-state-machine +/workflow/usage /workflow +/introduction/from_flat_php_to_symfony2 /introduction/from_flat_php_to_symfony +/configuration/environment_variables /configuration/env_var_processors +/configuration/configuration_organization /configuration +/configuration/environments /configuration +/configuration/configuration_organization /configuration +/email/dev_environment /mailer +/email/spool /mailer +/email/testing /mailer +/contributing/community/other /contributing/community +/profiler/storage /profiler +/setup/composer /setup +/security/security_checker /setup +/setup/built_in_web_server /setup/symfony_server +/service_container/parameters /configuration +/routing/generate_url_javascript /routing +/routing/slash_in_parameter /routing +/routing/scheme /routing +/routing/optional_placeholders /routing +/routing/conditions /routing +/routing/requirements /routing +/routing/redirect_trailing_slash /routing +/routing/debug /routing +/routing/service_container_parameters /routing +/routing/redirect_in_config /routing +/routing/external_resources /routing +/routing/hostname_pattern /routing +/routing/extra_information /routing +/console/request_context /routing +/form/action_method /forms +/reference/requirements /setup +/bundles/inheritance /bundles/override +/templating /templates +/templating/escaping /templates#output-escaping +/templating/syntax /templates#linting-twig-templates +/templating/debug /templates#the-dump-twig-utilities +/templating/render_without_controller /templates#rendering-a-template-directly-from-a-route +/templating/app_variable /templates#the-app-global-variable +/templating/formats /templates +/templating/namespaced_paths /templates#template-namespaces +/templating/embedding_controllers /templates#embedding-controllers +/templating/inheritance /templates#template-inheritance-and-layouts +/testing/doctrine /testing/database +/translation/templates /translation#translation-in-templates +/translation/debug /translation#translation-debug +/translation/lint /translation#translation-lint +/translation/locale /translation#translation-locale +/doctrine/lifecycle_callbacks /doctrine/events +/doctrine/event_listeners_subscribers /doctrine/events +/doctrine/common_extensions /doctrine +/best_practices/index /best_practices +/best_practices/introduction /best_practices +/best_practices/creating-the-project /best_practices +/best_practices/configuration /best_practices +/best_practices/business-logic /best_practices +/best_practices/controllers /best_practices +/best_practices/templates /best_practices +/best_practices/forms /best_practices +/best_practices/i18n /best_practices +/best_practices/security /best_practices +/best_practices/web-assets /best_practices +/best_practices/tests /best_practices +/components/debug https://github.com/symfony/debug +/components/translation https://github.com/symfony/translation +/components/translation/usage /translation +/components/translation/custom_formats https://github.com/symfony/translation +/components/translation/custom_message_formatter https://github.com/symfony/translation +/components/notifier https://github.com/symfony/notifier +/components/routing https://github.com/symfony/routing +/session/database /session#session-database +/doctrine/pdo_session_storage /session#session-database-pdo +/doctrine/mongodb_session_storage /session#session-database-mongodb +/components/dotenv https://github.com/symfony/dotenv +/components/mercure /mercure +/components/polyfill_apcu https://github.com/symfony/polyfill-apcu +/components/polyfill_ctype https://github.com/symfony/polyfill-ctype +/components/polyfill_iconv https://github.com/symfony/polyfill-iconv +/components/polyfill_intl_grapheme https://github.com/symfony/polyfill_intl-grapheme +/components/polyfill_intl_icu https://github.com/symfony/polyfill_intl-icu +/components/polyfill_intl_idn https://github.com/symfony/polyfill_intl-idn +/components/polyfill_intl_normalizer https://github.com/symfony/polyfill_intl-normalizer +/components/polyfill_mbstring https://github.com/symfony/polyfill-mbstring +/components/polyfill_php54 https://github.com/symfony/polyfill-php54 +/components/polyfill_php55 https://github.com/symfony/polyfill-php55 +/components/polyfill_php56 https://github.com/symfony/polyfill-php56 +/components/polyfill_php70 https://github.com/symfony/polyfill-php70 +/components/polyfill_php71 https://github.com/symfony/polyfill-php71 +/components/polyfill_php72 https://github.com/symfony/polyfill-php72 +/components/polyfill_php73 https://github.com/symfony/polyfill-php73 +/components/polyfill_uuid https://github.com/symfony/polyfill-uuid +/components/web_link https://github.com/symfony/web-link +/components/templating https://github.com/symfony/templating +/components/error_handler https://github.com/symfony/error-handler +/components/class_loader https://github.com/symfony/class-loader +/frontend/encore/versus-assetic /frontend +/components/http_client /http_client +/components/mailer /mailer +/messenger/message-recorder /messenger/dispatch_after_current_bus +/components/stopwatch https://github.com/symfony/stopwatch +/service_container/3.3-di-changes https://symfony.com/doc/3.4/service_container/3.3-di-changes.html +/frontend/encore/shared-entry /frontend/encore/split-chunks +/frontend/encore/page-specific-assets /frontend/encore/simple-example#page-specific-javascript-or-css +/testing/functional_tests_assertions /testing#testing-application-assertions +/components https://symfony.com/components +/components/index https://symfony.com/components +/serializer/normalizers /components/serializer#normalizers +/components/serializer#component-serializer-attributes-groups-annotations /components/serializer#component-serializer-attributes-groups-attributes +/logging/monolog_regex_based_excludes /logging/monolog_exclude_http_codes +/security/named_encoders /security/named_hashers +/components/inflector /string#inflector +/security/experimental_authenticators /security +/security/user_provider /security/user_providers +/security/reset_password /security/passwords#reset-password +/security/auth_providers /security#security-authenticators +/security/form_login /security#form-login +/security/form_login_setup /security#form-login +/security/json_login_setup /security#json-login +/security/named_hashers /security/passwords#named-password-hashers +/security/password_migration /security/passwords#security-password-migration +/security/acl https://github.com/symfony/acl-bundle/blob/main/src/Resources/doc/index.rst +/security/securing_services /security#securing-other-services +/security/authenticator_manager /security +/security/multiple_guard_authenticators /security/entry_point +/security/guard_authentication /security/custom_authenticator +/components/security/authentication /security#authenticating-users +/components/security/authorization /security#access-control-authorization +/components/security/firewall /security#the-firewall +/components/security/secure_tools /security/passwords +/components/security /security +/components/var_dumper/advanced /components/var_dumper#advanced-usage +/components/yaml/yaml_format /reference/formats/yaml +/components/expression_language/syntax /reference/formats/expression_language +/components/expression_language/ast /components/expression_language#expression-language-ast +/components/expression_language/caching /components/expression_language#expression-language-caching +/components/expression_language/extending /components/expression_language#expression-language-extending +/notifier/chatters /notifier#sending-chat-messages +/notifier/texters /notifier#sending-sms +/notifier/events /notifier#notifier-events +/email /mailer +/frontend/assetic /frontend +/frontend/assetic/index /frontend +/controller/argument_value_resolver /controller/value_resolver +/frontend/ux https://symfony.com/bundles/StimulusBundle/current/index.html +/messenger/handler_results /messenger#messenger-getting-handler-results +/messenger/dispatch_after_current_bus /messenger#messenger-transactional-messages +/messenger/multiple_buses /messenger#messenger-multiple-buses +/frontend/encore/server-data /frontend/server-data +/components/string /string diff --git a/_docs_build/spelling_word_list.txt b/_docs_build/spelling_word_list.txt new file mode 100644 index 000000000..fa05ce943 --- /dev/null +++ b/_docs_build/spelling_word_list.txt @@ -0,0 +1,344 @@ +accessor +Akamai +analytics +Ansi +Ansible +async +authenticator +authenticators +autocompleted +autocompletion +autoconfiguration +autoconfigure +autoconfigured +autoconfigures +autoconfiguring +autoload +autoloaded +autoloader +autoloaders +autoloading +autoprefixing +autowire +autowireable +autowired +autowiring +backend +backends +balancer +balancers +bcrypt +benchmarking +Bitbucket +bitmask +bitmasks +bitwise +Blackfire +boolean +booleans +Brasseur +browserslist +buildpack +buildpacks +bundler +cacheable +Caddy +callables +camelCase +casted +changelog +changeset +charset +charsets +checkboxes +classmap +classname +clearers +cloner +cloners +codebase +config +configs +configurator +configurators +contrib +cron +cronjobs +cryptographic +cryptographically +Ctrl +ctype +cURL +customizable +customizations +Cygwin +dataset +datepicker +decrypt +denormalization +denormalize +denormalized +denormalizing +deprecations +deserialization +deserialize +deserialized +deserializing +destructor +dev +dn +DNS +docblock +Dotenv +downloader +Doxygen +DSN +Dunglas +easter +Eberlei +emilie +enctype +entrypoints +enum +env +escaper +escpaer +extensibility +extractable +eZPublish +Fabien +failover +filesystem +filesystems +formatter +formatters +frontend +getter +getters +GitHub +gmail +Gmail +Goutte +grapheme +hardcode +hardcoded +hardcodes +hardcoding +hasser +hassers +headshot +HInclude +hostname +https +iconv +igbinary +incrementing +ini +inlined +inlining +installable +instantiation +interoperable +intl +Intl +invokable +IPv +isser +issers +Jpegoptim +jQuery +js +Karlton +kb +kB +Kévin +Ki +KiB +kibibyte +Kubernetes +Kudu +labelled +latin +Ldap +libketama +licensor +lifecycle +liip +linter +localhost +Loggly +Logplex +lookups +loopback +lorenzo +Luhn +macOS +matcher +matchers +mbstring +mebibyte +memcache +memcached +MiB +michelle +minification +minified +minifier +minifies +minify +minifying +misconfiguration +misconfigured +misgendering +Monolog +mutator +nagle +namespace +namespaced +namespaces +namespacing +natively +nd +netmasks +nginx +normalizer +normalizers +npm +nyholm +OAuth +OPcache +overcomplicate +Packagist +parallelizes +parsers +PHP +PHPUnit +PID +plaintext +polyfill +polyfills +postcss +Potencier +pre +preconfigured +predefines +Predis +preload +preloaded +preloading +prepend +prepended +prepending +prepends +preprocessed +preprocessors +Procfile +profiler +programmatically +prototyped +rebase +reconfiguring +reconnection +redirections +refactorization +regexes +renderer +resolvers +responder +reStructuredText +reusability +runtime +sandboxing +schemas +screencast +semantical +serializable +serializer +sexualized +Silex +sluggable +socio +specificities +SQLite +stacktrace +stacktraces +storages +stringified +stylesheet +stylesheets +subclasses +subdirectories +subdirectory +sublcasses +sublicense +sublincense +subrequests +subtree +superclass +superglobal +superglobals +symfony +Symfony +symlink +symlinks +syntaxes +templating +testability +th +theming +throbber +timestampable +timezones +TLS +tmpfs +tobias +todo +Tomayko +Toolbelt +tooltip +Traversable +triaging +UI +uid +unary +unauthenticate +uncacheable +uncached +uncomment +uncommented +undelete +unhandled +unicode +Unix +unmapped +unminified +unported +unregister +unrendered +unserialize +unserialized +unserializing +unsubmitted +untracked +uploader +URI +validator +validators +variadic +VirtualBox +Vue +webpack +webpacked +webpackJsonp +webserver +whitespace +whitespaces +woh +Wordpress +Xdebug +xkcd +Xliff +XML +XPath +yaml +yay diff --git a/src/Resources/doc/index.rst b/src/Resources/doc/index.rst index 9d5bcb78e..1d56c1e9c 100644 --- a/src/Resources/doc/index.rst +++ b/src/Resources/doc/index.rst @@ -3,7 +3,7 @@ The Symfony MakerBundle Symfony Maker helps you create empty commands, controllers, form classes, tests and more so you can forget about writing boilerplate code. This bundle -assumes you're using a standard Symfony 5 directory structure, but many +assumes you're using a standard Symfony 6.4 directory structure, but many commands can generate code into any application. Installation @@ -65,18 +65,74 @@ file by their respective environment variables: Configuration ------------- -This bundle doesn't require any configuration. But, you *can* configure -the root namespace that is used to "guess" what classes you want to generate: +This bundle doesn't require any configuration. But, you *can* override the default +configuration: .. code-block:: yaml - # config/packages/dev/maker.yaml - # create this file if you need to configure anything - maker: - # tell MakerBundle that all of your classes live in an - # Acme namespace, instead of the default App - # (e.g. Acme\Entity\Article, Acme\Command\MyCommand, etc) - root_namespace: 'Acme' + # config/packages/maker.yaml + when@dev: + maker: + root_namespace: 'App' + generate_final_classes: true + generate_final_entities: false + +root_namespace +~~~~~~~~~~~~~~ + +**type**: ``string`` **default**: ``App`` + +The root namespace used when generating all of your classes +(e.g. ``App\Entity\Article``, ``App\Command\MyCommand``, etc). Changing +this to ``Acme`` would cause MakerBundle to create new classes like +(e.g. ``Acme\Entity\Article``, ``Acme\Command\MyCommand``, etc). + +generate_final_classes +~~~~~~~~~~~~~~~~~~~~~~ + +**type**: ``boolean`` **default**: ``true`` + +By default, MakerBundle will generate all of your classes with the +``final`` PHP keyword except for doctrine entities. Set this to ``false`` +to override this behavior for all maker commands. + +See https://www.php.net/manual/en/language.oop5.final.php + +.. code-block:: php + + final class MyVoter + { + ... + } + +.. versionadded:: 1.61 + + ``generate_final_classes`` was introduced in MakerBundle 1.61 + + +generate_final_entities +~~~~~~~~~~~~~~~~~~~~~~~ + +**type**: ``boolean`` **default**: ``false`` + +By default, MakerBundle will not generate any of your doctrine entity +classes with the ``final`` PHP keyword. Set this to ``true`` +to override this behavior for all maker commands that create +entities. + +See https://www.php.net/manual/en/language.oop5.final.php + +.. code-block:: php + + #[ORM\Entity(repositoryClass: TaskRepository::class)] + final class Task extends AbstractEntity + { + ... + } + +.. versionadded:: 1.61 + + ``generate_final_entities`` was introduced in MakerBundle 1.61. Creating your Own Makers ------------------------ @@ -103,6 +159,5 @@ For that reason, in general, the generated code cannot be modified. In many case adding your *own* maker command is so easy, that we recommend that. However, if there is some extension point that you'd like, please open an issue so we can discuss! -.. _`SensioGeneratorBundle`: https://github.com/sensiolabs/SensioGeneratorBundle .. _`AbstractMaker`: https://github.com/symfony/maker-bundle/blob/main/src/Maker/AbstractMaker.php .. _`core maker commands`: https://github.com/symfony/maker-bundle/tree/main/src/Maker