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

icedevelopment/apc-bundle

Symfony bundle for integrating APC-backed caching into PHP applications. It provides cache service wiring and utilities for managing APC cache entries, making it easier to use Alternative PHP Cache as a fast local cache in Symfony projects.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. Weak on two axes at once. First, this is a Symfony bundle, not a Laravel package — the description and repo name confirm it ships a Bundle class plus a console command registered through Symfony's DI container, so there is no service provider, no package discovery, and no php artisan integration. Second, its entire functional surface is a console command that calls apc_clear_cache(). That is roughly 20–40 lines of code. The package is not a library with reusable abstractions; it is a packaging wrapper around a single PHP function call. A TPM should treat it as a reference implementation to read and copy, not a dependency to install.

Integration feasibility. Low for direct install. Composer would pull it in, but Laravel's PackageManifest would never boot it, and the command would remain undiscoverable unless manually registered against a Symfony console application that Laravel does not use. Realistic paths are: (a) vendor the command class and wrap it in a Laravel command, or (b) reimplement the one-line cache clear directly. Both are under a day of engineering effort.

Technical risk. Highest risk is efficacy, not stability. APC and APCu shared memory is scoped per SAPI process pool. A CLI process — unless apc.enable_cli=1 and the segment is explicitly shared — has its own segment, so clearing from the console frequently clears a cache nothing else reads. The command exits 0 and reports success while the FPM workers keep serving stale entries. This is the classic silent-no-op failure and the single most important thing to verify before adopting. Secondary risks: the package is abandoned (0 stars, 0 dependents, single release in May 2022, no downstream consumers to surface breakage), PHP 8 removed the legacy apc_* function aliases in favour of apcu_* (requiring apcu-bc or a code change), and the Composer constraints are almost certainly pinned to an EOL Symfony branch.

Key questions.

  • Is the actual requirement "clear APC/APCu user cache" or "invalidate a cache after deploy"? These have very different solutions.
  • Which SAPI holds the cache in production — FPM, CLI workers, Octane, or all three?
  • Is APCu even in use, or is this a legacy opcache concern where opcache_reset() is the correct call?
  • Are we on a supported PHP version, and is ext-apcu already a hard dependency?
  • Who owns the code after we fork it?

Integration Approach

Stack fit. Poor as a Laravel dependency, adequate as a pattern. The package targets a Symfony FrameworkBundle application on a PHP 7.x-era runtime. A Laravel 10/11 application on PHP 8.2+ shares almost no surface with it: different container, different console layer, different cache subsystem. Laravel's cache is Redis/database/file-backed and has no first-class APC driver in modern versions, so the package solves a problem most Laravel estates do not actually have.

Migration path. Recommended sequence is read, extract, discard. Clone the repo, read the command class, confirm exactly which function it calls and with which arguments (system vs. user cache — apc_clear_cache() and apc_clear_cache('user') are materially different). Then reimplement as a small Laravel command using apcu_clear_cache() guarded by function_exists and extension_loaded('apcu'). Do not add the abandoned package to composer.json; a two-file internal implementation is cheaper to own than a supply-chain exception.

Compatibility. Verify three things before writing code: the apcu extension is installed in every runtime that holds cache; apc.enable_cli is set if the clear must run from CLI; and the FPM pools are configured to share a segment if cross-SAPI clearing is expected. If the environment cannot satisfy the third, the CLI approach is the wrong design entirely.

Sequencing. (1) Audit the command body — half a day. (2) Confirm the real requirement with the team; if it is deploy-time invalidation, the correct answer is a PHP-FPM reload or opcache_reset() in the release hook, not an APC command. (3) If APCu clearing is genuinely needed, implement it as an artisan command and, crucially, execute it inside the web SAPI (a protected internal route or a deploy hook that hits one worker per pool) rather than from the console. (4) Retire the package reference from the backlog.

Operational Impact

Maintenance. Effectively zero upstream maintenance — last release May 2022, no stars, no dependents, no issue traffic. Any adoption transfers full ownership to us on day one. The mitigating factor is that the code surface is tiny, so a fork is a half-day of work and near-zero ongoing cost. The unbounded risk is the unexamined dependency: a package with no dependents has never been exercised against a modern PHP runtime, so compatibility surprises arrive at install time, not in the changelog.

Support. No vendor, no community, no SLA. Escalation path is internal only. This is acceptable for a utility this small and unacceptable for anything on the critical deploy path without an internal owner named in the runbook.

Scaling. This is the section that should drive the decision. Cache clearing is node-local, so in any horizontally scaled fleet the command must fan out to every instance, and in any multi-SAPI deployment it must hit every pool. A single SSH invocation against one box will produce a partially stale fleet and an inconsistent user experience that is very hard to diagnose. If the estate runs containers, the cache dies with the container anyway and the command is redundant — a rolling restart is the cleaner primitive.

Failure modes.

  • Silent no-op — CLI clears its own segment, web workers unaffected; exit code 0 masks the failure. Highest-severity, hardest to detect.
  • Fatal error — apc_clear_cache() undefined on PHP 8 without apcu-bc; command crashes rather than degrading.
  • Wrong target — clearing system cache instead of user cache (or vice versa) leaves the actual problem in place while appearing successful.
  • Partial fleet clear — fan-out skips a node; stale reads persist on one instance.
  • Extension absent — command unavailable or errors in environments that never had APCu installed.

Ramp-up. Trivial for a mid-level PHP developer — under a day including tests. The scarce skill is not reading the code but correctly diagnosing which cache layer is stale, which is a platform-engineering judgement call.

TPM recommendation. Do not adopt as a dependency. Treat as documentation, reimplement in-house if the requirement survives scrutiny, and pressure-test the requirement first: in most modern Laravel estates the correct deploy-time action is an opcache reset plus a process restart, not an APC cache clear. Score of 0 is accurate — value here is the pattern, not the package.

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.
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
adachsoft/php-code-style