Где разместить массивы для общего хранения данных в Symfony

Я новичок в Symfony, но мне нравится знакомиться с ним (и многими концепциями, стоящими за ним). MVC довольно нов для меня с точки зрения того, как я сталкиваюсь с этим в Symfony.

Мой вопрос заключается в том, что если у меня есть простой массив часто используемых данных, который, я думаю, не обязательно принадлежит к таблице базы данных, где я должен хранить это. Это сущность? Должен ли я хранить его в Должен ли я поместить его в контроллер? Где-нибудь еще?

Я говорю конкретно о чем-то вроде массива штатов США, который я мог бы использовать для включения выпадающего списка. Прямо сейчас мне нужно построить сущность и сохранить ее в базе данных, но я хотел бы знать, есть ли лучший / предпочтительный способ сделать это.

В мои процедурные дни я сохранял файл с именем «includes / arrays.php» и извлекал его, когда мне был нужен один из них.

Спасибо

4

Решение

Если вы хотите использовать эти данные с другими сущностями, например, State будет связан с объектом Adress, я бы остановился на Entities, потому что это облегчает реализацию и работу с отношениями (я предполагаю, что вы используете какой-то ORM, например, Doctrine).

Если вы не хотите использовать эти данные с другими объектами, возможно, вы хотели бы как-то жестко закодировать их во все шаблоны. http://symfony.com/doc/current/cookbook/templating/global_variables.html (Я предполагал, что вы используете Twig).

На аналогичный вопрос ответили здесь:
Где определить статический массив, связанный с сущностью в symfony2?

0

Другие решения

Это зависит. Я бы предпочел иметь такие данные в базе данных. Предположим, что в будущем у вас будет бэк-офис, который обновляет данные.

Или вы могли бы использовать конфигурационные файлы. Например, в формате yml массивы легко определить.

0

Как сказал @foxtrot, любые изменяемые данные должны храниться в базе данных, чтобы вам не приходилось редактировать какой-либо код при изменении.

Сначала я создал бы Entity для общих данных, а затем я использовал бы Fixtures для генерации записей в базе данных при развертывании вашего кода.

Таким образом, вы разрешаете последующее редактирование через формы или phpMyAdmin, но вы также можете записать значения по умолчанию в класс PHP, чтобы вам не приходилось вручную вводить все их в базу данных.

Увидеть Symfony — DoctrineFixturesBundle

0
По вопросам рекламы [email protected]