Я пишу веб-приложение, используя Catalyst Framework . Я также использую очередь работ под названием TheSchwartz .
Я хочу использовать очередь заданий, потому что я хочу, чтобы большая часть кода приложения была отделена от кода интерфейса веб-приложения.
По сути, вся система состоит из трех основных компонентов:
- GUI (веб-интерфейс Catalyst)
- Гусеничный
- «Атакующий компонент» (приложение написано для поиска уязвимостей XSS и SQLi в других веб-приложениях / сайтах)
Теоретически, графический интерфейс пользователя создает задания для сканера, который, в свою очередь, создает задания для «атакующего компонента».
В настоящее время у меня есть модель в Catalyst, которая создает экземпляр объекта TheSchwartz, чтобы контроллеры в веб-приложении могли добавлять задания в очередь заданий.
Мне также нужно создать несколько сценариев рабочих заданий, которые постоянно прослушивают (/ проверяют базу данных) новые задания, чтобы они могли выполнять требуемые действия. В настоящее время специфичные для БД материалы для TheSchwartz находятся в модели в Catalyst, и я не думаю, что смогу легко получить доступ к этому вне Catalyst?
Я не хочу дублировать данные соединения с БД для очереди заданий TheSchwartz в Модели, а затем в моих сценариях для рабочих заданий. Должен ли я обернуть создание объекта TheSchwartz в другой класс, находящийся за пределами Catalyst, и вызвать его в модели, в которой в данный момент создается объект TheSchwartz? Тогда я мог бы также использовать это в рабочих сценариях. Или я должен хранить данные БД в конфигурационном файле и создавать новые объекты TheSchwartz по мере необходимости (внутри Catalyst / внутри сценариев рабочих заданий)?
Или я просто слишком обдумываю это?
Некоторые ссылки на мясные статьи по архитектуре веб-приложений также могут быть полезны (я никогда раньше не создавал ссылки средней сложности ...).
Приветствия