PHPackages                             quanzo/yii2-indexer - 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. [Search &amp; Filtering](/categories/search)
4. /
5. quanzo/yii2-indexer

ActiveLibrary[Search &amp; Filtering](/categories/search)

quanzo/yii2-indexer
===================

Indexed content site and search. Module for Yii 2

1.0.0(6y ago)02MITPHPPHP &gt;=7.0

Since Aug 24Pushed 6y ago1 watchersCompare

[ Source](https://github.com/quanzo/yii2-indexer)[ Packagist](https://packagist.org/packages/quanzo/yii2-indexer)[ RSS](/packages/quanzo-yii2-indexer/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependencies (1)Versions (3)Used By (0)

indexer модуль для Yii 2
========================

[](#indexer-модуль-для-yii-2)

Модуль предназначен для сохранения формируемого контента в БД для дальнейщего поиска.

Страницы, полученные через POST, будут игнорироваться.

Обязательно задать, через параметр *exclude*, адреса которые не должны попасть в базу.

Используется полнотекстовый поиск Mysql

При сохранении, url формируется как `путь/к/action?параметры`, например `site/default/index?param=1`

Установка и подключение
-----------------------

[](#установка-и-подключение)

1. Скопировать в папку с модулям и подключить *autoload.php*
2. Или используя composer: добавить в секцию require проекта `"quanzo/yii2-indexer": "*"` или `composer require "quanzo/yii2-indexer"`
3. Установить структуру таблиц из миграции
4. Подключить в *сonfig.php*

```
$config = [
    'bootstrap' => [
        'indexer',
    ],
    'modules' => [
        'indexer' => [
            'class' => 'x51\yii2\modules\indexer\Module',
            /*
            'fullpageMode' => false, // сохранять всю страницу или только контент (без layout)
            'ttl' => 86400, // время жизни содержимого в БД, в сек.
            'exclude' => [], // роуты в которых запрещено использование. Можно применять символы ? и *
            'layoutRule' => '*/layouts/*', // маска для определения layout
            'saveOrigContent' => true, // сохранять в БД html
            'saveOrigTitle' => true, // сохранять в БД оригинал заголовока страницы
            'defaultPageSize' => 15, // размер страницы поиска по умолчанию
            'enableHashtags' => true, // обработка хештегов на страницах. они становятся ссылками на поиск
            'notShowOld' => false, // не показывать старые записи в поиске
            'on '.\x51\yii2\modules\indexer\Module::EVENT_BEFORE_INDEX => function ($event) {}, // событие перед сохранением страницы в БД
            'on '.\x51\yii2\modules\indexer\Module::EVENT_BEFORE_SEARCH => function ($event) {}, // событие перед началом поиска
            */
        ],
    ], // end modules
];

```

Использование
-------------

[](#использование)

Адрес страницы поиска: **

События
-------

[](#события)

### EVENT\_BEFORE\_INDEX

[](#event_before_index)

Событие `\x51\yii2\modules\indexer\Module::EVENT_BEFORE_INDEX` вызывается перед сохранением результата в БД.

В обработчик передается объект типа `x51\yii2\modules\indexer\events\BeforeIndexEvent`

Если в объекте задать параметр `isValid=false`, то сохранение данных не произойдет.

Также в объекте события доступны параметры:

- *module* - ссылка на объект модуля
- *model* - модель, подготовленная к сохранению. Эта модель и будет сохранена. Можно изменить данные перед сохранением.

### EVENT\_BEFORE\_SEARCH

[](#event_before_search)

Событие `\x51\yii2\modules\indexer\Module::EVENT_BEFORE_SEARCH` вызывается перед старта поиска.

В обработчик передается объект типа `x51\yii2\modules\indexer\events\BeforeSearchEvent`

В объекте события доступны данные:

- *module* - ссылка на объект модуля
- *origSearchStr* - оригинальная строка поиска
- *preparedSearchStr* - строка, которая будет использоваться в поиске

### EVENT\_START\_RFRESH\_INDEX

[](#event_start_rfresh_index)

Событие `\x51\yii2\modules\indexer\Module::EVENT_START_REFRESH_INDEX` стартует перед началом обновления страницы в базе.

В объекте события доступны данные:

- *module* - ссылка на текущий модуль
- *url* - адрес страницы
- *title* - оригинальный заголовок страницы (не обработанный для поиска)
- *content* - оригинальный контент (не обработанный для поиска)
- *isValid* - true/false - позволяет разрешить/запретить обновление

Данные в объекте события можно модифицировать - именно они будут использованы для обновления. Например, можно убрать контент, которого быть не должно (он лишний при поиске).

Методы модуля
-------------

[](#методы-модуля)

- `function search($text, $perpage = false, $page = 1, &$count = false)`

Выполняет поиск.

Если задать `$perpage`, то будет постарничный вывод.

В `$count` возвращается общее колтчество найденных записей.

- `function actualUrl($url)`

Формирует из url, сохраненного в БД, актуальный url.

- `public function getIndex($url)`

По url возвращает сохраненную запись

- `public function markOld($url)`

Помечает сохраненную страницу как устаревшую.

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity2

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 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.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2454d ago

### Community

Maintainers

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

---

Top Contributors

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

---

Tags

recaptchayii2

### Embed Badge

![Health badge](/badges/quanzo-yii2-indexer/health.svg)

```
[![Health](https://phpackages.com/badges/quanzo-yii2-indexer/health.svg)](https://phpackages.com/packages/quanzo-yii2-indexer)
```

PHPackages © 2026

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