PHPackages                             besnovatyj/yii2-cms-ckeditor5 - 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. [Templating &amp; Views](/categories/templating)
4. /
5. besnovatyj/yii2-cms-ckeditor5

ActiveYii2-extension[Templating &amp; Views](/categories/templating)

besnovatyj/yii2-cms-ckeditor5
=============================

Кастомный редактор CKEditor 5 для Yii2 (ядро + базовый редактор + виджет). Плагины подключаются отдельными пакетами.

v1.0.0(1mo ago)010↓66.7%3MITPHP &gt;=8.4

Since Jul 6Compare

[ Source](https://github.com/besnovatyj/yii2-cms-ckeditor5)[ Packagist](https://packagist.org/packages/besnovatyj/yii2-cms-ckeditor5)[ RSS](/packages/besnovatyj-yii2-cms-ckeditor5/feed)WikiDiscussions Synced 1w ago

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

besnovatyj/yii2-cms-ckeditor5
=============================

[](#besnovatyjyii2-cms-ckeditor5)

Кастомный редактор CKEditor 5 для Yii2: **ядро** + **базовый редактор** + **PHP-виджет**. Плагины (filemanager, codemirror и др.) — отдельные composer-пакеты, подключаются в рантайме.

Что внутри
----------

[](#что-внутри)

```
assets/ckeditor5.ts       # слой 1: export * from 'ckeditor5' (+css) → dist/ckeditor5.js + ckeditor5.css
assets/ckeditor-base.ts   # слой 2: BaseEditor + официальные плагины → dist/ckeditor-base.js
esbuild-ckeditor5.js      # сборка ядра (редко)
esbuild.js                # сборка base (без copy-шага и плагинов)
build-all.js              # ядро + base параллельно
src/                      # PHP (psr-4 Besnovatyj\Ckeditor5\)
  CkeditorCustomWidget.php           # виджет: import map + мульти-бандл-склейка
  CkeditorCoreAsset.php              # публикует ckeditor5.js/.css, ckeditor-base.js
  contracts/CkeditorPluginAssetInterface.php  # контракт дескриптора плагина
dist/                     # собранные ядро+base (КОММИТИТСЯ — потребляется без Node)

```

Сборка TS (нужен Node/Docker)
-----------------------------

[](#сборка-ts-нужен-nodedocker)

```
npm install
npm run build-ckeditor5   # ядро (редко — при смене версии ckeditor5)
npm run build-base        # базовый редактор
npm run build-all         # оба
```

`dist/` коммитится в git. Потребляющий проект Node не использует.

Как подключаются плагины
------------------------

[](#как-подключаются-плагины)

Каждый плагин = отдельный composer-пакет со своим `AssetBundle`, реализующим `CkeditorPluginAssetInterface` (см. `besnovatyj/ckeditor5-filemanager`, `besnovatyj/ckeditor5-codemirror`). Список плагинов передаётся виджету через свойство `$plugins` (массив Asset-классов). Сам пакет редактора о плагинах не знает — их подключает потребитель (обычно модуль `yii2-cms-file` через DIC).

```
echo CkeditorCustomWidget::widget([
    'model' => $model,
    'attribute' => 'content',
    'plugins' => [
        \Besnovatyj\CkeditorFileManager\FileManagerCkeditorAsset::class,
        \Besnovatyj\CkeditorCodeMirror\CodeMirrorCkeditorAsset::class,
    ],
]);
```

В браузере виджет:

1. Выводит import map `{"ckeditor5": "/ckeditor5.js"}` (один раз на страницу) — единственный экземпляр классов CKEditor (рабочий `instanceof Plugin`).
2. Динамически грузит `ckeditor-base.js` и модули всех плагинов (каждый из своего baseUrl).
3. Склеивает `CustomEditor.builtinPlugins = [...base, ...плагины]` и создаёт редактор.

Обновление плагина = bump его composer-пакета. Редактор пересобирать не нужно.

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance90

Actively maintained with recent releases

Popularity7

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

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

48d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/4dab004c4cab25d241bbf453f63cb48e6226d00bd84f50315e735c257c4a1b40?d=identicon)[besnovatyj](/maintainers/besnovatyj)

---

Tags

cmsyii2widgeteditorckeditor5

### Embed Badge

![Health badge](/badges/besnovatyj-yii2-cms-ckeditor5/health.svg)

```
[![Health](https://phpackages.com/badges/besnovatyj-yii2-cms-ckeditor5/health.svg)](https://phpackages.com/packages/besnovatyj-yii2-cms-ckeditor5)
```

###  Alternatives

[craftcms/cms

Craft CMS

3.6k3.7M3.4k](/packages/craftcms-cms)[skeeks/cms

SkeekS CMS — control panel and tools based on php framework Yii2

13926.0k66](/packages/skeeks-cms)

PHPackages © 2026

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