5 * Contains \Drupal\Console\Generator\ServiceGenerator.
8 namespace Drupal\Console\Generator;
10 use Drupal\Console\Core\Generator\Generator;
11 use Drupal\Console\Extension\Manager;
13 class ServiceGenerator extends Generator
18 protected $extensionManager;
21 * AuthenticationProviderGenerator constructor.
23 * @param Manager $extensionManager
25 public function __construct(
26 Manager $extensionManager
28 $this->extensionManager = $extensionManager;
34 public function generate(array $parameters)
36 $module = $parameters['module'];
37 $class = $parameters['class'];
38 $path_service = $parameters['path_service'];
40 $parameters['interface'] = $parameters['interface'] ? ($parameters['interface_name'] ?: $class . 'Interface') : false;
41 $interface = $parameters['interface'];
42 $moduleServiceYaml = $this->extensionManager->getModule($module)->getPath() . '/' . $module . '.services.yml';
43 $parameters['class_path'] = sprintf('Drupal\%s\%s', $module, $class);
44 $parameters['file_exists'] = file_exists($moduleServiceYaml);
47 'module/services.yml.twig',
54 'module/src/service.php.twig',
55 $this->setDirectory($path_service, 'service.php.twig', $module, $class),
61 'module/src/service-interface.php.twig',
62 $this->setDirectory($path_service, 'interface.php.twig', $module, $interface),
68 protected function setDirectory($target, $template, $module, $class)
70 $default_path = '/modules/custom/' . $module . '/src/';
72 $modulePath = $this->extensionManager->getModule($module)->getPath();
75 case 'service.php.twig':
76 case 'interface.php.twig':
77 $default_target = $modulePath . '/src/' . $class . '.php';
78 $custom_target = $modulePath . '/' . $target . '/' . $class . '.php';
80 $directory = (strcmp($target, $default_path) == 0) ? $default_target : $custom_target;