|
@@ -0,0 +1,50 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace Dcat\Admin\Console;
|
|
|
+
|
|
|
+use Illuminate\Console\GeneratorCommand as BaseCommand;
|
|
|
+use Illuminate\Support\Str;
|
|
|
+
|
|
|
+abstract class GeneratorCommand extends BaseCommand
|
|
|
+{
|
|
|
+ protected $baseDirectory;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Get the root namespace for the class.
|
|
|
+ *
|
|
|
+ * @return string
|
|
|
+ */
|
|
|
+ protected function rootNamespace()
|
|
|
+ {
|
|
|
+ return $this->getDefaultNamespace(null);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Get the destination class path.
|
|
|
+ *
|
|
|
+ * @param string $name
|
|
|
+ * @return string
|
|
|
+ */
|
|
|
+ protected function getPath($name)
|
|
|
+ {
|
|
|
+ $name = Str::replaceFirst(explode('\\', $this->rootNamespace())[0], '', $name);
|
|
|
+
|
|
|
+ return $this->getBaseDir().'/'.str_replace('\\', '/', $name).'.php';
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @return string
|
|
|
+ */
|
|
|
+ protected function getBaseDir()
|
|
|
+ {
|
|
|
+ if ($this->baseDirectory) {
|
|
|
+ return trim(base_path($this->baseDirectory), '/');
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($this->hasOption('base') && $this->option('base')) {
|
|
|
+ return trim(base_path($this->option('base')), '/');
|
|
|
+ }
|
|
|
+
|
|
|
+ return $this->laravel['path'];
|
|
|
+ }
|
|
|
+}
|