jcb-compiler/src/505801ac-d3e2-44c6-a300-9a5.../code.power

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;
}