Spaces:
No application file
No application file
File size: 2,172 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
<?php
namespace Mautic\CoreBundle\Helper;
class BundleHelper
{
/**
* @var mixed[]
*/
private array $allBundles;
/**
* @param mixed[] $coreBundles
* @param mixed[] $pluginBundles
*/
public function __construct(
private array $coreBundles,
private array $pluginBundles
) {
$this->allBundles = array_merge($coreBundles, $pluginBundles);
}
/**
* @param bool $includePlugins
*
* @return mixed[]
*/
public function getMauticBundles($includePlugins = true): array
{
return $includePlugins ? $this->allBundles : $this->coreBundles;
}
/**
* Get's an array of details for enabled Mautic plugins.
*
* @return array
*/
public function getPluginBundles()
{
return $this->pluginBundles;
}
/**
* Gets an array of a specific bundle's config settings.
*
* @param string $configKey
* @param bool $includePlugins
*
* @return mixed
*
* @throws \Exception
*/
public function getBundleConfig($bundleName, $configKey = '', $includePlugins = false)
{
// get the configs
$configFiles = $this->getMauticBundles($includePlugins);
// if no bundle name specified we throw
if (!$bundleName) {
throw new \Exception('Bundle name not supplied');
}
// check for the bundle config requested actually exists
if (!array_key_exists($bundleName, $configFiles)) {
throw new \Exception('Bundle '.$bundleName.' does not exist');
}
// get the specific bundle's configurations
$bundleConfig = $configFiles[$bundleName]['config'];
// no config key supplied so just return the bundle's config
if (!$configKey) {
return $bundleConfig;
}
// check that the key exists
if (!array_key_exists($configKey, $bundleConfig)) {
throw new \Exception('Key '.$configKey.' does not exist in bundle '.$bundleName);
}
// we didn't throw so we can send the key value
return $bundleConfig[$configKey];
}
}
|