Быстрый вопрос о наилучшей практике.
У меня есть приложение AJAX, в котором есть 4 маршрута, которые все возвращают JSON, которые будут использоваться jQuery.
В настоящее время я использую что-то подобное в конце контроллера
return new Response(json_encode($some_array));
В одном месте я использую JMSSerializer, потому что объект, который я пытаюсь передать Javascript, имеет защищенные атрибуты. Это никогда не казалось правильным, и я подумал в какой-то момент, если я должен «научить» объект знать, как закодировать все его атрибуты JSON и отправить их как возвращаемое значение одного из его методов.
Во всяком случае, сегодня утром у меня была мозговая волна, что я должен сделать шаблон Twig JSON, который содержит точный формат, который я хочу ему вывести, а затем заполнить переменные из PHP. Пара циклов также понадобится для вывода коллекции объектов внутри объекта.
Таким образом, существует явное обещание / контракт с PHP о том, что именно он вернется к Javascript, который не может быть испорчен, если я случайно напомню об изменении объекта. Я подозреваю, что это будет проще для парня, который делает javascript для понимания, поскольку шаблон будет легче читать, чем PHP.
Я на правильном пути: следует ли использовать шаблоны JSON Twig, а не json_encode вообще?
EDIT (тем временем назад на ранчо)
После публикации этого вопроса мое исследование гласит:
Шаблоны Twig JSON vs json_encode
Если вы беспокоитесь об отсутствии контракта, то, возможно, вам стоит просто написать единичный тест. Это может пойти еще дальше, так как вы могли бы также заключить договор о значениях атрибутов.