mazay98 / searcher
Find substring in string, special for prkt
Requires
- php: >=7.2
- symfony/yaml: ^5.0
Requires (Dev)
- phpunit/phpunit: ^8
This package is auto-updated.
Last update: 2024-05-29 05:01:45 UTC
README
Требования:
● использовать версию php 7+;
● результат опубликовать на github.
Зaдaниe нa знaниe PHP:
Дополнительные пункты можно не выполнять если они непонятны или в них нет уверенности.
-
Нужно создать библиотеку , которая сможет искать в файле вхождение строки, и выдавать номер строки в файле и позицию в строке. Файл может быть произвольного размера.
-
Дополнительно: предусмотреть ограничения (максимальный размер файла, его mime-type, и т.п.). Желательно их вынести в отдельный yaml конфиг.
-
Дополнительно: покрыть код тестами.
-
Дополнительно: сделать возможность читать данные не только с локальной файловой системы, но и удаленной.
-
[?] Дополнительно: сделать возможность добавления модулей для разных механизмов поиска (например, если нужно искать не вхождение, а сравнивать хэш-суммы, и т.п.)
Настройки
Файл с настройками проекта лежит в корне (settings.yaml
)
Доступные секции для настроек:
file:
max_size_kb: 1024
mime_type:
txt: true
word: true
storage:
host: ''
path: ''
login: ''
password: ''
file - Настройки файла, доступны 2 типа настроек:
max_size_kb
- Максимальный размер файла в КБ
mime_type
- Разрешенные типы файлов для чтения
storage - Настройка подключения к ftp
host
- Uri или ip адрес
path
- Путь к файлу на сервере
login
- Логин
password
- Пароль
Использование
$searcher = new Search();
- Инициализация главного класса
$serched = $searcher->search();
- Метод для поиска строки или слова в файле принимает 2 обязательных параметра.
Параметры:
Путь к файлу
Искомое слово
Путь к файлу с настройками*
Пример:
$serched = $searcher->search('text.txt', 'Задача');