mt-cod/php-testing-project-lvl1

2.0.1 2021-08-16 10:46 UTC

This package is auto-updated.

Last update: 2024-04-16 16:25:33 UTC


README

Actions Status PHP%20CI Latest Stable Version
Code Climate Issue Count Test Coverage

Цель

Проект в значительной степени ориентирован на глубокую проработку происходящих в коде процессов: порядок выполнения, обработка ошибок и многое другое.

В этом проекте отрабатываются файловые операции, а также выполнение HTTP-запросов.

Важно правильно контролировать ход выполнения операций и реагировать на возникающие в процессе ошибки. В проекте используется логирование для отслеживания процесса выполнения кода и дебага.

Также в этом проекте идет активная работа с HTML. Для замены ссылок внутри страницы, нужно выполнить парсинг страницы в DOM. Из него с помощью языка запросов (селекторов) потребуется извлечь все ресурсы для скачивания и заменить их локальными ссылками.

И, конечно же, архитектура. Создание хороших абстракций и правильная организация процесса загрузки – ключевая задача при создании загрузчика страниц. В этом проекте много цепочек, много преобразований, много операций ввода/вывода.

Описание

PageLoader – утилита командной строки, которая скачивает страницы из интернета и сохраняет их на компьютере. Вместе со страницей она скачивает все ресурсы (картинки, стили и js) давая возможность открывать страницу без интернета.

Пример использования:

$ ./page-loader https://ru.hexlet.io/courses -o /var/tmp

Page was successfully downloaded into /var/tmp/ru-hexlet-io-courses.html

Аскинемы с примерами:

Скачивание страницы - asciinema
Скачивание изображений - asciinema
Скачивание остальных ресурсов - asciinema
Логирование работы программы - asciinema
Обработка ошибок - asciinema