芝麻web文件管理V1.00
编辑当前文件:/home/qrafawbu/kwesioben.com/paymoney/vendor/livewire/livewire/src/Commands/ComponentParser.php
baseClassNamespace = $classNamespace; $this->baseTestNamespace = 'Tests\Feature\Livewire'; $classPath = static::generatePathFromNamespace($classNamespace); $testPath = static::generateTestPathFromNamespace($this->baseTestNamespace); $this->baseClassPath = rtrim($classPath, DIRECTORY_SEPARATOR).'/'; $this->baseViewPath = rtrim($viewPath, DIRECTORY_SEPARATOR).'/'; $this->baseTestPath = rtrim($testPath, DIRECTORY_SEPARATOR).'/'; if(! empty($stubSubDirectory) && str($stubSubDirectory)->startsWith('..')) { $this->stubDirectory = rtrim(str($stubSubDirectory)->replaceFirst('..' . DIRECTORY_SEPARATOR, ''), DIRECTORY_SEPARATOR).'/'; } else { $this->stubDirectory = rtrim('stubs'.DIRECTORY_SEPARATOR.$stubSubDirectory, DIRECTORY_SEPARATOR).'/'; } $directories = preg_split('/[.\/(\\\\)]+/', $rawCommand); $camelCase = str(array_pop($directories))->camel(); $kebabCase = str($camelCase)->kebab(); $this->component = $kebabCase; $this->componentClass = str($this->component)->studly(); $this->directories = array_map([Str::class, 'studly'], $directories); } public function component() { return $this->component; } public function classPath() { return $this->baseClassPath.collect() ->concat($this->directories) ->push($this->classFile()) ->implode('/'); } public function relativeClassPath() : string { return str($this->classPath())->replaceFirst(base_path().DIRECTORY_SEPARATOR, ''); } public function classFile() { return $this->componentClass.'.php'; } public function classNamespace() { return empty($this->directories) ? $this->baseClassNamespace : $this->baseClassNamespace.'\\'.collect() ->concat($this->directories) ->map([Str::class, 'studly']) ->implode('\\'); } public function className() { return $this->componentClass; } public function classContents($inline = false) { $stubName = $inline ? 'livewire.inline.stub' : 'livewire.stub'; if (File::exists($stubPath = base_path($this->stubDirectory.$stubName))) { $template = file_get_contents($stubPath); } else { $template = file_get_contents(__DIR__.DIRECTORY_SEPARATOR.$stubName); } if ($inline) { $template = preg_replace('/\[quote\]/', $this->wisdomOfTheTao(), $template); } return preg_replace( ['/\[namespace\]/', '/\[class\]/', '/\[view\]/'], [$this->classNamespace(), $this->className(), $this->viewName()], $template ); } public function viewPath() { return $this->baseViewPath.collect() ->concat($this->directories) ->map([Str::class, 'kebab']) ->push($this->viewFile()) ->implode(DIRECTORY_SEPARATOR); } public function relativeViewPath() : string { return str($this->viewPath())->replaceFirst(base_path().'/', ''); } public function viewFile() { return $this->component.'.blade.php'; } public function viewName() { return collect() ->when(config('livewire.view_path') != resource_path(), function ($collection) { return $collection->concat(explode('/',str($this->baseViewPath)->after(resource_path('views')))); }) ->filter() ->concat($this->directories) ->map([Str::class, 'kebab']) ->push($this->component) ->implode('.'); } public function viewContents() { if( ! File::exists($stubPath = base_path($this->stubDirectory.'livewire.view.stub'))) { $stubPath = __DIR__.DIRECTORY_SEPARATOR.'livewire.view.stub'; } return preg_replace( '/\[quote\]/', $this->wisdomOfTheTao(), file_get_contents($stubPath) ); } public function testNamespace() { return empty($this->directories) ? $this->baseTestNamespace : $this->baseTestNamespace.'\\'.collect() ->concat($this->directories) ->map([Str::class, 'studly']) ->implode('\\'); } public function testClassName() { return $this->componentClass.'Test'; } public function testFile() { return $this->componentClass.'Test.php'; } public function testPath() { return $this->baseTestPath.collect() ->concat($this->directories) ->push($this->testFile()) ->implode('/'); } public function relativeTestPath() : string { return str($this->testPath())->replaceFirst(base_path().'/', ''); } public function testContents() { $stubName = 'livewire.test.stub'; if(File::exists($stubPath = base_path($this->stubDirectory.$stubName))) { $template = file_get_contents($stubPath); } else { $template = file_get_contents(__DIR__.DIRECTORY_SEPARATOR.$stubName); } return preg_replace( ['/\[testnamespace\]/', '/\[classwithnamespace\]/', '/\[testclass\]/', '/\[class\]/'], [$this->testNamespace(), $this->classNamespace() . '\\' . $this->className(), $this->testClassName(), $this->className()], $template ); } public function wisdomOfTheTao() { $wisdom = require __DIR__.DIRECTORY_SEPARATOR.'the-tao.php'; return Arr::random($wisdom); } public static function generatePathFromNamespace($namespace) { $name = str($namespace)->finish('\\')->replaceFirst(app()->getNamespace(), ''); return app('path').'/'.str_replace('\\', '/', $name); } public static function generateTestPathFromNamespace($namespace) { return str(base_path($namespace)) ->replace('\\', '/', $namespace) ->replaceFirst('T', 't'); } }