PHPackages                             andy87/yii2-dnk-base - 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. [Framework](/categories/framework)
4. /
5. andy87/yii2-dnk-base

ActiveLibrary[Framework](/categories/framework)

andy87/yii2-dnk-base
====================

Base classes for Yii2 DNK flow architecture.

v0.1.1(1mo ago)011MITPHPPHP &gt;=8.0

Since Apr 28Pushed 4w agoCompare

[ Source](https://github.com/andy87/yii2-dnk-base)[ Packagist](https://packagist.org/packages/andy87/yii2-dnk-base)[ Docs](https://github.com/andy87/yii2-dnk-base)[ RSS](/packages/andy87-yii2-dnk-base/feed)WikiDiscussions master Synced 1w ago

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

yii2-dnk-base
=============

[](#yii2-dnk-base)

Базовые классы для Yii2-проектов, следующих DNK flow:

```
Controller -> Handler -> Service -> (Repository | Producer | Killer)

```

Установка
---------

[](#установка)

Основной способ установки — через Packagist:

```
composer require andy87/yii2-dnk-base:^0.1
```

Для установки текущей ветки разработки:

```
composer require andy87/yii2-dnk-base:dev-master
```

Базовые классы
--------------

[](#базовые-классы)

- `andy87\yii2dnk\domain\BaseDomain` — реестр домена и маппинг действий.
- `andy87\yii2dnk\controllers\handlers\BaseWebController` и `BaseConsoleController` — создают payload и handler через реестр домена.
- `andy87\yii2dnk\domain\BaseHandler` — выполняет payload, создаёт привязанную view-model и диспетчеризирует use case в `provider()`.
- `andy87\yii2dnk\domain\BaseService` — создаёт объекты repository, producer, killer и data provider через реестр домена (все getter-ы кэшируют экземпляр).
- `andy87\yii2dnk\domain\BaseRepository` — помощники чтения и запросов: `findById()`, `findOrFail()`, `exists()`, `count()`, `queryForGrid()`.
- `andy87\yii2dnk\domain\BaseProducer` — помощники создания runtime-моделей, новых ActiveRecord и search model.
- `andy87\yii2dnk\domain\BaseKiller` — помощники жёсткого и опционального мягкого удаления.
- `andy87\yii2dnk\BasePayload` — входные данные действия.
- `andy87\yii2dnk\BaseModel` — базовая ActiveRecord-модель с константами `ATTR_*` и дефолтными `attributeLabels()`.
- `andy87\yii2dnk\viewModels\BaseViewModel` — выходные данные действия.
- `andy87\yii2dnk\viewModels\BaseResource` — базовый resource для API/REST-ответов.
- `andy87\yii2dnk\viewModels\BaseTemplateResource` — базовый resource для web-view с `TEMPLATE`.
- `andy87\yii2dnk\viewModels\crud\BaseIndexResource`, `BaseFormResource`, `BaseCreateResource`, `BaseUpdateResource`, `BaseViewResource` — готовые CRUD resources для Gii-like views.
- `andy87\yii2dnk\DomainAwareTrait` — trait для автоматического определения класса домена по имени класса.
- `andy87\yii2dnk\ModelClassTrait` — trait для получения класса ActiveRecord-модели из реестра домена.
- `andy87\yii2dnk\controllers\handlers\ControllerDomainTrait` — общие методы getHandler()/getPayload() для web/console контроллеров.
- `andy87\yii2dnk\domain\BaseActiveDataProvider` — базовый builder `ActiveDataProvider` для list/index сценариев.
- `andy87\yii2dnk\domain\BaseQueryStorage` — базовый класс хранилища нативных SQL-запросов.
- `andy87\yii2dnk\interfaces\SearchModelInterface` — маркерный интерфейс для search-моделей.
- `andy87\yii2dnk\exceptions\DnkException`, `andy87\yii2dnk\exceptions\ValidationException`, `andy87\yii2dnk\exceptions\NotFoundException`, `andy87\yii2dnk\exceptions\ForbiddenException` — базовые доменные исключения. `DnkException` именован так, чтобы избежать конфликта с PHP SPL `\DomainException`.

Domain registry
---------------

[](#domain-registry)

Основной registry-flow задаётся через instance-based `BaseDomain` с protected typed properties:

- `$model`, `$handler`, `$service`, `$repository`, `$producer`, `$killer`;
- optional `$searchModel`, `$dataProvider`, `$queryStorage`;
- mappings `$payloads`, `$viewModels`;
- config overrides `$definitions`.

Static methods `classes()`, `definition()`, `create()`, `payloadClass()`, `createPayload()`, `createViewModel()` и связанные lookup methods остаются BC facade и делегируют в `static::instance()`.

Legacy `protected const CLASSES`, `PAYLOADS`, `VIEW_MODELS` остаются только fallback для старого кода. Новый scaffold должен использовать protected typed properties, а не static/const registry.

`protected const DOMAIN` в `Handler`, `Service`, `Repository`, `Producer`, `Killer`, `DataProvider`, `QueryStorage` и controller-классах — это только pointer на Domain-класс, не Domain registry и не возврат к static/const registry.

`$definitions` предназначен для infrastructure config overrides. Top-level `$definitions[$key]['class']` запрещён: class registry-объекта берётся из protected property. Вложенный Yii definition внутри значения вроде `queryStorage` может содержать `class`.

Ограничения
-----------

[](#ограничения)

- `BaseProducer` создает runtime-модели, search-модели и новые записи, но не содержит generic `update(...)`.
- `BaseActiveDataProvider::search()` является abstract contract: конкретный доменный DataProvider реализует Gii-like фильтры.
- `BaseWebController::display(...)` покрывает простой HTML/JSON ответ и HTTP status code для JSON. Для redirect, file response и API envelope лучше добавить собственный метод в прикладном controller.
- `runTransactional(...)` открывает одну Yii DB transaction. Nested transactions, несколько БД и after-commit hooks не реализованы.

Документация
------------

[](#документация)

Полная документация по архитектуре, flow, правилам генерации и шаблонам:

- **SKILL/SKILL.md** — canonical source правил DNK flow, ответственности слоёв, антипаттернов и scaffold-шаблонов.
- **SKILL/reference.md** — краткий справочник, ссылается на SKILL/SKILL.md.
- **SKILL/CHECKLIST.md** — чеклист проверок при работе с DNK.

AI Skill
--------

[](#ai-skill)

Пакет поставляется как runtime-библиотека и как AI skill. После установки через Composer skill-файлы доступны в:

```
vendor/andy87/yii2-dnk-base/SKILL/

```

Основной файл skill-а:

```
vendor/andy87/yii2-dnk-base/SKILL/SKILL.md

```

Проверки
--------

[](#проверки)

```
composer check
```

###  Health Score

34

—

LowBetter than 75% of packages

Maintenance93

Actively maintained with recent releases

Popularity7

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity29

Early-stage or recently created project

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

Every ~0 days

Total

2

Last Release

42d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/4658489?v=4)[Andrey Kidin](/maintainers/andy87)[@andy87](https://github.com/andy87)

---

Tags

handleryii2repositorydomaindnkai-skill

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/andy87-yii2-dnk-base/health.svg)

```
[![Health](https://phpackages.com/badges/andy87-yii2-dnk-base/health.svg)](https://phpackages.com/packages/andy87-yii2-dnk-base)
```

###  Alternatives

[craftcms/cms

Craft CMS

3.6k3.6M2.9k](/packages/craftcms-cms)[yiisoft/yii2-app-advanced

Yii 2 Advanced Project Template

1.7k960.6k5](/packages/yiisoft-yii2-app-advanced)[yiisoft/yii2-redis

Redis Cache, Session and ActiveRecord for the Yii framework

44912.1M264](/packages/yiisoft-yii2-redis)[yiisoft/yii2-httpclient

HTTP client extension for the Yii framework

42911.4M322](/packages/yiisoft-yii2-httpclient)[yiisoft/yii2-debug

The debugger extension for the Yii framework

20324.2M615](/packages/yiisoft-yii2-debug)[yiisoft/yii2-app-basic

Yii 2 Basic Project Template

6731.8M8](/packages/yiisoft-yii2-app-basic)

PHPackages © 2026

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