- What is mi/metadata-puli-file-locator used for?
- It is an adapter that implements the file locator contract from mi/metadata on top of a Puli resource repository. Instead of hard-coding absolute filesystem paths, metadata readers ask for a logical path such as /app/assets/foo and the locator resolves it through Puli's package and namespace mappings. This keeps configuration portable across environments and deployment layouts. It is a small piece of glue rather than a standalone resource-management library.
- How do I install mi/metadata-puli-file-locator with Composer?
- Install it alongside mi/metadata plus a Puli repository implementation, since Puli is the actual source of path resolution and is not bundled here. Typical setup is composer require mi/metadata-puli-file-locator mi/metadata and then puli/repository, with puli/cli, puli/discovery and puli/manager added if you drive configuration from a puli.json file. Be prepared to handle dependency resolution issues on modern PHP versions, because Puli's constraints target the PHP 5.x and 7.x era. There is no published composer.lock combination or dependent package to copy from.
- Does it support Laravel 11 and PHP 8.2 or 8.3?
- There is no framework integration or version support statement in the package itself, so Laravel version compatibility is effectively whatever the underlying Puli constraints allow. Puli has been unmaintained since around 2015 and its Composer graph is pinned to older PHP releases, so installing on PHP 8.2 or 8.3 usually requires --ignore-platform-reqs, a fork, or a compatibility shim. None of those are supportable long-term positions. Treat PHP 8 support as unvalidated until you test it yourself.
- Does this package ship a Laravel service provider or facade?
- No. Despite being described as Laravel-friendly, the repository contains no service provider, no facade, and no publishable configuration. It is a plain Composer library that you wire into Laravel's container manually, binding the Puli repository and the locator implementation yourself. That is not disqualifying, but it removes any framework-integration argument from the evaluation.
- How does Puli path resolution work in this package?
- The locator accepts a logical path and asks the Puli repository to map it to a concrete resource, using Puli's package and namespace mappings rather than absolute filesystem paths. Callers stay unaware of the physical directory layout, so the same logical path can resolve differently per environment. The contract direction matters: if the package implements a Puli interface, Puli owns the resolution logic; if it requires the application to supply repository bindings, you own more of the setup. Read the source to confirm which applies to your case.
- Is Puli still maintained, and is this package a safe dependency?
- Puli is effectively abandoned, with no security response, no PHP or Composer major-version tracking, and no bug fixes since roughly 2015. This package inherits that risk and also shows zero stars and zero dependents, so there is no public evidence it installs cleanly anywhere. The maintenance burden is concentrated upstream rather than in the repository's own small codebase, but a single-vendor package with no external contributors means nobody outside MovingImage24 is likely to fix it. The MIT license softens this by letting you fork, patch, and vendor if needed.
- Does it only locate files, or does it also parse and validate metadata?
- Based on the package description, its job is path resolution: mapping a logical resource path to something readable through Puli. It is not documented as a metadata parser or validator, and no format version support is stated. That distinction matters because parsing would make metadata format drift a maintenance obligation you inherit. Verify against the source before you assume the surface area is limited to locating.
- What are the alternatives to a Puli-backed file locator?
- For Laravel applications, the Storage facade or Flysystem covers most resource-location needs with maintained, framework-native APIs. Symfony's file-locator and asset components offer a similar logical-path-abstraction pattern with ongoing support. If you specifically need the mi/metadata contract, writing a small locator implementation over Laravel's filesystem APIs is realistic and avoids importing a retired abstraction. Only adopt the Puli-backed version if your application already runs a Puli repository.
- How can I test the file locator in my application?
- No public tests or filesystem fixtures are documented, so assume you need to write your own coverage. Wrap the file locator contract behind an interface, use a fake implementation for unit tests, and add one integration test that resolves a known logical path against a real fixture directory through an actual Puli repository. That integration test is where PHP-version and Puli-constraint problems will surface first.
- What license is mi/metadata-puli-file-locator released under, and can I fork it?
- It is MIT licensed, which permits forking, patching, and vendoring without legal review. That is the strongest signal in the package's favour, since it turns the risk of an unmaintained upstream dependency from blocked into absorbable. If you must use it, plan to pin and vendor the fork rather than relying on upstream releases.