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

Code Bundle Laravel Package

liip/code-bundle

LiipCodeBundle is a Symfony bundle for displaying and editing source code in your apps. It adds syntax highlighting and code-editor integration, making it easy to embed readable code snippets in templates, documentation, and admin screens.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. This is not a Laravel package and never was — liip/code-bundle is a Symfony2 bundle from the 2011–2015 era, and it is explicitly marked [DEPRECATED] and archived on GitHub. Its runtime contract is Symfony's full-stack kernel: it registers through the Bundle interface, resolves services from the Symfony DI container, and parses the Symfony2 "logical name" notation (AcmeDemoBundle:Default:index) for bundles, templates, and services. Laravel has no bundle registry, no logical-name resolution, no Symfony\Component\HttpKernel\Bundle\Bundle in its boot path, and a fundamentally different container. Beyond shared PHP and Composer autoloading, there is essentially zero architectural overlap. The package's actual capability — "given a class/template/service shorthand, print or open its file path" — is now table stakes in every modern IDE, in php artisan about, ide-helper, and static analysers.

Integration feasibility. Directly installing it into a Laravel application is not feasible. The bundle requires Symfony 2.x console/DI/HttpKernel components, while Laravel 8–11 pin Symfony 5/6/7 console and related components; Composer will fail dependency resolution rather than produce a working install. Even with aggressive aliasing and a fork, the commands would have no kernel to introspect — they'd enumerate an empty bundle list and exit. A viable integration is a rewrite, not a port: 200–400 lines reimplementing the same ergonomics as Artisan commands against Laravel's own primitives (bootstrap/cache/packages.php for package discovery, app()->getBindings() and getLoadedProviders() for service introspection, ReflectionClass::getFileName() for class resolution).

Technical risk. High, and concentrated in abandonment rather than defects. Last release 2015-06-15, 25 stars, 0 dependents, no maintainer. The code targets PHP 5.3-era idioms and Symfony2 APIs that were removed in Symfony 3 and 4 (Command::getDefinition signatures, container get() semantics, bundle inheritance assumptions). Running it on PHP 8.x would surface deprecation and dynamic-property errors even before functional failures. The editor-launch commands shell out to hardcoded binaries (subl, mate, vim) using string interpolation — both unportable and a mild command-injection surface if user-supplied class names are passed through unescaped. No CVE history of consequence, but also no future patches.

Key questions.

  • What is the actual job to be done — "jump from a class name to its file in my editor," or something broader about service/template discovery?
  • Is the target a legacy Symfony2 application (the only context where this bundle ever ran), or a Laravel application (where it cannot run)?
  • If the capability gap is real, is the team prepared to own a fork indefinitely, or is a greenfield Artisan command the cheaper path?
  • What native tooling has already been evaluated and rejected, and why?

Integration Approach

Stack fit. Poor. The only defensible framing is "harvest the idea, discard the code." The conceptual feature set maps onto Laravel as follows:

Symfony2 bundle command Laravel-native equivalent
Resolve bundle/class → path php artisan about, IDE go-to-class, ReflectionClass in Tinker
List container services php artisan tinker + app()->getBindings(), getLoadedProviders()
Resolve template path view()->getFinder()->find()
Open file in editor IDE integration, spatie/laravel-ignition stack-trace links
Class-name autocompletion barryvdh/laravel-ide-helper, PHPStan/Psalm

Migration path. There is no migration path from this package to Laravel, because there is no prior working Laravel state to migrate from. If a team is coming off a Symfony2 codebase and wants to preserve muscle memory, the correct move is to write a thin internal Artisan command group (code:find-class, code:find-view, code:find-binding) against Laravel's container and filesystem APIs, published as a private package. This is a day of work and produces code the team can actually maintain.

Compatibility. Effectively incompatible with every supported Laravel version. PHP 8.1+ is unsupported by the underlying code; Symfony 5/6/7 is unsupported by the bundle's composer constraints; PSR-4 autoloading (Laravel's standard) breaks the PSR-0-era class-lookup heuristics the bundle relies on. Any attempt to force installation will produce a Composer conflict wall or a runtime Class not found cascade.

Sequencing.

  1. Confirm the capability gap against native tooling (artisan about, IDE navigation, ide-helper, Ignition) — likely closes the gap entirely.
  2. If a residual gap survives, spec the Artisan rewrite against Laravel container/filesystem APIs, not Symfony's.
  3. Vendor the rewrite as an internal package (acme/laravel-code-tools), never as a public dependency on the archived bundle.
  4. Do not add liip/code-bundle to composer.json at any step; the abandoned flag will trip composer audit and add CI noise for zero functional return.

Operational Impact

Maintenance. Zero upstream maintenance and zero prospect of it. Adopting the bundle transfers 100% of the maintenance burden to the adopter on day one, for a package whose entire surface area is developer convenience. The abandoned flag on Packagist means every composer audit/composer outdated run will surface it as a finding, which teams will then have to document and suppress — a recurring tax for no value.

Support. No community to lean on: 25 stars, 0 dependents, no issue activity for roughly a decade, and a README written for Symfony2 conventions most current developers have never used. Onboarding cost is nontrivial because the concepts (logical bundle names, service IDs as shorthand) have no transferable analogue in Laravel — engineers would learn a dead notation to use a dead tool.

Scaling. Runtime impact is negligible: the package is console-only, never touches the request path, and would add no measurable latency or memory. The scaling problem is organisational, not technical — it doesn't scale as a knowledge asset or as a shared dependency across teams, because no other team can adopt it without the same fork-and-own exercise.

Failure modes.

  • Commands fail immediately outside a Symfony2 kernel ("no bundles registered," empty output) — a silent, confusing failure rather than a clear error.
  • PSR-4 autoload mismatches cause class-resolution misses for anything not following Symfony2's PSR-0 layout.
  • Editor-launch commands fail on machines without the hardcoded binary, and interpolate arguments into a shell string — unescaped input is a command-injection vector.
  • PHP 8 runtime deprecations may surface as warnings that mask genuine errors in CI logs.
  • Composer resolution failures block the entire install, which is arguably the safest failure mode: the tooling refuses to let you adopt it.

Ramp-up. Learning investment yields near-zero return. The only durable artefact worth carrying forward is the idea of editor-integrated class/service lookup — which modern IDEs and Laravel's own about/ide-helper/Ignition stack already deliver out of the box. Recommend no adoption; if the capability is genuinely wanted, budget one engineer-day for an internal Artisan reimplementation. The 1.34 score and 2.01 opportunity score are consistent with this read: low absolute value, and what value exists is better captured by replacement tooling than by the package itself.

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.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
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
cgv/localized-resource