58 lines
1.4 KiB
Plaintext
58 lines
1.4 KiB
Plaintext
|
/**
|
||
|
* The ClassInjectorBuilder Class.
|
||
|
*
|
||
|
* @var ClassInjector
|
||
|
* @since 3.2.0
|
||
|
*/
|
||
|
protected ClassInjector $classinjector;
|
||
|
|
||
|
/**
|
||
|
* The ServiceProviderBuilder Class.
|
||
|
*
|
||
|
* @var ServiceProvider
|
||
|
* @since 3.2.0
|
||
|
*/
|
||
|
protected ServiceProvider $serviceprovider;
|
||
|
|
||
|
/**
|
||
|
* Constructor.
|
||
|
*
|
||
|
* @param ClassInjector $classinjector The ClassInjectorBuilder Class.
|
||
|
* @param ServiceProvider $serviceprovider The ServiceProviderBuilder Class.
|
||
|
*
|
||
|
* @since 3.2.0
|
||
|
*/
|
||
|
public function __construct(ClassInjector $classinjector, ServiceProvider $serviceprovider)
|
||
|
{
|
||
|
$this->classinjector = $classinjector;
|
||
|
$this->serviceprovider = $serviceprovider;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Get the class code.
|
||
|
*
|
||
|
* @param array $power The power being saved
|
||
|
*
|
||
|
* @return string|null
|
||
|
* @since 3.2.0
|
||
|
*/
|
||
|
public function get(array $power): ?string
|
||
|
{
|
||
|
// create dependency injection (when the main_class_code is empty)
|
||
|
if (empty($power['main_class_code']) && !empty($power['use_selection']) && is_array($power['use_selection']))
|
||
|
{
|
||
|
if (strpos($power['implements_custom'], 'ServiceProviderInterface') !== false)
|
||
|
{
|
||
|
if (($code = $this->serviceprovider->getCode($power)) !== null)
|
||
|
{
|
||
|
return $code;
|
||
|
}
|
||
|
}
|
||
|
elseif (($code = $this->classinjector->getCode($power)) !== null)
|
||
|
{
|
||
|
return $code;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return null;
|
||
|
}
|