/dogsy-test-task

Тестовое задание Dogsy

Primary LanguagePHP

  • В файле ./people.csv хранится информация о пользователях в CSV формате. В первом поле id пользователя (целое без знака), во втором его имя (строка текста). Пример строки в файле: 1;Sergey Dorohov

  • Есть папка ./texts, в которой хранятся тексты, связанные с пользователями. Имена файлов имеют формат id-n.txt, где n - номер файла, дополненный нулями слева до 4 символов (например, для пользователя с id=1 в папке может быть два файла: 1-001.txt, 1-002.txt)

Требуется написать утилиту для обработки текстов пользователей, в которую при ее вызове с командной строки можно передавать два параметра:

  • Тип разделителя для CSV файлов (текстовая строка без кавычек)
  • comma для запятой
  • semicolon для точки с запятой)
  • Тип задачи, которую требуется выполнить над текстами пользователей (текстовая строка без кавычек)
  • countAverageLineCount - для каждого пользователя посчитать среднее количество строк в его текстовых файлах и вывести на экран вместе с именем пользователя.
  • replaceDates - поместить тексты пользователей в папку ./output_texts, заменив в каждом тексте даты в формате dd/mm/yy на даты в формате mm-dd-yyyy. Вывести на экран количество совершенных для каждого пользователя замен вместе с именем пользователя.

Пользователь может вызвать утилиту, например, так: php user_text_util.php comma countAverageLineCount

Утилита должна быть реализована так, чтобы она была готова к работе в production, активной доработке и развитию. В остальном ограничений нет. Можно использовать произвольное количество файлов для помещения в них кода или любой PHP фреймворк, если вам так удобнее.