Николай Егоров, для сохранения инкапсуляции, т.к. в $this->images хранится лишь ссылка на коллекцию.
Если мы вернем эту ссылку(вместо создания копии), то это позволит рулить состоянием сущности извне, в обход методов этой сущности.
Максим Барулин: Хороший вопрос. Поскольку этот макрос нигде больше не юзается, плюс его немного правили в дальнейшем, я не вижу каких-либо веских аргументов в пользу этого решения.
Как вариант, попробуйте в оригинальном темплейте вернуть этот блок обратно, пофиксить названия переменных(в макросе они чуть изменены) и потестить. Если ничего не упадет - можете смело открывать PR. Очень похоже, что ваш usecase просто не учли. Это ж опенсорс :)
VZVZ:
>Ведь токен - это тоже инфа о сессии по сути.
Не совсем, это инфа о клиенте прежде всего. Хранить его на сервере можно и даже нужно(иначе никак). По нему как раз идет аутентификация.
Тут про то, что неявных состояний, влияющих на вывод данных быть не должно. То есть результат запроса с любого устройства/места/планеты должен быть предсказуем. Поэтому и куки и сессии отпадают.
>И как мне сделать, чтобы тестовыe запросы из адресной строки шли с Accept?
Простым switch(). Если там конкретно Accept: application/xml то вываливайте хмл, в любом другом случае вываливайте JSON.
Но безусловно можно пойти и сделать как у VK: парсить request и брать запрашиваемый формат оттуда.
VZVZ куков быть в апи вообще не должно, никак и никогда. Потому что оно должно быть stateless. Oauth с accessToken - это ок, да. Но даже в этом случае чтобы его получить без Authorization хедера не обойтись.
Если хотите дебажить в браузере - пожалуйста. Устанавливайте, скажем, Json как дефолтный респонс-тайп и вываливайте клиенту. И уже если ему понадобится там XML или хтмл или еще чего - он вам об этом сам сообщит в заголовке.
Думай Головой прочитал обновленную версию вашего вопроса, в первой выглядело, будто вам нужен готовый бандл для конвертации данных. Для админки + витрины можете посмотреть в сторону https://github.com/Sylius/Sylius
dk-web: Везде один формат инпута должен быть. Исключение - показать юзеру. На морде можете что угодно делать с датой. Заведите 2 инпута: один видимый для юзера, другой type="hidden" с системной датой. Если требуется на морде дату изменять - то гуглите в сторону DatePicker JS
$this->images
хранится лишь ссылка на коллекцию.Если мы вернем эту ссылку(вместо создания копии), то это позволит рулить состоянием сущности извне, в обход методов этой сущности.