- What is puli/repository used for?
- Puli Repository is a generic PHP filesystem-like repository abstraction for storing and retrieving arbitrary resources by path and type. It was designed to give consistent access to assets, configs, and other files across different backends. It is not a Laravel-specific package and does not provide Laravel container bindings, facades, or configuration integration.
- Is puli/repository a Laravel package?
- No, puli/repository is a generic PHP library and has no native Laravel integration. It lacks service providers, facades, events, lifecycle hooks, and Laravel configuration conventions. Using it in Laravel requires a custom adapter and service provider, and it should not be treated as a first-class Laravel filesystem abstraction.
- Can I use puli/repository with Laravel 10 or Laravel 11?
- There is no official support for modern Laravel versions, and the package dates to 2016. Its Symfony, Flysystem, and PHP dependency constraints may conflict with Laravel 10 or 11, so you must run Composer dependency checks against your target version. If integration requires downgrading Laravel or PHP, reject it for new applications.
- How do I install puli/repository with Composer?
- You may be able to run composer require puli/repository in an isolated environment, but installation success does not mean Laravel compatibility. Run composer why-not against your Laravel and PHP versions and audit transitive dependencies before adding it to an application. For legacy use, prefer a disposable spike or a separate package boundary rather than installing it platform-wide.
- Does puli/repository support PHP 8?
- PHP 8 compatibility is not guaranteed because the last release was in 2016 and the broader Puli ecosystem is effectively abandoned. You must test on your exact production PHP runtime, including autoloading, PSR interfaces, and case-sensitive path handling. If the package cannot run cleanly without downgrading PHP, do not use it.
- How does puli/repository compare to Laravel Storage and Flysystem?
- Laravel Storage and Flysystem are actively maintained, Laravel-native or Laravel-integrated filesystem abstractions with disk configuration, drivers, and framework support. Puli Repository offers a path-and-type resource abstraction but lacks modern Laravel integration and active maintenance. For new resource workflows, Laravel Storage should be the default choice.
- Is puli/repository still maintained?
- No, the last release was 2016-02-05, repository metadata is unknown, and the Puli ecosystem is effectively abandoned. There is no active security patching and limited modern documentation. Treat it as vendored legacy code and budget ownership for dependency pinning, security review, and an eventual exit plan.
- How do I integrate puli/repository into a Laravel application safely?
- Wrap Puli behind an application-owned repository interface and bind the adapter in a service provider. Keep Puli types out of controllers, models, and domain code, map Puli paths to Laravel disk roots through configuration, and feature-flag a single consumer first. Add contract tests, logging, health checks, and a rollback path before expanding usage.
- Can I fork or vendor puli/repository if Composer conflicts occur?
- The MIT license permits forking, so you can vendor the minimal required classes under an internal namespace if dependency conflicts block installation. However, forking shifts security patching and maintenance ownership to your team. Keep the fork as small as possible and document an exit path back to Laravel Storage.
- What are the best alternatives to puli/repository in Laravel?
- Laravel Storage with Flysystem disks is the primary alternative for filesystem-like resource access, and a custom repository interface can cover application-specific resource registries. If you need legacy Puli URI compatibility, isolate an adapter rather than adopting Puli as a platform abstraction. For new projects, avoid puli/repository unless a concrete compatibility requirement justifies the maintenance risk.