[REF] Make instantiation of dispatcher consistent.
authoreileen <emcnaughton@wikimedia.org>
Thu, 23 Apr 2020 06:25:08 +0000 (18:25 +1200)
committereileen <emcnaughton@wikimedia.org>
Thu, 23 Apr 2020 06:27:28 +0000 (18:27 +1200)
We have 3 ways of iniatiging a dispatcher

Civi\Core\Container::singleton()->get('dispatcher')
Civi::service('dispatcher')
Civi::dispatcher()

Tim confirms there is no functional difference, so this consolidates on the shortest one :-)

CRM/Core/BAO/ActionSchedule.php
CRM/Core/Config.php
CRM/Core/DAO.php
CRM/Cxn/ApiRouter.php
CRM/Utils/System.php
Civi/Core/Event/GenericHookEvent.php
Civi/Core/Event/PostEvent.php
Civi/Core/Event/PreEvent.php
tests/phpunit/CRM/Mailing/TokensTest.php
tests/phpunit/CRM/Utils/SystemTest.php
tests/phpunit/Civi/Core/Event/GenericHookEventTest.php

index 11d9b209c80afc09071862e8be08a7e8204aca0e..66a61544b409cea7e907ed46844df8dd6d23e77e 100644 (file)
@@ -25,14 +25,16 @@ class CRM_Core_BAO_ActionSchedule extends CRM_Core_DAO_ActionSchedule {
   /**
    * @param array $filters
    *   Filter by property (e.g. 'id').
+   *
    * @return array
    *   Array(scalar $id => Mapping $mapping).
+   * @throws \CRM_Core_Exception
    */
   public static function getMappings($filters = NULL) {
     static $_action_mapping;
 
     if ($_action_mapping === NULL) {
-      $event = \Civi\Core\Container::singleton()->get('dispatcher')
+      $event = \Civi::dispatcher()
         ->dispatch(\Civi\ActionSchedule\Events::MAPPINGS,
           new \Civi\ActionSchedule\Event\MappingRegisterEvent());
       $_action_mapping = $event->getMappings();
@@ -507,7 +509,7 @@ FROM civicrm_action_schedule cas
       $select->where("e.id = reminder.entity_id OR reminder.entity_table = 'civicrm_contact'");
     }
 
-    \Civi\Core\Container::singleton()->get('dispatcher')
+    \Civi::dispatcher()
       ->dispatch(
         \Civi\ActionSchedule\Events::MAILING_QUERY,
         new \Civi\ActionSchedule\Event\MailingQueryEvent($actionSchedule, $mapping, $select)
@@ -644,7 +646,7 @@ FROM civicrm_action_schedule cas
    * @return \Civi\Token\TokenProcessor
    */
   protected static function createTokenProcessor($schedule, $mapping) {
-    $tp = new \Civi\Token\TokenProcessor(\Civi\Core\Container::singleton()->get('dispatcher'), [
+    $tp = new \Civi\Token\TokenProcessor(\Civi::dispatcher(), [
       'controller' => __CLASS__,
       'actionSchedule' => $schedule,
       'actionMapping' => $mapping,
index 2b4623ef5128d5f7f417633d4a6bd4c4622de1ec..f2f28ccd08eb408bf7463d2b910d344e4dad4cef 100644 (file)
@@ -560,7 +560,7 @@ class CRM_Core_Config extends CRM_Core_Config_MagicMerge {
     }
 
     // OK, this looks new.
-    Civi::service('dispatcher')->dispatch(\Civi\Core\Event\SystemInstallEvent::EVENT_NAME, new \Civi\Core\Event\SystemInstallEvent());
+    Civi::dispatcher()->dispatch(\Civi\Core\Event\SystemInstallEvent::EVENT_NAME, new \Civi\Core\Event\SystemInstallEvent());
     Civi::settings()->set('installed', 1);
   }
 
index d5d4a72048b5359514956cf145decbc2fb54ce00..0b91105864f203ff040b633288fddcedfaec9353 100644 (file)
@@ -545,28 +545,28 @@ class CRM_Core_DAO extends DB_DataObject {
     if (!empty($this->id)) {
       if ($hook) {
         $preEvent = new \Civi\Core\DAO\Event\PreUpdate($this);
-        \Civi::service('dispatcher')->dispatch("civi.dao.preUpdate", $preEvent);
+        \Civi::dispatcher()->dispatch("civi.dao.preUpdate", $preEvent);
       }
 
       $result = $this->update();
 
       if ($hook) {
         $event = new \Civi\Core\DAO\Event\PostUpdate($this, $result);
-        \Civi::service('dispatcher')->dispatch("civi.dao.postUpdate", $event);
+        \Civi::dispatcher()->dispatch("civi.dao.postUpdate", $event);
       }
       $this->clearDbColumnValueCache();
     }
     else {
       if ($hook) {
         $preEvent = new \Civi\Core\DAO\Event\PreUpdate($this);
-        \Civi::service('dispatcher')->dispatch("civi.dao.preInsert", $preEvent);
+        \Civi::dispatcher()->dispatch("civi.dao.preInsert", $preEvent);
       }
 
       $result = $this->insert();
 
       if ($hook) {
         $event = new \Civi\Core\DAO\Event\PostUpdate($this, $result);
-        \Civi::service('dispatcher')->dispatch("civi.dao.postInsert", $event);
+        \Civi::dispatcher()->dispatch("civi.dao.postInsert", $event);
       }
     }
     $this->free();
@@ -605,12 +605,12 @@ class CRM_Core_DAO extends DB_DataObject {
    */
   public function delete($useWhere = FALSE) {
     $preEvent = new \Civi\Core\DAO\Event\PreDelete($this);
-    \Civi::service('dispatcher')->dispatch("civi.dao.preDelete", $preEvent);
+    \Civi::dispatcher()->dispatch("civi.dao.preDelete", $preEvent);
 
     $result = parent::delete($useWhere);
 
     $event = new \Civi\Core\DAO\Event\PostDelete($this, $result);
-    \Civi::service('dispatcher')->dispatch("civi.dao.postDelete", $event);
+    \Civi::dispatcher()->dispatch("civi.dao.postDelete", $event);
     $this->free();
 
     $this->clearDbColumnValueCache();
index 2419dba6b75903e4761d0008f99e9292bd66132c..1331e91904f7b8943ce5c7a5d5c7162064ca56d1 100644 (file)
@@ -59,7 +59,7 @@ class CRM_Cxn_ApiRouter {
     }
 
     $whitelist = \Civi\API\WhitelistRule::createAll($cxn['perm']['api']);
-    \Civi::service('dispatcher')
+    \Civi::dispatcher()
       ->addSubscriber(new \Civi\API\Subscriber\WhitelistSubscriber($whitelist));
     CRM_Core_Config::singleton()->userPermissionTemp = new CRM_Core_Permission_Temp();
     if ($cxn['perm']['grant'] === '*') {
index a8f78576e3283e7d2a4c21afbfbb84462ca6419e..a1a0edfd025a05f275a626683127848de3b63d99 100644 (file)
@@ -317,7 +317,7 @@ class CRM_Utils_System {
       'absolute' => $absolute,
       'isSSL' => $isSSL,
     ]);
-    Civi::service('dispatcher')->dispatch('hook_civicrm_alterExternUrl', $event);
+    Civi::dispatcher()->dispatch('hook_civicrm_alterExternUrl', $event);
     return urldecode(CRM_Utils_Url::unparseUrl($event->url));
   }
 
index df5ee6bb6dd925367b9b5355067c97d52624333d..6c62ea498afdf49140190647915545626d45f4d8 100644 (file)
@@ -40,7 +40,7 @@ namespace Civi\Core\Event;
  * $event->bang->objProperty = 'abcd';
  *
  * // Dispatching an event.
- * Civi::service('dispatcher')->dispatch('hook_civicrm_foo', $event);
+ * Civi::dispatcher()->dispatch('hook_civicrm_foo', $event);
  * @endCode
  *
  * Design Discussion:
index 11237527583f77d11f0487124d3130ebc2cafdbb..100be7b7547a33cb297d2fb5378bcc70e2dbf325 100644 (file)
@@ -25,7 +25,7 @@ class PostEvent extends GenericHookEvent {
    * @param \Civi\Core\Event\PostEvent $event
    */
   public static function dispatchSubevent(PostEvent $event) {
-    \Civi::service('dispatcher')->dispatch("hook_civicrm_post::" . $event->entity, $event);
+    \Civi::dispatcher()->dispatch("hook_civicrm_post::" . $event->entity, $event);
   }
 
   /**
index 3382e9dbe70cb148ea2abef7e30ac93bcdec8df1..dc08f1d0c98c63eef4c99e47e36b36bdac3d4462 100644 (file)
@@ -25,7 +25,7 @@ class PreEvent extends GenericHookEvent {
    * @param \Civi\Core\Event\PreEvent $event
    */
   public static function dispatchSubevent(PreEvent $event) {
-    \Civi::service('dispatcher')->dispatch("hook_civicrm_pre::" . $event->entity, $event);
+    \Civi::dispatcher()->dispatch("hook_civicrm_pre::" . $event->entity, $event);
   }
 
   /**
index 10d7db76b0a577e246b3f8a5ec8035ce5fcfb1c2..c0ac6a74e85984739d1670b6a8c821e177ce8c16 100644 (file)
@@ -43,7 +43,7 @@ class CRM_Mailing_TokensTest extends \CiviUnitTestCase {
     ]);
     $contact = CRM_Core_DAO::createTestObject('CRM_Contact_DAO_Contact');
 
-    $p = new \Civi\Token\TokenProcessor(Civi::service('dispatcher'), [
+    $p = new \Civi\Token\TokenProcessor(Civi::dispatcher(), [
       'mailingId' => $mailing->id,
     ]);
     $p->addMessage('example', $inputTemplate, $inputTemplateFormat);
@@ -80,7 +80,7 @@ class CRM_Mailing_TokensTest extends \CiviUnitTestCase {
     ]);
     $contact = CRM_Core_DAO::createTestObject('CRM_Contact_DAO_Contact');
 
-    $p = new \Civi\Token\TokenProcessor(Civi::service('dispatcher'), [
+    $p = new \Civi\Token\TokenProcessor(Civi::dispatcher(), [
       'mailing' => $mailing,
     ]);
     $p->addMessage('example', $inputTemplate, $inputTemplateFormat);
@@ -126,7 +126,7 @@ class CRM_Mailing_TokensTest extends \CiviUnitTestCase {
     ]);
     $contact = CRM_Core_DAO::createTestObject('CRM_Contact_DAO_Contact');
 
-    $p = new \Civi\Token\TokenProcessor(Civi::service('dispatcher'), [
+    $p = new \Civi\Token\TokenProcessor(Civi::dispatcher(), [
       'mailing' => $mailing,
     ]);
     $p->addMessage('example', $inputTemplateText, $inputTemplateFormat);
index 4cae4935b34c5fe54f8f091c7b0e184f14a7064e..f163a167989c04c2a8fa05f40bb23779fec5849d 100644 (file)
@@ -138,7 +138,7 @@ class CRM_Utils_SystemTest extends CiviUnitTestCase {
    * @dataProvider getExternURLs
    */
   public function testAlterExternUrlHook($path, $expected) {
-    Civi::service('dispatcher')->addListener('hook_civicrm_alterExternUrl', [$this, 'hook_civicrm_alterExternUrl']);
+    Civi::dispatcher()->addListener('hook_civicrm_alterExternUrl', [$this, 'hook_civicrm_alterExternUrl']);
     $externUrl = CRM_Utils_System::externUrl($path, $expected['query']);
     $this->assertContains('path/altered/by/hook', $externUrl, 'Hook failed to alter URL path');
     $this->assertContains($expected['query'] . '&thisWas=alteredByHook', $externUrl, 'Hook failed to alter URL query');
index 9a5c476af9b3c97b83c46d5cd2f5c34cbbde0960..34bc465104d221c1212f5b46e68e7d335bc94e54 100644 (file)
@@ -44,7 +44,7 @@ class GenericHookEventTest extends \CiviUnitTestCase {
   public function testDispatch() {
     \CRM_Utils_Hook::singleton()->setHook('civicrm_ghet',
       [$this, 'hook_civicrm_ghet']);
-    \Civi::service('dispatcher')->addListener('hook_civicrm_ghet',
+    \Civi::dispatcher()->addListener('hook_civicrm_ghet',
       [$this, 'onGhet']);
 
     $roString = 'readonly';