From 8f4a0ee9d96666b5616e4dfb9830cee5df050b1d Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Wed, 6 Feb 2019 23:39:07 -0500 Subject: [PATCH] Move CRM_Afform_AfformScanner to a service --- ext/afform/afform.php | 26 ++++++++++++++++++++++---- ext/afform/api/v3/Afform/Create.php | 2 +- ext/afform/api/v3/Afform/Get.php | 2 +- ext/afform/api/v3/Afform/Revert.php | 2 +- 4 files changed, 25 insertions(+), 7 deletions(-) diff --git a/ext/afform/afform.php b/ext/afform/afform.php index d85adc6077..ad8630867f 100644 --- a/ext/afform/afform.php +++ b/ext/afform/afform.php @@ -32,6 +32,16 @@ function _afform_fields_filter($params) { return $result; } +/** + * @param ContainerBuilder $container + */ +function afform_civicrm_container($container) { + $container->setDefinition('afform_scanner', new \Symfony\Component\DependencyInjection\Definition( + 'CRM_Afform_AfformScanner', + array() + )); +} + /** * Implements hook_civicrm_config(). * @@ -142,7 +152,7 @@ function afform_civicrm_caseTypes(&$caseTypes) { function afform_civicrm_angularModules(&$angularModules) { _afform_civix_civicrm_angularModules($angularModules); - $scanner = new CRM_Afform_AfformScanner(); + $scanner = Civi::service('afform_scanner'); $names = array_keys($scanner->findFilePaths()); foreach ($names as $name) { $meta = $scanner->getMeta($name); @@ -195,9 +205,11 @@ function afform_civicrm_buildAsset($asset, $params, &$mimeType, &$content) { } $name = $params['name']; - $scanner = new CRM_Afform_AfformScanner(); + // Hmm?? $scanner = new CRM_Afform_AfformScanner(); + // Hmm?? afform_scanner + $scanner = Civi::service('afform_scanner'); $meta = $scanner->getMeta($name); - $scanner = new CRM_Afform_AfformScanner(); + // Hmm?? $scanner = new CRM_Afform_AfformScanner(); $smarty = CRM_Core_Smarty::singleton(); $smarty->assign('afform', [ @@ -214,7 +226,13 @@ function afform_civicrm_buildAsset($asset, $params, &$mimeType, &$content) { * Implements hook_civicrm_alterMenu(). */ function afform_civicrm_alterMenu(&$items) { - $scanner = new CRM_Afform_AfformScanner(); + if (Civi::container()->has('afform_scanner')) { + $scanner = Civi::service('afform_scanner'); + } + else { + // During installation... + $scanner = new CRM_Afform_AfformScanner(); + } foreach ($scanner->getMetas() as $name => $meta) { if (!empty($meta['server_route'])) { $items[$meta['server_route']] = [ diff --git a/ext/afform/api/v3/Afform/Create.php b/ext/afform/api/v3/Afform/Create.php index 38257e3fe7..4a73c29a91 100644 --- a/ext/afform/api/v3/Afform/Create.php +++ b/ext/afform/api/v3/Afform/Create.php @@ -24,7 +24,7 @@ function _civicrm_api3_afform_create_spec(&$spec) { * @throws API_Exception */ function civicrm_api3_afform_create($params) { - $scanner = new CRM_Afform_AfformScanner(); + $scanner = Civi::service('afform_scanner'); $converter = new CRM_Afform_ArrayHtml(); if (empty($params['name']) || !preg_match('/^[a-zA-Z][a-zA-Z0-9\-]*$/', $params['name'])) { diff --git a/ext/afform/api/v3/Afform/Get.php b/ext/afform/api/v3/Afform/Get.php index cc21f50849..bba1b89836 100644 --- a/ext/afform/api/v3/Afform/Get.php +++ b/ext/afform/api/v3/Afform/Get.php @@ -44,7 +44,7 @@ function _civicrm_api3_afform_get_spec(&$spec) { * @throws API_Exception */ function civicrm_api3_afform_get($params) { - $scanner = new CRM_Afform_AfformScanner(); + $scanner = Civi::service('afform_scanner'); $converter = new CRM_Afform_ArrayHtml(); $records = []; diff --git a/ext/afform/api/v3/Afform/Revert.php b/ext/afform/api/v3/Afform/Revert.php index 3e7f5f8d24..bb5fb2c6f6 100644 --- a/ext/afform/api/v3/Afform/Revert.php +++ b/ext/afform/api/v3/Afform/Revert.php @@ -26,7 +26,7 @@ function _civicrm_api3_afform_revert_spec(&$spec) { * @throws API_Exception */ function civicrm_api3_afform_revert($params) { - $scanner = new CRM_Afform_AfformScanner(); + $scanner = Civi::service('afform_scanner'); if (empty($params['name']) || !preg_match('/^[a-zA-Z][a-zA-Z0-9\-]*$/', $params['name'])) { throw new \API_Exception("Afform.revert: name is a mandatory field. It should use alphanumerics and dashes."); -- 2.25.1