Found this useful? Install from Packagist · Star the repo on GitHub.
Symfony bundle: Ckeditor5EditorType stores HTML in a textarea while CKEditor 5 classic (GPL open-source plugins only) runs in the browser. YAML profiles (FOS-style), Vite IIFE build (ckeditor5-editor.js) under src/Resources/public/.
FrankenPHP demos: runtime is selected with FRANKENPHP_MODE (worker default, or classic for per-request PHP / hot-reload). See docs/DEMO-FRANKENPHP.md.
This bundle is FrankenPHP worker mode friendly.
- Named YAML profiles (
toolbar,min_height,form_theme,preset,theme, optionalupload_url). - Twig themes for common layouts (Bootstrap 3–5, Foundation, Tailwind 2, table layout).
nowo_ckeditor5_editor_asset_path()andnowo_ckeditor5_editor_asset_package()Twig helpers for published assets (Symfony asset package).- pnpm + Vite frontend; Vitest coverage on shared utilities (
logger.ts). - Dockerfile + Makefile aligned with other Nowo bundles.
- Demos: Symfony 8.1 FrankenPHP app under
demo/symfony8(port 8021).
composer require nowo-tech/ckeditor5-editor-bundle:^1.0
php bin/console assets:install public# config/packages/nowo_ckeditor5_editor.yaml
nowo_ckeditor5_editor:
default_profile: simple
profiles:
simple:
preset: simple
toolbar: true
min_height: 240px
form_theme: form_div_layout.html.twig
debug: false
theme: lightuse Nowo\Ckeditor5EditorBundle\Form\Ckeditor5EditorType;
$builder->add('body', Ckeditor5EditorType::class, [
'label' => 'Article body',
]);<script src="{{ asset(nowo_ckeditor5_editor_asset_path('ckeditor5-editor.js'), nowo_ckeditor5_editor_asset_package()) }}"></script>| Symfony | PHP (minimum) | Notes |
|---|---|---|
| 6.4, 7.x (incl. 7.4) | 8.2+ | Tested in CI on 7.0 and 7.4 |
| 8.0, 8.1 | 8.4+ | Symfony 8 requirement; tested in CI on 8.0 and 8.1 |
Composer constraints: ^6.4 \|\| ^7.0 \|\| ^8.0 on Symfony components. See INSTALLATION.md.
Requirements: Docker (recommended), or PHP 8.2+ with Composer + pnpm locally.
make up && make install # Docker PHP + composer + pnpm
make assets # vite → src/Resources/public/ckeditor5-editor.js
make test # PHPUnit
make test-ts # Vitest + coverage script
make qa # cs-check + phpunitDemos:
make -C demo up-symfony8
# http://localhost:8021 (see demo/README.md and PORT in .env)Presets include standard, simple, minimal, emoji, typography, variables — see USAGE.md.
- Installation
- Configuration
- PSR evaluation (REQ-CS-007)
- Usage
- Contributing
- Code of Conduct
- Changelog
- Upgrading
- Release
- Security
- Engram
- Spec-driven development
- GitHub Spec Kit
- Tests: PHPUnit (unit + integration) and Vitest (
logger.ts). Runmake test/composer testandmake test-ts. - PHP: 100%
- TS/JS: 100% (Vitest on
src/Resources/assets/src/logger.ts; seevitest.config.ts) - Python: N/A
CI runs PHPUnit (matrix PHP 8.2–8.5 × Symfony 7.0 / 7.4 / 8.0 / 8.1), PHPStan, PHP-CS-Fixer dry-run, and Vitest coverage on pushes and pull requests.
MIT (bundle code). CKEditor 5 is used under its GPL / LGPL / commercial terms — this build uses OSS plugins suitable for GPL-compatible apps.
