argument('name'),$resultNames); if(count($resultNames)==0) { $fileName = $this->argument('name'); $modelName = $this->argument('name'); }else{ $fileName=$resultNames[0]; $modelName=Str::studly($resultNames[1]); } if (!file_exists(base_path('app\\Services\\'.$fileName.'.php'))){ file_put_contents(base_path('app\\Services\\'.$fileName.'.php'), 'error("ERROR: file exists;"); if (!$this->option("noProvider")){ $path = base_path("app\\Providers\\AppServiceProvider.php"); $i = 0; $fop = fopen($path,"r+"); $endLine = 0; $startLine = 0; $sign = 0; while (!feof($fop)){ $i += 1; $lineStr = fgets($fop); if (strpos($lineStr,"loadingService(){"))$sign = $i; if (strpos($lineStr,"app()->singleton"))$endLine = $i; if (strpos($lineStr,"App\Services"))$startLine = $i; }; fclose($fop); $fop = fopen($path,"r+"); $i = 0; $header = []; $content = []; $footer = []; while (!feof($fop)){ $i += 1; $lineStr = fgets($fop); if ($i == $startLine){ $lineStr = $lineStr."use App\Services\\$fileName;".PHP_EOL; } if ($i<=$sign)$header[] = $lineStr; if ($i>$sign && $i<= $endLine){ $content[] = $lineStr; } if ($i>$endLine)$footer[] = $lineStr; }; $content[] = " app()->singleton('{$fileName}',{$fileName}::class);".PHP_EOL; array_multisort($content); fclose($fop); unlink($path); foreach (array_merge($header,$content,$footer) as $value){ file_put_contents($path,$value,FILE_APPEND); } } $this->info("File create success!"); } }