За последние 24 часа нас посетили 22953 программиста и 1238 роботов. Сейчас ищут 750 программистов ...

Помощь с тестовым заданием

Тема в разделе "Прочие вопросы по PHP", создана пользователем insoftjla, 29 ноя 2020.

  1. insoftjla

    insoftjla Новичок

    С нами с:
    29 ноя 2020
    Сообщения:
    2
    Симпатии:
    0
    Добрый день!

    Я начинающий разработчик, в основном изучаю Java, но так случилось что на позицию Javaразработчика откликов на хх.ру практически нет. Как будто глухая стена. (Может, потому что спрос в нашем регионе не большой, а уж тем более никто не хочет возится с непонятным джуном без опыта работы, которому уже 33 года:) )

    Но зато, не знаю почему, приходят приглашения на позицию PHP разработчика с тестовыми заданиями. Я их стараюсь делать – это расширяет кругозор, да и просто интересно.

    Собственно вопрос в чем. Пришло на почту тестовое, не могу понять "Собрать обработать и сохранить данные с FTP в PostgreSQL и написать API" – это все одно приложение на Laravel или это отдельный сервис? И вообще помогите найти вектор, в котором нужно двигаться?

    С RESTful API проблем нет, я делал на Java c Фреймворком SpringMVC принцип такой же.

    Что я уже сделал – развернул Laravel, в одном из контроллеров (это наброски, хочу перенести логику в сервис) написал логику:

    При обращении к контроллеру выполняется:

    1. Метод "А" -> скачивает все zip архивы в папку (storage/app/temp/download)
    2. Метод "В" -> распаковывает архивы в (storage/app/temp/extract)
    3. И метод "С" -> парсит XML в JSON (немного костыльно так как проблема с namespace)

    PHP:
    1. $xml = simplexml_load_file(base_path() . $this->storageDir . $this->extractDir . '/' . $file);
    2. $ns = $xml->getNameSpaces(1);
    3. $child = $xml->children($ns['ns2']);
    4. $child = $child->children();
    5. return json_encode($child);
    В задании написано – «Используйте преобразование XML -> JSON. Базу необязательно проектировать полностью. Достаточно основных, например id, jsonData, created_at.» Не пойму, в базу сохранять jsonDataкак единый текст в одном поле?

    То есть таблица будет - Id | json_data | created_at

    Спасибо за любую информацию.

    Снимок экрана 2020-11-29 в 13.06.12.png
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    Я не автор задания, моё субъективное мнение может быть ошибочным:

    API (CRUD) не имеет отношения к операциям с FTP и zip. Это интерфейс для редактирования таблиц(ы) с данными, куда ты отдельной и абсолютно независимой командой можешь заливать данные из архива.

    Я бы оценивал претендента на понимание базовых вещей (идемпотентность, остсутствие состояния, разделение на уровни и т.п.) А команда должна быть написана так, чтобы её было удобно вызывать по расписанию. Без самодеятельности, а так как это принято в Laravel.

    Т.к. штуки независимые, можно считать что это два приложения, хотя они могут быть в одном проекте :)
     
  3. insoftjla

    insoftjla Новичок

    С нами с:
    29 ноя 2020
    Сообщения:
    2
    Симпатии:
    0
    Спасибо!
    Я так понимаю - нужно сделать GRUD в котором отдельной командой можно сделать загрузку данных с FTP в базу(я так впринципе и делаю). Но я столкнулся с другой проблемой, XML там много и они ни все с одинаковыми данными, что бы добавить их в базу мне нужно создать отдельную сущность(то есть просмотреть таблицы и под них создать модели) правильно?
    --- Добавлено ---
    Сcылка на XML на всякий случай :)
    ftp://free:free@ftp.zakupki.gov.ru/fcs_regions/Kaliningradskaja_obl/notifications/currMonth