Conversation
… cache optimization, error handling, S3 hardening, DoS fix, Twig restore, tests - Add ImageFormat and ImagineDriver backed string enums, replace hardcoded constants - Add #[Override] attributes to all interface/parent method implementations - Switch redirects from 301 to 302 for correct cache semantics - Add resolveIfStored() to eliminate double cache lookups (TOCTOU fix) - Add SSRF protection via scheme allowlist on StreamLoader - Use bundle exceptions in FilterManager, catch ExceptionInterface in controller - Harden S3Resolver: CacheControl/ACL on store, dangerous extension guard - Move DoS pixel budget check to apply() after dimension auto-calculation - Validate post-processor binaries at container compile time - Restore image_filter Twig filter, add filter param to fit/fill/optimize - Add driver short aliases (gd/imagick/gmagick) and binaries config node - Add FilterManager unit tests, update existing tests for new behavior Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ImageFormatandImagineDriverbacked string enums, replace hardcoded constants; add#[Override]attributes to all interface/parent method implementations (~22 files)resolveIfStored()toResolverInterfaceand all implementations, eliminating double cache lookups and TOCTOU race conditions inCacheManagerandFilterServiceStreamLoader(default:file,data); dangerous extension guard and://sanitization onS3ResolverFilterManager, catchExceptionInterfacein controller, throwHttpException(500)instead of bareRuntimeExceptionCacheControland optionalACLheaders onputObject(), configurable via resolver factoryapply()after dimension auto-calculation, covering single-dimension inputsimage_filterfilter, add optionalfilterparameter tofit/fill/optimize; clean up dead code in macro templategd/imagick/gmagick),binariesconfig node with defaults, strengthened exposed filter secret validationFilterManagerTest(9 cases), updatedS3ResolverTest,CacheManagerTest,StreamLoaderTest,ImageRuntimeTest, integration test status code assertionsTest plan
php-cs-fixer)🤖 Generated with Claude Code