vendor and env first commit
This commit is contained in:
+241
@@ -0,0 +1,241 @@
|
||||
<?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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user