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