NEW Add FilterInterface and retrofit into URLSegmentFilter #9064
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.
There are other filters in the core SilverStripe product, e.g. FileNameFilter in silverstripe/assets which would benefit from having a common filter interface. This retrofits one for URLSegmentFilter in framework. I have not added any PHP 7 syntax in method signatures to avoid breaking backwards compatibility.
Note: it's possible this could be seen as a breaking change, if someone had replaced URLSegmentFilter with their own implementation that didn't extend it. At this point there are no consumers of the FilterInterface directly, so this wouldn't break anything immediately, but there is a possibility it could break something in a future release if FilterInterface is type hinted somewhere. For this reason I'd be OK with retargetting at SilverStripe 5.x if somebody is concerned about this. If people have typehints on this class it would be on URLSegmentFilter, in which case retrofitting this interface won't break those.