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