File manager - Edit - /var/www/html/portal/app/Console/Commands/MakeService.php
Back
<?php namespace App\Console\Commands; use Illuminate\Console\Command; use Illuminate\Support\Facades\File; class MakeService extends Command { /** * Nome e assinatura do comando Artisan */ protected $signature = 'make:service {name} {--model=}'; /** * Descrição do comando */ protected $description = 'Gera um Service em app/Http/Services, suportando subpastas e model opcional'; /** * Executa o comando */ public function handle() { $name = $this->argument('name'); // Ex: TurismoNautico/GuiaService $model = $this->option('model') ?? 'Model'; $refer = lcfirst($model); // Quebra o caminho para subpastas $parts = explode('/', $name); $className = array_pop($parts); // GuiaService $subNamespace = implode('\\', $parts); // TurismoNautico // Define o namespace final $namespace = 'App\Http\Services' . ($subNamespace ? "\\{$subNamespace}" : ''); // Caminho do diretório onde o arquivo será criado $directory = app_path('Http/Services' . ($parts ? '/' . implode('/', $parts) : '')); // Cria diretório se não existir if (!File::exists($directory)) { File::makeDirectory($directory, 0755, true); } // Caminho final do arquivo Service $path = "{$directory}/{$className}.php"; // Verifica se o stub existe $stubPath = base_path('stubs/service.stub'); if (!File::exists($stubPath)) { $this->error("❌ Stub não encontrado em: {$stubPath}"); return; } // Lê o conteúdo do stub $stub = File::get($stubPath); // Substituições dos placeholders $content = str_replace( ['{{ namespace }}', '{{ class }}', '{{ model }}', '{{ refer }}'], [$namespace, $className, $model, $refer], $stub ); // Cria o arquivo final File::put($path, $content); $this->info("✅ Service criado com sucesso: {$path}"); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.09 |
proxy
|
phpinfo
|
Settings