tzsk/collage
tzsk/collage is a Laravel package for combining multiple images into a single collage. Configure layouts, sizing, and spacing, then render a composited image through a simple API—useful for galleries, thumbnails, product grids, and social media previews.
This release (7.0.0) is primarily a tooling and platform-support bump: it adds Laravel 10.x support and a Pint style checker, while dropping PHP 8.0 and PHP CS Fixer. Treat it as an upgrade gate rather than a feature release.
composer require --dev vendor/package:^7.0
(Pin the major explicitly; the PHP constraint change makes composer update fail loudly on 8.0, which is the intended behavior.)php artisan vendor:publish --tag=<package>-config
./vendor/bin/pint --test
If you were relying on PHP CS Fixer through this package, that path is gone in 7.0 — budget a short migration (see Gotchas) before upgrading production branches.
Composer script as the single entry point. Wire the style checker into composer.json so local runs and CI use identical commands:
"scripts": {
"lint": "./vendor/bin/pint --test",
"lint:fix": "./vendor/bin/pint"
}
CI gate, not a formatter. Run pint --test in CI and pint locally/pre-commit. --test exits non-zero on diffs, which is exactly what you want in a pull-request check; letting CI rewrite files produces noisy, un-reviewable commits.
Per-package / per-directory config. Point Pint at a pint.json at the repo root and scope it to the directories this package owns (src, tests, config). This matters in monorepos or apps with vendored/legacy folders you do not want reformatted in the same PR as the upgrade.
Upgrade workflow for an existing app:
composer.json ("php": "^8.1").^7.0 on a branch with no other changes../vendor/bin/pint --test to see the real diff surface, then ./vendor/bin/pint in a separate, style-only commit. Keeping the dependency bump and the reformat apart makes review and git blame survivable.Laravel 10 integration. If you use Laravel Pint's preset with Laravel-flavored rules, this release lines the package up with the Laravel 10 defaults. Where the package exposes config, prefer the named preset over hand-rolled rule arrays — rule names move between Pint majors and a preset insulates you.
Pre-commit hook (optional but cheap). A lint-staged-style hook or a Husky/simple-git-hooks entry running pint on staged files only keeps the main branch clean without forcing full-repo reformats on every commit.
composer.json allow-lists php-cs-fixer transitively via this package, it will disappear from vendor/bin after the upgrade — grep your scripts, Makefiles, and CI YAML for php-cs-fixer / php-cs-fixer fix before merging.php-cs-fixer internally but the CLI and config format differ. Rule arrays generally translate, but fixers → rules, presets, and the --dry-run flag map to --test. Do not assume a 1:1 config copy; run pint --test and diff the results against a php-cs-fixer --dry-run --diff baseline on the old version first.--test vs --test --diff. Without --diff you get a file list and exit code but no visibility into what would change — the most common "why is CI red?" moment. Add --diff (or -v) when debugging.--test is safe in CI. A stray pint in a CI step will silently mutate the workspace and produce a green build that never lands the formatting.composer update on a machine with PHP 8.0 fails; use --ignore-platform-req=php only to inspect the resolution, never to deploy.pint --dirty where available) and keep full-repo checks for CI.pint.json) over editing vendor files, and re-check it after every minor, since rule sets are the most common source of surprise diffs in style tooling releases.composer.lock for transitive upgrades rather than assuming the package is at fault.How can I help you explore Laravel packages today?