4 * Auto-register "**.mgd.php" files.
9 * @param CRM_Extension_MixInfo $mixInfo
10 * On newer deployments, this will be an instance of MixInfo. On older deployments, Civix may polyfill with a work-a-like.
11 * @param \CRM_Extension_BootCache $bootCache
12 * On newer deployments, this will be an instance of MixInfo. On older deployments, Civix may polyfill with a work-a-like.
14 return function ($mixInfo, $bootCache) {
17 * @param \Civi\Core\Event\GenericHookEvent $e
18 * @see CRM_Utils_Hook::managed()
20 Civi
::dispatcher()->addListener('hook_civicrm_managed', function ($event) use ($mixInfo) {
21 // When deactivating on a polyfill/pre-mixin system, listeners may not cleanup automatically.
22 if (!$mixInfo->isActive()) {
26 if (is_array($event->modules
) && !in_array($mixInfo->longName
, $event->modules
, TRUE)) {
30 $mgdFiles = CRM_Utils_File
::findFiles($mixInfo->getPath(), '*.mgd.php');
32 foreach ($mgdFiles as $file) {
35 if (empty($e['module'])) {
36 $e['module'] = $mixInfo->longName
;
38 if (empty($e['params']['version'])) {
39 $e['params']['version'] = '3';
41 $event->entities
[] = $e;