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

Ckfinder Bundle Laravel Package

jonlil/ckfinder-bundle

A Symfony bundle that integrates CKFinder, the rich file manager and uploader, into your application. It wires CKFinder into Symfony routing, security, and configuration so you can add a full-featured file browser and uploader to your admin panels or WYSIWYG editors with minimal setup.

View on GitHub
Deep Wiki
Context7

Getting Started

First: reconcile the stack mismatch. jonlil/ckfinder-bundle is a Symfony bundle wrapping the CKFinder 3 PHP connector — there is no service provider, facade, publishable config, or public/ asset-publishing story that Laravel expects. If you are on Laravel, you are not "installing" this package; you are reading it for reference and re-implementing its ~configuration-only glue. If you are on Symfony 2/3, follow the README's bundle-registration steps.

Minimal steps (assuming you have accepted the caveats and licensed CKFinder):

  1. Confirm prerequisites first. Check composer.json in the repo for its php and symfony/symfony/symfony/framework-bundle constraints against your runtime. If your PHP is 8.2+ and your framework is current, stop — expect fatal errors. Pin a supported CKFinder connector version explicitly.
  2. Vendor the CKFinder distribution. The bundle does not ship CKFinder; you must place the CKFinder PHP connector and web assets yourself. Register the bundle and point its config at the connector's path.
  3. First use case: editor-integrated image insert. Register the connector route, add a firewall/ACL rule that ties uploads to your authenticated editor role, then point CKEditor's filebrowserBrowseUrl / filebrowserUploadUrl at the connector route. That end-to-end path — upload a file, browse it, insert into the editor — is the entire value of the package.

Where to look first: the bundle's Resources/config (service wiring) and routing, then the connector's own config.php. The bundle is thin; the interesting behavior lives in CKFinder itself.

Implementation Patterns

Treat the connector as a boundary service. The workable pattern is to isolate CKFinder behind your own controller/service rather than letting the editor hit the connector route directly. Your controller enforces auth and policy; the connector handles the filesystem and thumbnail work. This keeps the vendor swappable and the ACL surface auditable.

Configuration, not code. The bundle's job is essentially config plumbing: upload path, resource types, permissions, and the connector route. Do this in config files (or a first-party config class), never scattered through controllers. A single ckfinder config block covering resource types, base path, and ACL is the shape to aim for.

Auth callback pattern. CKFinder supports an auth callback to gate browsing/uploading on your app's session. If you are porting this to Laravel, implement it as middleware on the connector route so it sits behind the same authorization as the rest of the admin area — this is the classic "separate endpoint bypasses middleware" gap.

Storage abstraction. Wire the connector's base path to a Laravel filesystem disk (or Symfony filesystem service) so local vs. S3 is a config change. Keep uploads outside the webroot and serve via signed URLs, not direct paths.

Editor integration tip. For CKEditor 4/5, set filebrowserBrowseUrl, filebrowserUploadUrl, and (for CKEditor 5) the CKFinder upload adapter. Version-match the JS build to the connector version; front-end/back-end drift produces opaque failures.

Gotchas and Tips

  • It is abandoned. Zero stars, zero dependents, single maintainer. For code sitting on the upload path, assume no security fixes. Fork it or reimplement before you depend on it in production; budget ongoing ownership.
  • Symfony-only by construction. Bundle registration, DI, and Resources/public asset publishing have no Laravel equivalent. A "just composer require it" attempt will fail at autoload/container level. Use it as reference material on Laravel; integrate the connector directly.
  • Framework/PHP version skew is a hard failure, not a warning. Symfony 2-era bundles target PHP 5.3–5.6 conventions. Expect fatal errors on PHP 8.x before you get anywhere.
  • Licensing is real and quiet. CKFinder is commercial; GPL is unusable for proprietary products. A lapsed commercial license can silently block the connector at runtime — record expiry and monitor it.
  • Uploads are the highest-severity surface here. Classic CKFinder-connector failure classes: path traversal, unrestricted file-type upload, executable content in the webroot. Mitigate with strict MIME allow-lists, image re-encoding, storage outside webroot, and non-guessable paths.
  • Auth drift is the most common production bug. The connector route is easy to leave outside your app's middleware/auth guard. Verify it sits behind the same authorization as the rest of the admin area.
  • Debugging is thin. No meaningful docs beyond the README; no user base to surface issues. Log the connector's own errors and reproduce against a stock CKFinder setup when the bundle behaves oddly — most "bundle bugs" are connector config or version mismatch.
  • Extension points are limited and fragile. The bundle exposes config; deeper behavior requires forking its service definitions. Assume any customization is a permanent fork-maintenance cost.
  • No cleanup lifecycle. Orphaned files and unreferenced assets accumulate; garbage collection is your responsibility.
  • Realistic recommendation: for a Laravel app, do not adopt this package. Either use a maintained Laravel-native file manager / media library, or integrate the vendor-supported CKFinder connector directly with your own middleware, config, and validation layer.
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.
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
cgv/localized-resource