← all change records
#2811047 Constraint validators should subclass ConstraintValidator instead of implementing ConstraintValidatorInterface directly
Generated 2026-06-03 14:00 UTC
Matching rules (1)
- from: \Symfony\Component\Validator\ConstraintValidatorInterface
to: \Symfony\Component\Validator\ConstraintValidator
Affected contrib projects (211)
| Project | legacy | in_flight | migrated | installs | files | adopters | |
|---|---|---|---|---|---|---|---|
| redirect ↗ | 0 | 1 | 0 | 292,214 | 0 | 0 | |
| paragraphs ↗ | 0 | 0 | 1 | 259,569 | 0 | 0 | |
| crop ↗ | 0 | 0 | 1 | 161,578 | 0 | 0 | |
| address ↗ | 0 | 0 | 3 | 117,054 | 0 | 0 | |
| scheduler ↗ | 0 | 0 | 2 | 103,900 | 0 | 0 | |
| video_embed_field ↗ | 0 | 0 | 3 | 101,875 | 0 | 0 | |
| geofield ↗ | 0 | 0 | 2 | 66,928 | 0 | 0 | |
| geolocation ↗ | 0 | 0 | 2 | 45,454 | 0 | 0 | |
| commerce ↗ | 0 | 0 | 2 | 38,572 | 0 | 0 | |
| scheduler_content_moderation_integration ↗ | 0 | 0 | 2 | 31,797 | 0 | 0 | |
| state_machine ↗ | 0 | 0 | 1 | 31,127 | 0 | 0 | |
| simplenews ↗ | 0 | 0 | 1 | 29,437 | 0 | 0 | |
| dynamic_entity_reference ↗ | 0 | 0 | 2 | 29,311 | 0 | 0 | |
| entityqueue ↗ | 0 | 0 | 1 | 28,245 | 0 | 0 | |
| jsonapi_extras ↗ | 0 | 0 | 1 | 27,790 | 0 | 0 | |
| csp ↗ | 0 | 0 | 2 | 24,736 | 0 | 0 | |
| simple_oauth ↗ | 0 | 0 | 2 | 21,401 | 0 | 0 | |
| trash ↗ | 0 | 0 | 1 | 19,430 | 0 | 0 | |
| contact_storage ↗ | 0 | 0 | 1 | 19,037 | 0 | 0 | |
| layout_paragraphs ↗ | 0 | 0 | 3 | 17,901 | 0 | 0 | |
| eca ↗ | 0 | 0 | 3 | 17,304 | 0 | 0 | |
| ai ↗ | 0 | 0 | 4 | 15,430 | 0 | 0 | |
| field_validation ↗ | 0 | 0 | 2 | 15,181 | 0 | 0 | |
| site_verify ↗ | 0 | 0 | 1 | 14,928 | 0 | 0 | |
| physical ↗ | 0 | 0 | 1 | 13,923 | 0 | 0 | |
| domain ↗ | 0 | 0 | 1 | 11,889 | 0 | 0 | |
| tmgmt ↗ | 0 | 0 | 1 | 11,594 | 0 | 0 | |
| forum ↗ | 0 | 0 | 1 | 9,926 | 0 | 0 | |
| time_field ↗ | 0 | 0 | 1 | 9,910 | 0 | 0 | |
| sitewide_alert ↗ | 0 | 0 | 2 | 9,829 | 0 | 0 | |
| genpass ↗ | 0 | 0 | 2 | 9,244 | 0 | 0 | |
| date_recur ↗ | 0 | 0 | 3 | 8,852 | 0 | 0 | |
| book ↗ | 0 | 0 | 3 | 8,033 | 0 | 0 | |
| og ↗ | 0 | 0 | 2 | 7,735 | 0 | 0 | |
| ui_patterns ↗ | 0 | 0 | 1 | 7,510 | 0 | 0 | |
| workbench_moderation ↗ | 0 | 0 | 1 | 7,015 | 0 | 0 | |
| range ↗ | 0 | 0 | 1 | 6,586 | 0 | 0 | |
| json_field ↗ | 0 | 0 | 1 | 5,670 | 0 | 0 | |
| canvas ↗ | 0 | 0 | 1 | 5,503 | 0 | 0 | |
| lightning_media ↗ | 0 | 0 | 3 | 5,464 | 0 | 0 | |
| workflow ↗ | 0 | 0 | 2 | 5,395 | 0 | 0 | |
| media_entity_slideshow ↗ | 0 | 0 | 1 | 5,019 | 0 | 0 | |
| readonlymode ↗ | 0 | 0 | 1 | 5,013 | 0 | 0 | |
| media_remote ↗ | 0 | 0 | 1 | 4,595 | 0 | 0 | |
| taxonomy_unique ↗ | 0 | 0 | 1 | 4,536 | 0 | 0 | |
| cdn ↗ | 0 | 0 | 2 | 4,250 | 0 | 0 | |
| duration_field ↗ | 0 | 0 | 1 | 4,162 | 0 | 0 | |
| salesforce ↗ | 0 | 0 | 2 | 3,753 | 0 | 0 | |
| paragraphs_limits ↗ | 0 | 0 | 1 | 3,569 | 0 | 0 | |
| markdown ↗ | 0 | 0 | 1 | 3,215 | 0 | 0 | |
| registration ↗ | 0 | 0 | 1 | 3,036 | 0 | 0 | |
| preview_link ↗ | 0 | 0 | 1 | 2,769 | 0 | 0 | |
| commerce_license ↗ | 0 | 0 | 1 | 2,714 | 0 | 0 | |
| custom_field ↗ | 0 | 0 | 2 | 2,601 | 0 | 0 | |
| onlyone ↗ | 0 | 0 | 1 | 2,553 | 0 | 0 | |
| limited_field_widgets ↗ | 0 | 0 | 1 | 2,306 | 0 | 0 | |
| colorapi ↗ | 0 | 0 | 2 | 2,191 | 0 | 0 | |
| entity_hierarchy ↗ | 0 | 2 | 0 | 2,161 | 0 | 0 | |
| media_duplicates ↗ | 0 | 0 | 2 | 2,152 | 0 | 0 | |
| private_message ↗ | 0 | 0 | 2 | 2,059 | 0 | 0 | |
| symfony_mailer_log ↗ | 0 | 0 | 1 | 2,048 | 0 | 0 | |
| homebox ↗ | 0 | 0 | 1 | 1,911 | 0 | 0 | |
| domain_path ↗ | 0 | 0 | 2 | 1,813 | 0 | 0 | |
| unique_entity_title ↗ | 0 | 0 | 1 | 1,784 | 0 | 0 | |
| phone_number ↗ | 0 | 0 | 1 | 1,752 | 0 | 0 | |
| commerce_cart_api ↗ | 0 | 0 | 1 | 1,713 | 0 | 0 | |
| unique_content_field_validation ↗ | 0 | 0 | 2 | 1,684 | 0 | 0 | |
| node_title_validation ↗ | 0 | 0 | 1 | 1,631 | 0 | 0 | |
| file_link ↗ | 3 | 0 | 0 | 1,620 | 0 | 0 | |
| isbn ↗ | 0 | 0 | 1 | 1,528 | 0 | 0 | |
| helper ↗ | 0 | 0 | 1 | 1,522 | 0 | 0 | |
| entity_reference_validators ↗ | 0 | 0 | 2 | 1,484 | 0 | 0 | |
| acquia_dam ↗ | 0 | 0 | 1 | 1,446 | 0 | 0 | |
| mercury_editor ↗ | 0 | 0 | 3 | 1,406 | 0 | 0 | |
| ginvite ↗ | 0 | 0 | 3 | 1,403 | 0 | 0 | |
| require_on_publish ↗ | 0 | 0 | 2 | 1,335 | 0 | 0 | |
| commerce_giftcard ↗ | 0 | 0 | 1 | 1,233 | 0 | 0 | |
| user_restrictions ↗ | 0 | 0 | 1 | 1,164 | 0 | 0 | |
| grequest ↗ | 0 | 0 | 1 | 1,105 | 0 | 0 | |
| menu_item_limit ↗ | 0 | 0 | 1 | 1,095 | 0 | 0 | |
| mobile_number ↗ | 0 | 0 | 1 | 999 | 0 | 0 | |
| fraction ↗ | 0 | 0 | 2 | 971 | 0 | 0 | |
| build_hooks ↗ | 0 | 0 | 1 | 942 | 0 | 0 | |
| brightcove ↗ | 0 | 0 | 2 | 881 | 0 | 0 | |
| advanced_email_validation ↗ | 0 | 0 | 2 | 880 | 0 | 0 | |
| machine_name ↗ | 0 | 0 | 1 | 844 | 0 | 0 | |
| apigee_edge ↗ | 0 | 0 | 2 | 777 | 0 | 0 | |
| varbase_media ↗ | 0 | 0 | 3 | 732 | 0 | 0 | |
| controlled_access_terms ↗ | 0 | 0 | 1 | 581 | 0 | 0 | |
| entity_legal ↗ | 0 | 0 | 1 | 538 | 0 | 0 | |
| apigee_api_catalog ↗ | 0 | 0 | 1 | 519 | 0 | 0 | |
| opigno_social ↗ | 0 | 0 | 1 | 409 | 0 | 0 | |
| commerce_registration ↗ | 0 | 0 | 2 | 386 | 0 | 0 | |
| bookable_calendar ↗ | 0 | 0 | 1 | 369 | 0 | 0 | |
| pluginreference ↗ | 0 | 0 | 1 | 346 | 0 | 0 | |
| email_username ↗ | 0 | 0 | 2 | 333 | 0 | 0 | |
| ai_integration_eca ↗ | 0 | 0 | 1 | 304 | 0 | 0 | |
| media_avportal ↗ | 0 | 0 | 1 | 303 | 0 | 0 | |
| workflows_field ↗ | 0 | 0 | 1 | 294 | 0 | 0 | |
| tool ↗ | 0 | 0 | 1 | 289 | 0 | 0 | |
| redhen ↗ | 0 | 0 | 1 | 280 | 0 | 0 | |
| cas_server ↗ | 0 | 0 | 2 | 277 | 0 | 0 | |
| content_model_documentation ↗ | 0 | 0 | 1 | 274 | 0 | 0 | |
| group_permissions ↗ | 0 | 0 | 2 | 269 | 0 | 0 | |
| wse ↗ | 0 | 0 | 2 | 267 | 0 | 0 | |
| xnumber ↗ | 0 | 0 | 1 | 267 | 0 | 0 | |
| media_entity_remote_image ↗ | 0 | 0 | 1 | 260 | 0 | 0 | |
| access_policy ↗ | 0 | 0 | 2 | 258 | 0 | 0 | |
| meta_entity ↗ | 0 | 0 | 1 | 245 | 0 | 0 | |
| alt_text_validation ↗ | 0 | 0 | 1 | 223 | 0 | 0 | |
| masquerade_field ↗ | 0 | 0 | 1 | 209 | 0 | 0 | |
| ai_context ↗ | 0 | 0 | 1 | 180 | 0 | 0 | |
| alert_message ↗ | 0 | 0 | 2 | 173 | 0 | 0 | |
| rut ↗ | 0 | 0 | 1 | 153 | 0 | 0 | |
| file_temporary_validator ↗ | 0 | 0 | 1 | 140 | 0 | 0 | |
| summary_word_limit ↗ | 0 | 0 | 1 | 133 | 0 | 0 | |
| apigee_m10n ↗ | 0 | 0 | 1 | 128 | 0 | 0 | |
| link_allowed_hosts ↗ | 0 | 0 | 2 | 111 | 0 | 0 | |
| pm ↗ | 0 | 0 | 2 | 109 | 0 | 0 | |
| openagenda ↗ | 0 | 0 | 2 | 102 | 0 | 0 | |
| lms ↗ | 0 | 0 | 1 | 99 | 0 | 0 | |
| commerce_funds ↗ | 0 | 0 | 2 | 89 | 0 | 0 | |
| scorm_field ↗ | 0 | 0 | 2 | 80 | 0 | 0 | |
| pdfa11y ↗ | 0 | 0 | 1 | 79 | 0 | 0 | |
| linky ↗ | 0 | 0 | 2 | 77 | 0 | 0 | |
| commerce_variation_bundle ↗ | 0 | 0 | 1 | 75 | 0 | 0 | |
| xero ↗ | 0 | 0 | 2 | 66 | 0 | 0 | |
| google_calendar_service ↗ | 0 | 0 | 3 | 65 | 0 | 0 | |
| points ↗ | 0 | 0 | 1 | 63 | 0 | 0 | |
| layout_builder_ipe ↗ | 0 | 0 | 1 | 62 | 0 | 0 | |
| farm_ledger ↗ | 0 | 0 | 1 | 56 | 0 | 0 | |
| crossword ↗ | 0 | 0 | 1 | 50 | 0 | 0 | |
| decoupled_auth ↗ | 0 | 0 | 2 | 47 | 0 | 0 | |
| burndown ↗ | 0 | 0 | 1 | 46 | 0 | 0 | |
| crm ↗ | 0 | 0 | 1 | 46 | 0 | 0 | |
| micro_site ↗ | 0 | 0 | 1 | 45 | 0 | 0 | |
| vgwort ↗ | 0 | 0 | 2 | 43 | 0 | 0 | |
| intercept ↗ | 0 | 0 | 1 | 42 | 0 | 0 | |
| paragraphs_blokkli ↗ | 0 | 0 | 1 | 40 | 0 | 0 | |
| tsbu ↗ | 0 | 0 | 1 | 40 | 0 | 0 | |
| keepeek ↗ | 0 | 0 | 1 | 38 | 0 | 0 | |
| auctions ↗ | 0 | 0 | 2 | 36 | 0 | 0 | |
| generate_style_theme ↗ | 0 | 0 | 2 | 35 | 0 | 0 | |
| group_context_path_prefix ↗ | 0 | 0 | 1 | 35 | 0 | 0 | |
| redirect_regex ↗ | 0 | 0 | 1 | 34 | 0 | 0 | |
| prevent_absolute_internal_links ↗ | 0 | 0 | 1 | 32 | 0 | 0 | |
| telephone_type ↗ | 1 | 0 | 0 | 32 | 0 | 0 | |
| alien_alias ↗ | 0 | 0 | 1 | 31 | 0 | 0 | |
| entity_workflow ↗ | 0 | 0 | 1 | 31 | 0 | 0 | |
| ecoindex ↗ | 0 | 0 | 1 | 30 | 0 | 0 | |
| content_translation_access ↗ | 0 | 0 | 1 | 26 | 0 | 0 | |
| data_pipelines ↗ | 0 | 0 | 1 | 26 | 0 | 0 | |
| username ↗ | 0 | 0 | 1 | 23 | 0 | 0 | |
| gauth_user ↗ | 0 | 0 | 1 | 22 | 0 | 0 | |
| flowdrop ↗ | 0 | 0 | 3 | 21 | 0 | 0 | |
| drowl_media ↗ | 0 | 0 | 3 | 20 | 0 | 0 | |
| experience_builder ↗ | 0 | 0 | 2 | 20 | 0 | 0 | |
| language_country_negotiation ↗ | 0 | 0 | 1 | 20 | 0 | 0 | |
| bunny_stream ↗ | 0 | 0 | 1 | 19 | 0 | 0 | |
| mutual_credit ↗ | 0 | 0 | 1 | 19 | 0 | 0 | |
| sshkey ↗ | 0 | 0 | 1 | 19 | 0 | 0 | |
| contacts ↗ | 0 | 0 | 1 | 18 | 0 | 0 | |
| seo_urls ↗ | 0 | 0 | 1 | 18 | 0 | 0 | |
| date_point ↗ | 0 | 0 | 1 | 16 | 0 | 0 | |
| alternative_user_emails ↗ | 0 | 0 | 1 | 15 | 0 | 0 | |
| api_toolkit ↗ | 0 | 0 | 1 | 15 | 0 | 0 | |
| proc ↗ | 0 | 0 | 1 | 15 | 0 | 0 | |
| oh ↗ | 0 | 0 | 1 | 14 | 0 | 0 | |
| monster_menus ↗ | 0 | 0 | 1 | 13 | 0 | 0 | |
| api ↗ | 0 | 0 | 1 | 12 | 0 | 0 | |
| user_referral ↗ | 0 | 0 | 1 | 12 | 0 | 0 | |
| affiliated ↗ | 0 | 0 | 1 | 11 | 0 | 0 | |
| mailgroup ↗ | 0 | 0 | 1 | 10 | 0 | 0 | |
| hospital_price_transparency ↗ | 0 | 0 | 2 | 9 | 0 | 0 | |
| prosemirror ↗ | 0 | 0 | 1 | 9 | 0 | 0 | |
| siteimprove_accessibility ↗ | 0 | 0 | 2 | 9 | 0 | 0 | |
| url_path_restrictions ↗ | 0 | 0 | 1 | 9 | 0 | 0 | |
| user_coins ↗ | 0 | 0 | 1 | 9 | 0 | 0 | |
| commerce_amazon_sp_api ↗ | 0 | 0 | 1 | 8 | 0 | 0 | |
| de_notifications ↗ | 0 | 0 | 1 | 8 | 0 | 0 | |
| farm_rcd ↗ | 0 | 0 | 1 | 8 | 0 | 0 | |
| language_combination ↗ | 0 | 0 | 1 | 8 | 0 | 0 | |
| simple_oauth_redirect_uri_wildcard ↗ | 0 | 0 | 1 | 8 | 0 | 0 | |
| apisync ↗ | 0 | 0 | 1 | 7 | 0 | 0 | |
| oauth_client ↗ | 0 | 0 | 1 | 7 | 0 | 0 | |
| spalp ↗ | 0 | 0 | 1 | 7 | 0 | 0 | |
| commerce_referral ↗ | 0 | 0 | 1 | 6 | 0 | 0 | |
| do_username ↗ | 0 | 0 | 1 | 6 | 0 | 0 | |
| livre ↗ | 0 | 0 | 1 | 6 | 0 | 0 | |
| iframe_consent ↗ | 0 | 0 | 2 | 5 | 0 | 0 | |
| advanced_403_redirect ↗ | 0 | 0 | 2 | 4 | 0 | 0 | |
| association ↗ | 0 | 0 | 2 | 4 | 0 | 0 | |
| collection ↗ | 0 | 0 | 1 | 4 | 0 | 0 | |
| content_moderation_reviewer ↗ | 0 | 0 | 1 | 4 | 0 | 0 | |
| inline_image_saver ↗ | 0 | 0 | 1 | 4 | 0 | 0 | |
| media_entity_dreambroker ↗ | 0 | 0 | 2 | 4 | 0 | 0 | |
| modules_info ↗ | 0 | 0 | 1 | 4 | 0 | 0 | |
| field_ipaddress_pgsql ↗ | 0 | 0 | 2 | 3 | 0 | 0 | |
| kontainer ↗ | 0 | 0 | 1 | 3 | 0 | 0 | |
| nested_set ↗ | 0 | 0 | 1 | 3 | 0 | 0 | |
| site ↗ | 0 | 0 | 1 | 3 | 0 | 0 | |
| burnafter ↗ | 0 | 0 | 1 | 2 | 0 | 0 | |
| drupal_telegram_sdk ↗ | 0 | 0 | 1 | 2 | 0 | 0 | |
| api_token_entity ↗ | 0 | 0 | 1 | 1 | 0 | 0 | |
| entity_counter ↗ | 0 | 0 | 1 | 1 | 0 | 0 | |
| gtm_datalayer ↗ | 0 | 0 | 1 | 1 | 0 | 0 | |
| smallads ↗ | 0 | 0 | 1 | 1 | 0 | 0 | |
| eduframe ↗ | 0 | 0 | 2 | 0 | 0 | 0 | |
| entity_switcher ↗ | 0 | 0 | 1 | 0 | 0 | 0 | |
| finders ↗ | 0 | 0 | 1 | 0 | 0 | 0 | |
| oembed_field ↗ | 0 | 0 | 1 | 0 | 0 | 0 |