Во время нашей работы в качестве веб-разработчика для метеорологической компании мы снова и снова сталкивались с одной и той же задачей: получить некоторые файлы откуда-нибудь (FTP / Web / directory / mail) и импортировать содержащиеся в них данные в базу данных.
Конечно, формат файла никогда не бывает одинаковым, базы данных всегда проектируются по-разному, приходится обрабатывать бесчисленное множество особых случаев и т. Д. И т. Д.
Так что теперь я планирую импортировать фреймворк именно для такой работы. Поскольку все мы являемся опытными разработчиками PHP, и текущие сценарии являются либо PHP, либо Perl, мы будем использовать PHP в качестве языка сценариев.
- Сборщик данных извлечет файл из источника, откроет его и сохранит содержимое в строковую переменную. (Не волнуйтесь, PHP получит от нас достаточно памяти.)
- Обработчик данных выполнит сложную работу по преобразованию строки в некий массив.
- Массив будет сохранен в базе данных или записан в новый файл или все, что мы должны с ним делать.
Наряду с этой функциональностью будет реализована некоторая общая обработка ошибок, запись в журнал и создание отчетов по электронной почте.
Идея состоит в том, чтобы использовать коллекцию классов (некоторые геттер-классы, множество специализированных обработчиков, некоторые классы писателей).
Мой вопрос: Как практически организовать эти классы в рабочем сценарии? Придумаю ли я какой-то мета-язык, который будет интерпретироваться, и классы будут называться соответственно? Или просто предоставьте несколько простых интерфейсов, которые должны реализовать эти классы, и мои пользователи (как я уже говорил: опытные разработчики PHP) будут писать небольшие PHP-скрипты, загружающие эти классы?
Вторая версия почти наверняка предлагает наибольшую гибкость и расширяемость.
Есть ли у вас другие идеи относительно такого мероприятия?