module); } /** * get content * * @return string */ public function getContent(): string { // route 主要添加两个点 // use Controller // 添加路由 $route = Str::of(''); $originContent = File::get(CatchAdmin::getModuleRoutePath($this->module)); // 如果已经有 controller,就不再追加路由 if (Str::of($originContent)->contains($this->getUserController())) { return $originContent; } File::lines(CatchAdmin::getModuleRoutePath($this->module)) ->each(function ($line) use (&$route) { if (Str::of($line)->contains('Route::prefix')) { $route = $route->trim(PHP_EOL) ->newLine() ->append($this->getUserController()) ->append(';') ->newLine(2) ->append($line) ->newLine(); } else { $route = $route->append($line)->newLine(); } }); $apiResource = "Route::apiResource('{api}', {controller}::class);"; return Str::of($route->toString())->replace( ['{module}', '//next'], [ lcfirst($this->module), Str::of($apiResource)->replace(['{api}', '{controller}'], [$this->getApiString(), $this->getControllerName()]) ->prepend("\t") ->prepend(PHP_EOL) ->newLine()->append("\t//next")] )->toString(); } /** * get api * * @return string */ public function getApiString(): string { return Str::of($this->getControllerName())->remove('Controller')->snake('_')->replace('_', '/')->toString(); } /** * get api route * * @return string */ public function getApiRute(): string { return lcfirst($this->module).'/'.$this->getApiString(); } /** * use controller * * @return string */ protected function getUserController(): string { return 'use '.CatchAdmin::getModuleControllerNamespace($this->module).$this->getControllerName(); } /** * get controller name * * @return string */ protected function getControllerName(): string { return Str::of($this->controller)->whenContains('Controller', function ($value) { return Str::of($value)->ucfirst(); }, function ($value) { return Str::of($value)->append('Controller')->ucfirst(); })->toString(); } }