Это не классический вопрос о языке программирования, но он заставляет меня быть занятым, поэтому я решил, что я мог бы также воспользоваться опытом Stack: -)
У меня есть система, которая принимает данные измерений из разных источников. Эти сообщения с данными помещаются в очередь.
Теперь мне нужно построить:
- Система для регулярного чтения сообщений
из этой очереди и сохранить данные
внутри них в базу данных (возможно
PHP-скрипт, который вызывается
хрон)
- Система для предоставления этих данных внешним сторонам (реализована как
API / вебсервис)
Однако схема базы данных обязательно изменится, поэтому я решил попробовать свои силы в Doctrine, чтобы абстрагировать эту часть.
Теперь, если я использую два проекта, мне придется использовать Doctrine в обоих, причем оба они имеют объекты, которые отражают одни и те же таблицы в базе данных ниже. Поэтому, если БД изменится, мне нужно изменить модель двух проектов. Это неправильно.
Я могу использовать один проект с одним ORM, поэтому, если есть изменения, мне нужно будет изменить только один слой. Однако тогда у меня есть и скрипт, использующий эту модель, и веб-сервис, все в одном «проекте».
Мышление буквально «проектов», как, например, в Netbeans. Я полагаю, я бы создал папку 'model' с объектами Doctrine, папку 'script', к которой обращается cron, и папку 'api', к которой обращается веб-сервер.
Кажется странным, что в одном проекте есть разные приложения, но также лучше иметь только один слой ORM. Что приличного делать?