Skip to content

Commit 89dfa32

Browse files
committed
ExtensionDefinitionsHelper: getCallableFromConfig
1 parent bee75bc commit 89dfa32

1 file changed

Lines changed: 20 additions & 0 deletions

File tree

src/Helper/ExtensionDefinitionsHelper.php

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,4 +88,24 @@ public function getDefinitionFromConfig($config, string $preferredPrefix)
8888
return $builder->getDefinition($preferredPrefix);
8989
}
9090

91+
/**
92+
* Check if config is valid callable or callable syntax which may result in valid callable at runtime and returns an definition otherwise
93+
*
94+
* @param string|mixed[]|Statement $config
95+
* @return mixed
96+
*/
97+
public function getCallableFromConfig($config, string $preferredPrefix)
98+
{
99+
if (is_callable($config)) {
100+
return $config;
101+
}
102+
103+
// Might be valid callable at runtime
104+
if (is_array($config) && is_callable($config, true) && Strings::startsWith($config[0], '@')) {
105+
return $config;
106+
}
107+
108+
return $this->getDefinitionFromConfig($config, $preferredPrefix);
109+
}
110+
91111
}

0 commit comments

Comments
 (0)