hyperf/code-parser
A lightweight PHP code parser for Hyperf that uses nikic/php-parser to inspect source as an AST. It helps analyze classes, methods, and properties, traverse nodes with visitors, and support code generation and transformation workflows.
AsyncQueue method rename (getQueueName() → getPoolName()), Carbon timezone/diff behavior, and a new Swow dependency binding. This is a major migration event, not a drop-in patch. PM decision: schedule a dedicated upgrade epic with a rollback plan, or pin to the prior minor and defer.processes.php edits), Pipeline::finally(), Collection::shift()/pop() multi-item, Arr::partition()/reject(), Context macroability, and Jsonable::toJson(). These are small but real accelerators for background-job-heavy or data-transformation-heavy features.StdoutLogger and enriched QueryException connection names improve incident triage.fgetcsv/fputcsv and the removal of deprecated APIs signal that the project is actively pruning legacy paths. PM should treat "stay current" as an ongoing cost line, not a one-time project.Consider adopting or upgrading when:
Look elsewhere or defer when:
diffInDays absolute behavior) or async queue jobs overriding getQueueName(). Silently upgrading will produce wrong values or fatal errors; audit before committing.escape parameter requirement needs code changes and regression testing.For executives: This is a platform modernization release, not a feature drop. It keeps us on supported PHP, Symfony, and database drivers, and unlocks search (Elasticsearch 8/9) and SQL Server without custom engineering. The trade-off is a bounded migration: two configuration files change shape, one method is renamed, and a few date/Carbon behaviors shift. I recommend we fund a short, scoped upgrade sprint with a rollback path rather than let the gap widen — deferring increases the eventual cost and leaves us on unsupported dependencies.
For engineering: Treat v3.2.0 as a coordinated migration. Required work: (1) convert logger and cache config to the new default + channels/stores structure across all environments; (2) rename JobInterface::getQueueName() to getPoolName() and audit $queue → $pool property usage; (3) register ResponseEmitterInterface in dependencies.php if using Swow; (4) verify Carbon timestamps and diffInDays() results, since absolute values are no longer the default; (5) audit deleted symbols (CacheableSupportsMethodInterface, HandeShakeException, ResumeExitCoordinatorListener, async-queue serialization shims); (6) fix fgetcsv/fputcsv calls with escape: '' ahead of PHP 8.4. Upside: PHP 8.2+ baseline, PHPUnit 11, Elasticsearch 8/9, SQL Server, per-job queue routing, config-driven queue consumers, and improved logging/exception diagnostics. Propose a feature branch, full test run, and a staged rollout behind the existing release process.
How can I help you explore Laravel packages today?