EventCart - Resolve BAO identity and uncommitted DAO changes
Overview
--------
This fixes a recent issue in which `setup.sh` is producing local-only changes to the `Cart`
and `EventInCart` DAO files.
To reduce ambiguity, I'm rephrasing the normal "Before/After" and giving a 3-step evolution/history.
Evolution
---------
(1) Traditionally, the `Cart`/`EventInCart` entities have both BAO+DAO in main source-tree.
(2) With #17743 (
685bf3d218a9dad7e90d24aec165c63df12c1f67), the BAO moved away. But then
we get some detritus in the code-tree whenever you run `setup.sh`.
(3) With this patch, we don't get the detritus anymore.
Technical Details
-----------------
When I ran `setup.sh -g`, it produced local modifications like this:
```
diff --git a/CRM/Event/Cart/DAO/Cart.php b/CRM/Event/Cart/DAO/Cart.php
index
4683add13d..
3a7f721dc1 100644
--- a/CRM/Event/Cart/DAO/Cart.php
+++ b/CRM/Event/Cart/DAO/Cart.php
@@ -94,7 +94,7 @@ class CRM_Event_Cart_DAO_Cart extends CRM_Core_DAO {
'where' => 'civicrm_event_carts.id',
'table_name' => 'civicrm_event_carts',
'entity' => 'Cart',
- 'bao' => 'CRM_Event_Cart_BAO_Cart',
+ 'bao' => 'CRM_Event_Cart_DAO_Cart',
'localizable' => 0,
'add' => '4.1',
],
```
(Let's ignore the cyclic dependency in this design - that's a messier/pre-existing
problem.)
That metadata is inaccurate. The `bao` should point to the BAO, sinec the BAO does exist.
It's inaccurate because the BAO exists in a different location.
This patch allows you override the file-existence check -- saying, "this entity will
use BAO's even though they're not in the file-location you might normally expect."