- How do I install laravelista/picasso in a Laravel app?
- Install it with Composer by running composer require laravelista/picasso in your Laravel project. Laravel package discovery should register the service provider, and you then configure the filesystem disk you want Picasso to use. Confirm your PHP version satisfies the package's composer.json constraints before installing, especially if you are still on PHP 7.4.
- What PHP and Laravel versions does Picasso require?
- Picasso 0.8.0 moved to native type declarations and named arguments, which means it requires PHP 8.0 or newer and uses modern PHP 8.1/8.2 idioms. Laravel support is defined by the illuminate/* constraints in composer.json, so check those for the exact version you install. Do not assume the Laravel support matrix is identical to 0.7.x just because the release has no new features.
- How do I resize and crop images with Picasso?
- Picasso provides a fluent API: choose an image stored on a Laravel filesystem disk, chain resize and crop operations, and let the package write the manipulated result to its cache. You can use the same approach to generate thumbnails. The source image is left untouched, so you can safely request different dimensions without destroying the original.
- Does Picasso modify my original images?
- No. Picasso keeps your originals untouched and writes resized, cropped, or thumbnail versions to a cache on the configured filesystem disk. That makes it safe to generate multiple variants of the same source image.
- Can Picasso work with S3 or other cloud storage?
- Yes. Picasso works with any Laravel filesystem disk, including local storage and cloud disks such as S3. You configure the disk in Laravel as usual, then point Picasso at images on that disk. Check disk visibility and URL settings if cached images must be publicly accessible.
- Is Picasso safe to use in production?
- Picasso can be used in production, but treat it as a pre-1.0 package: pin a specific version or a careful constraint because 0.x releases can break in minor versions. Test image generation and cache behavior on your real disk, including cloud storage permissions and cache invalidation. If you rely on static analysis or named arguments, include those checks in CI before upgrading.
- How does image caching work in Picasso?
- Picasso caches manipulated images on the filesystem disk you configure, so repeated requests for the same resize, crop, or thumbnail operation can reuse the generated file. The original remains the source of truth. Plan how cached files are invalidated or cleared when source images change or when you change manipulation parameters.
- What changed in Picasso 0.8.0 and is it a breaking upgrade?
- Picasso 0.8.0 is a language-level modernization release rather than a feature release. It removes docblocks in favor of native type declarations and adopts named arguments, with no visible functional payload. That buys compatibility with modern PHP but can break static-analysis tooling and code that calls package APIs with named arguments.
- Why did static analysis break after upgrading Picasso to 0.8.0?
- Picasso 0.8.0 dropped docblocks that may have carried @param, @method, @property, generic, or array-shape information that native PHP types cannot fully express. PHPStan, Psalm, IDE completion, and Laravel IDE-helper stubs can therefore report new errors even when runtime tests pass. Re-baseline or update suppressions deliberately and check whether parameter names are now part of the public contract.
- How should I migrate from Picasso 0.7.x to 0.8.0?
- Inventory every service and internal package that depends on Picasso and record its current constraint. Confirm each runtime meets the new PHP floor and check the illuminate/* constraints before assuming 0.7.x parity. Upgrade in a non-production branch, run tests plus static analysis, and grep for named-argument calls into Picasso APIs; if you are stuck on PHP 7.4, stay on the 0.7.x line and confirm it remains patched.