[PR #361] [CLOSED] [WIP] DDC-1852 - Validating lifecycle callbacks in tools #8081

Closed
opened 2026-01-22 15:58:17 +01:00 by admin · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/doctrine/orm/pull/361
Author: @Ocramius
Created: 6/4/2012
Status: Closed

Base: masterHead: DDC-1852


📝 Commits (8)

  • 591e064 Adding failing test for DDC-1852 functionality
  • 0cd962d Implementing DDC-1852 functionality so that validator now returns correct warnings
  • 7c922ec Removing usage of @HasLifecycleCallbacks, allowing callbacks on protected methods for now
  • 403aae6 Moving validation of classmetadata lifecycle callbacks from runtime to tools
  • a9922e4 Adding @deprecated to the @HasLifecycleCallbacks annotation
  • 33f832f Removing references to @HasLifecycleCallbacks as it is now unused
  • 90d7f61 Documenting changes
  • c7d0a99 Removing useless in loop

📊 Changes

17 files changed (+119 additions, -110 deletions)

View changed files

📝 UPGRADE_TO_2_3 (+9 -1)
📝 lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php (+0 -1)
📝 lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php (+1 -18)
📝 lib/Doctrine/ORM/Mapping/Driver/AnnotationDriver.php (+32 -35)
📝 lib/Doctrine/ORM/Mapping/HasLifecycleCallbacks.php (+1 -0)
📝 lib/Doctrine/ORM/Mapping/MappingException.php (+1 -6)
📝 lib/Doctrine/ORM/Tools/EntityGenerator.php (+3 -7)
📝 lib/Doctrine/ORM/Tools/SchemaValidator.php (+16 -0)
📝 tests/Doctrine/Tests/ORM/Functional/LifecycleCallbackTest.php (+2 -3)
📝 tests/Doctrine/Tests/ORM/Functional/Ticket/DDC1655Test.php (+1 -5)
📝 tests/Doctrine/Tests/ORM/Functional/Ticket/DDC345Test.php (+0 -1)
📝 tests/Doctrine/Tests/ORM/Functional/Ticket/DDC448Test.php (+0 -1)
📝 tests/Doctrine/Tests/ORM/Mapping/AbstractMappingDriverTest.php (+7 -8)
📝 tests/Doctrine/Tests/ORM/Mapping/AnnotationDriverTest.php (+1 -5)
📝 tests/Doctrine/Tests/ORM/Mapping/ClassMetadataTest.php (+3 -16)
📝 tests/Doctrine/Tests/ORM/Tools/Export/annotation/Doctrine.Tests.ORM.Tools.Export.User.php (+0 -1)
📝 tests/Doctrine/Tests/ORM/Tools/SchemaValidatorTest.php (+42 -2)

📄 Description

This feature simply adds validation for lifecycle callbacks.

This PR introduces some BC Breaks:

  1. Doctrine\ORM\Mapping\ClassMetadataInfo#validateLifecycleCallbacks() has been dropped
  2. Doctrine\ORM\Mapping\HasLifecycleCallbacks has been deprecated as it is not checked anymore. This makes the AnnotationDriver slower at first run, but I think this is where caching solves the problem correctly
  3. Mappings have to be validated via tools, as runtime validation is incomplete anyway. Runtime validation of lifecycle callbacks is dropped.

Build Status


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/doctrine/orm/pull/361 **Author:** [@Ocramius](https://github.com/Ocramius) **Created:** 6/4/2012 **Status:** ❌ Closed **Base:** `master` ← **Head:** `DDC-1852` --- ### 📝 Commits (8) - [`591e064`](https://github.com/doctrine/orm/commit/591e0646a962e72aeb66aafbb8d0ff0cce5a3f5f) Adding failing test for DDC-1852 functionality - [`0cd962d`](https://github.com/doctrine/orm/commit/0cd962dade755db5b73aec816a1918ce4a07a5fa) Implementing DDC-1852 functionality so that validator now returns correct warnings - [`7c922ec`](https://github.com/doctrine/orm/commit/7c922ec0426a4b725375dc893eb314064293d3c7) Removing usage of @HasLifecycleCallbacks, allowing callbacks on protected methods for now - [`403aae6`](https://github.com/doctrine/orm/commit/403aae68784cd3c05c7ed599d1af52af8f90d3db) Moving validation of classmetadata lifecycle callbacks from runtime to tools - [`a9922e4`](https://github.com/doctrine/orm/commit/a9922e437a59049e3ebf771d73294e88540f33e2) Adding @deprecated to the @HasLifecycleCallbacks annotation - [`33f832f`](https://github.com/doctrine/orm/commit/33f832fdd35c75c88ce86c0cb8318359b50e348e) Removing references to @HasLifecycleCallbacks as it is now unused - [`90d7f61`](https://github.com/doctrine/orm/commit/90d7f613056d98c297350a40d236cba7408200e4) Documenting changes - [`c7d0a99`](https://github.com/doctrine/orm/commit/c7d0a99ba55035799885a972b8f58b1ca6130ca4) Removing useless in loop ### 📊 Changes **17 files changed** (+119 additions, -110 deletions) <details> <summary>View changed files</summary> 📝 `UPGRADE_TO_2_3` (+9 -1) 📝 `lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php` (+0 -1) 📝 `lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php` (+1 -18) 📝 `lib/Doctrine/ORM/Mapping/Driver/AnnotationDriver.php` (+32 -35) 📝 `lib/Doctrine/ORM/Mapping/HasLifecycleCallbacks.php` (+1 -0) 📝 `lib/Doctrine/ORM/Mapping/MappingException.php` (+1 -6) 📝 `lib/Doctrine/ORM/Tools/EntityGenerator.php` (+3 -7) 📝 `lib/Doctrine/ORM/Tools/SchemaValidator.php` (+16 -0) 📝 `tests/Doctrine/Tests/ORM/Functional/LifecycleCallbackTest.php` (+2 -3) 📝 `tests/Doctrine/Tests/ORM/Functional/Ticket/DDC1655Test.php` (+1 -5) 📝 `tests/Doctrine/Tests/ORM/Functional/Ticket/DDC345Test.php` (+0 -1) 📝 `tests/Doctrine/Tests/ORM/Functional/Ticket/DDC448Test.php` (+0 -1) 📝 `tests/Doctrine/Tests/ORM/Mapping/AbstractMappingDriverTest.php` (+7 -8) 📝 `tests/Doctrine/Tests/ORM/Mapping/AnnotationDriverTest.php` (+1 -5) 📝 `tests/Doctrine/Tests/ORM/Mapping/ClassMetadataTest.php` (+3 -16) 📝 `tests/Doctrine/Tests/ORM/Tools/Export/annotation/Doctrine.Tests.ORM.Tools.Export.User.php` (+0 -1) 📝 `tests/Doctrine/Tests/ORM/Tools/SchemaValidatorTest.php` (+42 -2) </details> ### 📄 Description This feature simply adds validation for lifecycle callbacks. This PR introduces some BC Breaks: 1. `Doctrine\ORM\Mapping\ClassMetadataInfo#validateLifecycleCallbacks()` has been dropped 2. `Doctrine\ORM\Mapping\HasLifecycleCallbacks` has been deprecated as it is not checked anymore. This makes the `AnnotationDriver` slower at first run, but I think this is where caching solves the problem correctly 3. Mappings have to be validated via tools, as runtime validation is incomplete anyway. Runtime validation of lifecycle callbacks is dropped. [![Build Status](https://secure.travis-ci.org/Ocramius/doctrine2.png?branch=DDC-1852)](http://travis-ci.org/Ocramius/doctrine2) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
admin added the pull-request label 2026-01-22 15:58:17 +01:00
admin closed this issue 2026-01-22 15:58:18 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: doctrine/archived-orm#8081