setValidator(function ($value) { if (!preg_match('/^_[a-z0-9_]*[a-z0-9]$/', $value)) { throw new \UnexpectedValueException('The value is not correct name for "applies_to" property.'); } return $value; }); $default_class = function ($vars) { return Utils::camelize($vars['applies_to'] . 'AccessChecker'); }; $questions['class'] = new Question('Class', $default_class); $this->collectVars($input, $output, $questions); $this->addFile() ->path('src/Access/{class}.php') ->template('d8/service/access-checker.twig'); $this->addServicesFile() ->template('d8/service/access-checker.services.twig'); } }