The reasons are explained in this other discussion: https://github.com/symfony/symfony/pull/17687 The idea is: - Deprecate and trigger deprecation warnings since 3.1 - Throw exceptions since 4.0