Что на самом деле делает включение аннотаций Symfony?

Документация Symfony говорит, что для включения аннотаций вы должны выполнить следующую команду.

$ composer require annotations

Что на самом деле происходит за кулисами с этой командой для включения аннотаций?

Меня это сбивает с толку, потому что обычно я бы использовал что-то вроде

composer require foo/baz

Чтобы установить пакет foo/baz — но annotations не является пакетом — или, по крайней мере, мне он не кажется таковым. Пакеты обычно имеют структуру namespace/packagename, а annotations представляет собой одно слово.

Кроме того, я изменил свой файл composer.json до и после запуска этой команды, а также только разные apepars, чтобы увеличить младшую версию на sensio/framework-extra-bundle (что даже не должно иметь значения, поскольку ^5.1 SemVer переводится в 5.latestst, верно? )

$ diff composer.json composer.json.orig 
8c8
<         "sensio/framework-extra-bundle": "^5.2",
---
>         "sensio/framework-extra-bundle": "^5.1",

Так как же на самом деле работает этот composer require annotations и какие изменения он вносит, чтобы включить аннотации маршрутов?

Он называется Symfony Flex. Подробнее symfony.com/doc/current/setup/flex.html#how-does-flex-work и рецепт для annotations можно найти здесь github.com/symfony/recipes/blob/master/sensio/…

Vadim Ashikhman 11.02.2019 00:29

Спасибо @VadimAshikhman - рад отметить это как принятый ответ, если это реальный ответ :)

Alan Storm 11.02.2019 01:48
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
853
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

«аннотации» здесь — это псевдоним для Рецепт Symfony.

Перейдите на сайт рецептов Symfony: https://flex.symfony.com/ и найдите «аннотации». Скорее всего, вы найдете два пакета, и тот, который вас интересует, — это второй: sensio/framework-extra-bundle

Когда вы запускаете composer require annotations, композитор устанавливает пакет (точно так же, как если бы вы делали composer require sensio/framework-extra-bundle, или обновляет его, если он у вас уже есть), и он также запускает связанный с ним рецепт (в зависимости от вашей версии, это здесь: https://github.com/symfony/recipes/tree/master/sensio/framework-extra-bundle)

Рецепт фактически копирует кучу файлов в ваш рабочий каталог, так что конфигурация выполняется автоматически, и вам не нужно беспокоиться. Некоторые рецепты добавляют новую консольную команду, добавляют файлы конфигурации или двоичный файл ... это довольно мощно.

Все эти изменения записываются в новый файл конфигурации относительноsymfony.lock, где вы можете найти запущенные рецепты с некоторой информацией.

NB : you should commit the symfony.lock file if you use a VCS

Другие вопросы по теме