- What is hoa/iterator used for in a Laravel application?
- It provides pull-based iterators and decorators for filters, limits, maps, buffers, CSV, directory walking, regex filtering, and token scanning. In Laravel it fits only as a leaf dependency in application or domain code for genuinely lazy traversal over large or unbounded sources. Laravel's LazyCollection, native generators, and SPL iterators usually cover the same cases with no extra dependency.
- How do I install hoa/iterator in Laravel?
- Install it with Composer using composer require hoa/iterator and pin the exact version in composer.json. It autoloads via PSR-4 and has no native extension or runtime service requirement. Laravel's package discovery does not auto-wire it, so you instantiate the iterator classes directly where needed.
- Does hoa/iterator have a Laravel service provider or facade?
- No. hoa/iterator is framework-agnostic PHP and ships no Laravel service provider, facade, config file, or container binding. Any Laravel usage is ordinary application code importing Hoa classes directly. Treat it as a utility leaf rather than a framework extension.
- Can I configure hoa/iterator in Laravel?
- There is no Laravel configuration layer to publish or edit. Behavior is configured by composing iterator objects in PHP code, such as wrapping a source with filter, limit, or map decorators. If you need app-specific settings, put them in your own service or config and pass them into the iterator construction.
- Which Laravel and PHP versions support hoa/iterator?
- There is no official Laravel version support matrix because the package is not Laravel-aware. Upstream last released in January 2017 and has not been validated against PHP 8.1 through 8.4, so deprecations and dynamic-property or implicit-nullable issues are possible. You must prove compatibility on your exact PHP runtime and Laravel test matrix before relying on it.
- Is hoa/iterator safe for production Laravel apps?
- Mechanically it is easy to install and BSD-3-Clause licensed, but the upstream repository is archived and the last release was January 2017. Production risk is high because fixes become yours, transitive Hoa dependencies carry the same abandonment profile, and Hoa's exception and callable idioms may not match standard SPL or Laravel expectations. Use it only for narrow, well-tested call sites or replace it with native generators, LazyCollection, and SPL.
- What are the best alternatives to hoa/iterator in Laravel?
- For most Laravel code, use LazyCollection for lazy chains, native generators for custom pull-based streams, and SPL classes such as SplFileObject, LimitIterator, CallbackFilterIterator, and RegexIterator. These are maintained with PHP and Laravel, add no third-party dependency, and integrate naturally with framework code. Only keep hoa/iterator where a specific iterator behavior cannot be expressed natively in a small amount of code.
- How do I test hoa/iterator in a Laravel project?
- Run the package through your application's PHP and Laravel test matrix rather than assuming compatibility from its old release. Add focused tests around each iterator composition, including error paths and exception types, because Hoa's exception hierarchy may differ from standard SPL behavior. Also watch for deprecation notices and dynamic-property warnings under PHP 8.x during the test run.
- How should I use hoa/iterator without leaking Hoa types into my Laravel code?
- Do not expose Hoa\Iterator types across module or service boundaries. Convert to \Iterator, \Generator, or LazyCollection at the boundary and keep the Hoa-backed implementation behind one internal interface. Add a code-review or static-analysis rule that blocks new Hoa\Iterator imports outside that adapter.
- Is hoa/iterator still maintained?
- No. The upstream repository is archived and the last release was January 2017, with very low ecosystem momentum and no active dependents. There is no upstream fix path for PHP 8.x issues, so any maintenance, patching, or forking cost falls on your team. If you adopt it, record a removal trigger and an exit plan.