Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Ckeditor Bundle Laravel Package

fsi/ckeditor-bundle

The FSI CKEditor Bundle integrates the CKEditor WYSIWYG editor into Symfony applications, providing a configurable form type, toolbar and plugin options, asset/configuration handling, and simple embedding for rich-text content editing.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Verdict: reject. This is a Symfony bundle, not a Laravel package, and it has been effectively abandoned since 2018. The 0.065 score, 1 star, and 0 dependents are consistent with what the code inspection shows: a low-signal, single-maintainer integration layer for a JS library that does not need a PHP wrapper.

Architecture fit

  • The bundle is built around Symfony's DependencyInjection container, Config component, Form component (CKEditorType), and Twig helpers. None of these exist in a standard Laravel stack (Blade, Eloquent, service container with different semantics).
  • Its core value is translating YAML/PHP config arrays into CKEditor constructor options and rendering a <textarea> + init script. In Laravel this is a Blade component and a config/ckeditor.php file — roughly 50–150 lines — not a third-party dependency.
  • CKEditor itself is a client-side JS library. The PHP layer is convenience, not capability.

Integration feasibility

  • Installing via Composer will almost certainly fail on constraint resolution against Laravel 10/11 and PHP 8.2+, or will drag in Symfony 2.x/3.x-era transitive dependencies that conflict with Laravel's own Illuminate components.
  • Two paths exist, both unattractive: (a) pull Symfony Form/Twig into a Laravel app — high conflict surface, two templating engines, no benefit; (b) extract the config-assembly logic and reimplement natively — at which point you have written the integration yourself and the bundle contributed nothing.
  • Realistic effort to replicate the bundle's useful surface natively: 1–3 days, including upload endpoint wiring.

Technical risk

  • Unmaintained: last release 2018-02-01. No security response, no PHP 8 compatibility work, no framework constraint updates.
  • EOL editor: the bundle targets CKEditor 4. CKEditor 4 is past end of life; running it in a content-authoring surface means accepting an unpatched rich-text/XSS attack surface.
  • Supply chain: 1 star / 0 dependents means no community review, no downstream testing, no informal audit. Adopting it puts you as the sole maintainer of record.
  • Licensing: MIT is fine and is the only unambiguously positive attribute here.

Key questions

  1. Is any part of the estate actually on Symfony? If yes, evaluate there with Symfony's own version constraints; do not attempt it in Laravel.
  2. Is CKEditor 4 a hard requirement (legacy content, plugin parity), or is CKEditor 5 acceptable? This decision dominates every other one.
  3. Who owns maintenance if we fork? If the answer is "nobody," the answer to the package is no.
  4. What is the actual authoring requirement — full WYSIWYG, or a constrained subset (bold/italic/links/lists) that a lighter editor or Markdown field would satisfy?

Integration Approach

Stack fit

  • Poor. Target stack is Laravel + Blade + Vite. The correct integration is @ckeditor/ckeditor5-* npm packages (or a prebuilt classic build) plus a Blade component and a Laravel upload controller. No PHP package required.
  • The bundle's only Laravel-compatible output would be a rendered <textarea> with a JSON config blob — trivially reproducible.

Migration path

  • If a legacy Symfony app already uses the bundle, leave it in place there; do not port it forward as the pattern.
  • For Laravel: build a resources/views/components/editor.blade.php component, a config/ckeditor.php for toolbars/plugins, and a POST /uploads/editor endpoint returning the {url} shape the editor expects.
  • If CKEditor 4 must be retained for content fidelity, still integrate it via the standalone CKEditor 4 distribution + a Blade component, not via this bundle.

Compatibility

  • Bundle constraints predate Laravel 8+, PHP 8.x, and modern Composer strictness. Assume incompatibility until proven otherwise; a composer require spike against the actual application skeleton is the fastest falsification test and should be timeboxed to under an hour.
  • CKEditor 5 has a different API and content model than 4; config from the bundle does not transfer.

Sequencing

  1. Confirm editor major version and authoring requirements (blocks everything else).
  2. Timeboxed Composer install spike in a throwaway branch — expected to fail; document the failure to close the question.
  3. Stand up the JS-based editor behind a Blade component in one low-traffic form.
  4. Implement and rate-limit the upload endpoint (validation, MIME allowlist, size cap, storage disk).
  5. Roll out to remaining forms; delete the spike.

Operational Impact

Maintenance

  • Effectively zero upstream maintenance. Any adoption means forking and owning the code permanently, including Symfony component compatibility shims. This is a net-negative maintenance trade versus a native integration that is smaller than the fork.

Support

  • No vendor, no active issue triage, no CVE pipeline for the bundled CKEditor 4 assumption. Security advisories for CKEditor 4 must be tracked and patched manually — and 4.x no longer receives them.

Scaling

  • The editor is client-side; the bundle is not in the request path at runtime. Real scaling concerns sit in the upload endpoint: object storage, image resizing/derivatives, request size limits, and CDN delivery. None of that is solved by the bundle.

Failure modes

  • Composer resolution failure or silent downgrade of shared Symfony/Illuminate transitive dependencies.
  • Container/Twig assumptions breaking at boot in a Laravel app.
  • Stored XSS via CKEditor 4 content, particularly if HTML is persisted and re-rendered unsanitized. Mitigate with server-side HTML sanitization regardless of editor choice.
  • Abandonment risk already realized: a future PHP or Laravel major will break the fork with no upstream fix.

Ramp-up

  • For the native path: low — a mid-level Laravel developer ships the component and upload endpoint in under a week, and it is code the team owns and understands.
  • For the bundle path: high — the developer must learn Symfony Form/DI/Twig semantics inside a Laravel app to debug a stack nobody on the team will otherwise use, for a dependency that saves a day of work at most.

Recommendation: Do not adopt. Replace with a direct CKEditor (5 preferred) integration via npm and a Blade component, pair it with a sanitized, rate-limited upload endpoint, and revisit the editor choice against actual authoring requirements before committing to any version.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package