PHPackages                             mazay98/searcher - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. mazay98/searcher

ActiveLibrary

mazay98/searcher
================

Find substring in string, special for prkt

01PHPCI failing

Since May 1Pushed 6y ago1 watchersCompare

[ Source](https://github.com/Mazay98/searcher)[ Packagist](https://packagist.org/packages/mazay98/searcher)[ RSS](/packages/mazay98-searcher/feed)WikiDiscussions master Synced 6d ago

READMEChangelogDependenciesVersions (1)Used By (0)

Тестовое задание:
=================

[](#тестовое-задание)

### Требования:

[](#требования)

● использовать версию php 7+;

● результат опубликовать на github.

### Зaдaниe нa знaниe PHP:

[](#зaдaниe-нa-знaниe-php)

Дополнительные пункты можно не выполнять если они непонятны или в них нет уверенности.

1. Нужно создать ​ библиотеку​ , которая сможет искать в файле вхождение строки, и выдавать номер строки в файле и позицию в строке. Файл может быть произвольного размера.
2. Дополнительно: предусмотреть ограничения (максимальный размер файла, его mime-type, и т.п.). Желательно их вынести в отдельный yaml конфиг.
3. Дополнительно: покрыть код тестами.
4. Дополнительно: сделать возможность читать данные не только с локальной файловой системы, но и удаленной.
5. \[?\] Дополнительно: сделать возможность добавления модулей для разных механизмов поиска (например, если нужно искать не вхождение, а сравнивать хэш-суммы, и т.п.)

### Настройки

[](#настройки)

Файл с настройками проекта лежит в корне (`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', 'Задача');

```

###  Health Score

17

—

LowBetter than 6% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity1

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity34

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/48446357?v=4)[Mazay98](/maintainers/Mazay98)[@Mazay98](https://github.com/Mazay98)

---

Top Contributors

[![Mazay98](https://avatars.githubusercontent.com/u/48446357?v=4)](https://github.com/Mazay98 "Mazay98 (4 commits)")

### Embed Badge

![Health badge](/badges/mazay98-searcher/health.svg)

```
[![Health](https://phpackages.com/badges/mazay98-searcher/health.svg)](https://phpackages.com/packages/mazay98-searcher)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
