argument('name'); $relativePath = sprintf('tests/Datasets/%s.php', ucfirst($name)); /* @phpstan-ignore-next-line */ $target = base_path($relativePath); if (File::exists($target)) { throw new InvalidConsoleArgument(sprintf('%s already exist', $target)); } if (!File::exists(dirname($relativePath))) { File::makeDirectory(dirname($relativePath)); } $contents = File::get(implode(DIRECTORY_SEPARATOR, [ dirname(__DIR__, 3), 'stubs', 'Dataset.php', ])); $name = mb_strtolower($name); $contents = str_replace('{dataset_name}', $name, $contents); $element = Str::singular($name); $contents = str_replace('{dataset_element}', $element, $contents); File::put($target, str_replace('{dataset_name}', $name, $contents)); $message = sprintf('`%s` created successfully.', $relativePath); $this->output->success($message); } }