Viewing file: Package.php (5.28 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Spatie\LaravelPackageTools;
use Illuminate\Support\Str; use Spatie\LaravelPackageTools\Commands\InstallCommand;
class Package { public string $name;
public array $configFileNames = [];
public bool $hasViews = false;
public bool $hasInertiaComponents = false;
public ?string $viewNamespace = null;
public bool $hasTranslations = false;
public bool $hasAssets = false;
public bool $runsMigrations = false;
public array $migrationFileNames = [];
public array $routeFileNames = [];
public array $commands = [];
public array $consoleCommands = [];
public array $viewComponents = [];
public array $sharedViewData = [];
public array $viewComposers = [];
public string $basePath;
public ?string $publishableProviderName = null;
public function name(string $name): static { $this->name = $name;
return $this; }
public function hasConfigFile($configFileName = null): static { $configFileName ??= $this->shortName();
if (! is_array($configFileName)) { $configFileName = [$configFileName]; }
$this->configFileNames = $configFileName;
return $this; }
public function publishesServiceProvider(string $providerName): static { $this->publishableProviderName = $providerName;
return $this; }
public function hasInstallCommand($callable): static { $installCommand = new InstallCommand($this);
$callable($installCommand);
$this->consoleCommands[] = $installCommand;
return $this; }
public function shortName(): string { return Str::after($this->name, 'laravel-'); }
public function hasViews(string $namespace = null): static { $this->hasViews = true;
$this->viewNamespace = $namespace;
return $this; }
public function hasInertiaComponents(string $namespace = null): static { $this->hasInertiaComponents = true;
$this->viewNamespace = $namespace;
return $this; }
public function hasViewComponent(string $prefix, string $viewComponentName): static { $this->viewComponents[$viewComponentName] = $prefix;
return $this; }
public function hasViewComponents(string $prefix, ...$viewComponentNames): static { foreach ($viewComponentNames as $componentName) { $this->viewComponents[$componentName] = $prefix; }
return $this; }
public function sharesDataWithAllViews(string $name, $value): static { $this->sharedViewData[$name] = $value;
return $this; }
public function hasViewComposer($view, $viewComposer): static { if (! is_array($view)) { $view = [$view]; }
foreach ($view as $viewName) { $this->viewComposers[$viewName] = $viewComposer; }
return $this; }
public function hasTranslations(): static { $this->hasTranslations = true;
return $this; }
public function hasAssets(): static { $this->hasAssets = true;
return $this; }
public function runsMigrations(bool $runsMigrations = true): static { $this->runsMigrations = $runsMigrations;
return $this; }
public function hasMigration(string $migrationFileName): static { $this->migrationFileNames[] = $migrationFileName;
return $this; }
public function hasMigrations(...$migrationFileNames): static { $this->migrationFileNames = array_merge( $this->migrationFileNames, collect($migrationFileNames)->flatten()->toArray() );
return $this; }
public function hasCommand(string $commandClassName): static { $this->commands[] = $commandClassName;
return $this; }
public function hasCommands(...$commandClassNames): static { $this->commands = array_merge($this->commands, collect($commandClassNames)->flatten()->toArray());
return $this; }
public function hasConsoleCommand(string $commandClassName): static { $this->consoleCommands[] = $commandClassName;
return $this; }
public function hasConsoleCommands(...$commandClassNames): static { $this->consoleCommands = array_merge($this->consoleCommands, collect($commandClassNames)->flatten()->toArray());
return $this; }
public function hasRoute(string $routeFileName): static { $this->routeFileNames[] = $routeFileName;
return $this; }
public function hasRoutes(...$routeFileNames): static { $this->routeFileNames = array_merge($this->routeFileNames, collect($routeFileNames)->flatten()->toArray());
return $this; }
public function basePath(string $directory = null): string { if ($directory === null) { return $this->basePath; }
return $this->basePath . DIRECTORY_SEPARATOR . ltrim($directory, DIRECTORY_SEPARATOR); }
public function viewNamespace(): string { return $this->viewNamespace ?? $this->shortName(); }
public function setBasePath(string $path): static { $this->basePath = $path;
return $this; } }
|