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

Apc Bundle Laravel Package

orkestra/apc-bundle

A small bundle that adds APC/APCu cache support to Orkestra applications, wiring cache services and configuration so PHP's shared memory cache can be used through the framework's standard cache abstractions. Useful for fast local caching without external services.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. For a TPM the first question is portfolio fit, and the answer is immediate: orkestra/apc-bundle is a Symfony 2 bundle, not a Laravel package. It plugs into Symfony's AppKernel::registerBundles() and DependencyInjection extension conventions. There is no service provider, no extra.laravel auto-discovery, no Laravel-facing configuration surface. Its actual payload is a thin wiring shim that exposes the legacy apc extension to a service container. In a Laravel estate it is a foreign component whose only reusable content is a few dozen lines of adapter logic — and even that logic targets an API Laravel cannot host. The mismatch runs on two independent axes: framework conventions (Symfony 2 bundle vs. Laravel provider) and runtime (APC is a PHP 5.x extension that does not build on PHP 7/8, which every supported Laravel release requires). Neither is negotiable with configuration.

Integration feasibility. Low, and the effort is mostly extraction rather than integration. To get value in a Laravel service you would either run a legacy PHP 5.x/Symfony 2 runtime alongside it — an operational burden with no product upside — or reimplement the adapter against APCu/OPcache, at which point the package contributes nothing you couldn't write in an afternoon. Ecosystem signals back this up quantitatively: 4 stars, 0 dependents, composite score 0.08. There is no community validation, no downstream implementation to learn from, and no evidence of a maintenance cadence. Plan the dependency as unowned from day one.

Technical risk. High, and unlike most dependency risk this one is already realized rather than prospective. Symfony 2 left security support in 2019; APC was superseded by APCu (user cache) and OPcache (opcode cache) and has been effectively unmaintained since roughly 2012; PHP 5.x is unsupported. Adopting it means accepting unpatched-code exposure and a single-maintainer bus factor for a component that sits on the request hot path. The relevant question is not "will this fail at scale" but "this is already unsupported on anything we would deploy."

Key questions for the evaluation record.

  • Is there an actual legacy Symfony 2 + PHP 5.x application in scope, or is this being raised against a Laravel service? The answer determines whether this is a migration ticket or a closed request.
  • What is the underlying need — opcode acceleration, user-land caching, or config/route caching? OPcache, APCu, and Laravel's native cache drivers each answer one of these without a dependency.
  • What constraint, if any, blocks Laravel's built-in Redis/Memcached/file/array drivers or symfony/cache behind PSR-6/PSR-16?
  • Who owns a fork if we adopt it, and what is the budget line for that ownership?
  • Does anything in the estate's compliance scope prohibit an unsupported PHP extension on a request path?

Integration Approach

Stack fit. Poor for the primary target stack. Laravel already ships cache drivers for Redis, Memcached, database, file, and array, all wired through config/cache.php, the Cache facade, and cache contracts — there is no capability gap this bundle closes. Opcode acceleration is a PHP runtime configuration concern (OPcache), not a package. Where a framework-agnostic cache abstraction is genuinely wanted, symfony/cache is maintained, Composer-installable, standards-conformant, and a strictly better candidate. The only natural fit is a pre-existing Symfony 2 application that already depends on it.

Migration path. If a legacy Symfony 2 service exists, the defensible posture is freeze, not extend: pin the bundle and its transitive graph, isolate the legacy runtime (separate container or host), and fund migration off Symfony 2 and PHP 5.x as a roadmap item rather than treating this as an integration task. Target end state for the capability: OPcache for opcodes, APCu for single-host user cache, Redis for cross-node caching, all behind symfony/cache or Laravel's native contracts. If the goal is simply to bring APC-style caching into Laravel, skip the bundle and implement directly against APCu or Redis — the port is a rewrite of a few dozen lines, not a dependency migration.

Compatibility. Symfony 2.x only; PHP 5.3–5.6 era; requires the apc extension, absent on PHP 7+. No Laravel package discovery, no PSR-6/PSR-16 conformance, no PHP 7/8 type semantics. Treat the symfony/symfony constraint in the package's composer.json as the authoritative statement of what it can coexist with — not the README, which on a four-star Symfony 2-era bundle is typically stale.

Sequencing. (1) Confirm whether a legacy Symfony 2 application is actually in scope; if not, close the evaluation and log the decision. (2) If it is, inventory current APC usage and size the migration — this is the input to a roadmap slot and a budget estimate. (3) Stand up the replacement layer (OPcache + APCu + Redis) in parallel and validate cache warm-up and invalidation under production traffic patterns. (4) Cut over service by service with a rollback path. (5) Decommission the bundle and the PHP 5.x runtime together. Do not sequence any new feature work on top of this package at any point.

Operational Impact

Maintenance. Effectively unmaintained. Zero dependents and negligible community interest mean no upstream bug fixes and no CVE response process; every defect becomes an internal fork obligation. Owning that fork implies indefinitely maintaining Symfony 2 bundle conventions and PHP 5.x compatibility — a poor allocation of engineering capacity that grows more expensive each year as in-house familiarity with that era decays. For a TPM this is the headline: the true cost of adoption is permanent ownership of a shrinking asset.

Support. No vendor, no active maintainer community, thin and likely stale documentation. Incident response would rest entirely on engineers who know Symfony 2's container and APC internals — a population that only shrinks. Runbooks, alerting thresholds, and tuning guidance would all have to be authored in-house before the service could be considered operable.

Scaling. APC is per-process and per-host. It does not share state across web nodes, so horizontal scaling produces N independent caches with no coherent invalidation story; correctness depends on deployment-time flushing and key discipline rather than a shared source of truth. Memory is fixed at the SAPI level and subject to fragmentation, which surfaces as gradual performance decay and intermittent allocation failures sustained under load. This is directly contrary to what a horizontally scaled Laravel deployment needs, and it caps the architecture in a way that will surface as a constraint the first time traffic grows.

Failure modes to plan and monitor for. Silent degradation to uncached execution when APC is unavailable or misconfigured; cache stampedes on cold start and immediately after deploys; memory exhaustion and fragmentation forcing worker restarts; CLI/FPM cache divergence producing "works in the queue, stale over HTTP" defects; inconsistent behavior across nodes after partial deploys. Because the package is unmaintained, each of these becomes an in-house diagnosis and patch rather than an upgrade. The unsupported-extension security exposure is a standing condition, not an event.

Ramp-up. Installation is trivial; production safety is not. Competent operation requires Symfony 2 bundle wiring and APC tuning knowledge that does not transfer to the rest of the estate — a training cost with no residual value. The honest budget is for eventual removal, not for running it: any business case built on this package should carry a funded migration line item alongside it.

TPM bottom line. Log this as a no-adopt for Laravel and a legacy-inventory finding elsewhere. The capability it nominally provides is delivered by OPcache (opcodes), APCu or Redis (user cache), and Laravel's native cache drivers — all supported, all with a patch path. The only defensible use is short-term containment inside an existing Symfony 2 service already on PHP 5.x, paired with a committed migration off that stack.

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.
gmostafa/php-graphql-client
xeviant/paystack
snowsoft/faker
meditationsteps/blogetc
animalyoung/laravel-influxdb
onix-solutions/sms-telera
lonely-lights/prosetta
oxygen/data
oxygen/core
jengo/base
xiloryx/log-collector
a21ns1g4ts/filament-stripe
la-php/laravel-admin
artisan-build/community-prompts
vleroy/smart
ayles-software/laravel-australian-public-holidays
cboxdk/laravel-id-spatie
cboxdk/laravel-id-billing
cboxdk/laravel-id-billing-bridge
simple-as-fuck/php-performance-log