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.
Architecture fit: framework mismatch is the headline finding, not a footnote. jonlil/ckfinder-bundle is a Symfony bundle, not a Laravel package. Its entire value-add is Symfony 2-era glue — DI service definitions, bundle routing, asset publishing for the CKFinder web UI. None of that maps onto Laravel's service container, routing, or public/ publishing model. For a Laravel roadmap, this package has no viable integration path as shipped. The only genuinely portable component underneath is CKFinder's own PHP connector, which does not need this bundle to be used.
Integration feasibility: low as-is, moderate if the bundle is discarded. A Laravel team would not "install this package"; it would fork it to extract the connector and re-implement the configuration surface in Laravel terms (config file, filesystem disks, auth middleware). At that point the package contributes a historical reference implementation and little else. The realistic options are (a) integrate CKFinder's vendor-supported connector directly, or (b) drop CKFinder and use a maintained Laravel-native media library / file manager.
Technical risk — high on four independent axes:
Key questions a TPM must get answered before this reaches a sprint:
TPM read: this is not an integration candidate. It is a signal that an unresolved CKFinder requirement exists and needs a build/buy decision.
Stack fit: none out of the box. Modern Laravel (10/11/12) on PHP 8.2+ is incompatible with a Symfony 2 bundle's assumptions. There is no supported configuration in which this package runs unmodified inside a current Laravel application. Do not plan a milestone around "just install it."
Migration path: replace, do not port. Three routes, in ascending lock-in:
Compatibility gates to clear before committing: target PHP version vs. bundle constraint; target Laravel version vs. absence of any service provider; CKFinder major version vs. the connector API the bundle expects; and whether the CKFinder front-end JS build is itself still vendor-supported.
Sequencing:
Maintenance: effectively nil, and that is the problem. No maintainer activity, no dependents generating issue traffic, no upgrade path. Every future PHP or framework bump becomes an internal fork-maintenance task owned indefinitely by whoever integrates it. Budget it that way or don't integrate it.
Support: bifurcated and thin. Community support is absent. The only commercial support channel is CKSource's, which covers CKFinder itself and will not extend to a third-party abandoned wrapper around it. Any incident on the bundle/connector boundary is the team's alone.
Scaling: storage is the real constraint, not this package. The bundle-era design assumes local disk and synchronous browse over a directory tree. At meaningful asset volume you need object storage (S3-compatible via Laravel's filesystem abstraction), a CDN, and off-request thumbnail generation — none provided, all build work. The browse endpoint is also called on every editor "insert image" interaction, so directory-listing caching must be planned.
Failure modes to design against:
Ramp-up: low hours, open-ended tail. No meaningful documentation beyond the README, and no engineers in the market with operating experience on this bundle. Ramp-up cost is dominated not by learning the package but by reverse-engineering what a departed integrator did — roughly a day to read the code, plus an unbounded tail of undocumented behavior. Routes 1 and 2 above ramp in hours because the replacements have real docs and active user bases.
Bottom line for the roadmap: score 0 with 0 dependents is the correct read. This is not a dependency to adopt; it is a prompt to resolve an unresolved CKFinder requirement. Allocate a short spike to choose between a Laravel-native file manager and a direct, vendor-supported CKFinder connector, record the decision, and close the item.
How can I help you explore Laravel packages today?