Every public method the toolkit exposes, grouped by the class it lives on. Types are as declared in
source; static means the method returns $this for chaining.
Packager
The object passed to configure().
Identity
| Method | Returns | Notes |
|---|---|---|
name(string $name) |
static |
Required. Throws InvalidArgumentException when empty |
shortName() |
string |
Str::kebab($name), derived lazily and cached |
hasShortName(string $shortName) |
static |
Must be kebab-case and match /^[a-z0-9-]+$/ |
basePath() |
string |
Directory every relative path resolves against |
hasBasePath(string $basePath) |
string |
Called by the provider; trims a src/Providers suffix |
path(string $path) |
string |
Absolute path for a package-relative one |
resolveFiles(string|array|null $files, string $directory = '', string $type = '') |
SplFileInfo[] |
The shared resolver behind every file-based builder |
Config
| Method | Returns |
|---|---|
hasConfig(string|array|null $configFiles = null, string $directory = '../config') |
static |
isConfigurable() |
bool |
configFiles() |
SplFileInfo[] |
Routes and channels
| Method | Returns |
|---|---|
hasRoutes(array|string|null $routeFiles = null, string $directory = '../routes') |
static |
isRoutable() |
bool |
routeFiles() |
SplFileInfo[] |
hasBroadcastChannels(array|string|null $channelFiles = null, string $directory = '../routes') |
static |
isBroadcastable() |
bool |
broadcastChannelFiles() |
SplFileInfo[] |
Database
| Method | Returns |
|---|---|
hasMigrations(?array $migrationFiles = null, string $directory = '../database/migrations') |
static |
canLoadMigrations(bool $value = true) |
static |
isMigratable() |
bool |
migrationFiles() |
SplFileInfo[] |
hasDatePrefix(string $filename) |
bool |
shouldPrependTimestamp() |
bool |
getMigrationPublishMapping() |
array<string, string> |
hasSeeders(array|string|null $seederFiles = null, string $directory = '../database/seeders') |
static |
isSeedable() |
bool |
seederFiles() |
SplFileInfo[] |
hasFactories(array|string|null $factoryFiles = null, string $directory = '../database/factories') |
static |
isFactorable() |
bool |
factoryFiles() |
SplFileInfo[] |
hasMigrations() accepts an array only — not a bare string.
$packager->hasMigrationsOnRun is a public bool property set by canLoadMigrations().
Views
| Method | Returns |
|---|---|
hasViews(?string $viewsPath = null, string $directory = '../resources/views', ?string $namespace = null) |
static |
isViewable() |
bool |
views() |
string |
hasComponent(string $prefix, string $componentClass, string $alias = '') |
static |
hasComponents(string $prefix, array|string $components) |
static |
isViewComponentized() |
bool |
viewComponents() |
array |
viewComponentPaths() |
array |
hasComponentNamespace(string $prefix, string $namespace) |
static |
hasComponentNamespaces(array $namespaces) |
static |
isViewComponentNamespaceConfigured() |
bool |
viewComponentNamespaces() |
array<string, string> |
hasViewComposer(string|array $views, string|Closure $composer) |
static |
isViewComposable() |
bool |
viewComposers() |
array |
hasSharedDataForAllViews(array $viewSharedData) |
static |
isSharedWithViews() |
bool |
viewSharedData() |
array |
The $namespace argument of hasViews() is not currently applied.
Translations
| Method | Returns |
|---|---|
hasTranslations(string $translationPath = 'lang') |
static |
isTranslatable() |
bool |
translationPath() |
string |
loadJsonTranslate() |
bool |
Assets
| Method | Returns |
|---|---|
hasAssets(string $directory = 'dist', bool $mirror = true, array $entries = []) |
static |
hasViteAssets(array $entries, ?string $base = null) |
static |
hasAssetFallback(Closure $resolver) |
static |
isAssetable() |
bool |
assetDirectory() |
string |
mirrorsAssets() |
bool |
hasAssetEntries() |
bool |
assetEntries() |
Asset[] |
viteBase() |
?string |
assetFallback() |
?Closure |
Blade directives, registered once when any package declares entries:
@packageAssets(?$package, ...$only) · @packageStyles(…) · @packageScripts(…) — naming no
package renders every package that declared entries — and @packageAssetUrl($package, $entry)
(URL only, both arguments required).
Middleware
| Method | Returns |
|---|---|
hasMiddlewareAliases(array $aliases) |
static |
hasMiddlewareGroups(array $groups) |
static |
hasMiddlewareGlobals(array $middlewares) |
static |
getMiddlewareAliases() |
array |
getMiddlewareGroups() |
array |
getMiddlewareGlobals() |
array |
isSetMiddlewareAliases() |
bool |
isSetMiddlewareGroups() |
bool |
isSetMiddlewareGlobals() |
bool |
Events
| Method | Returns |
|---|---|
hasEvent(string $event, string|Closure|array $listeners) |
static |
hasEvents(array $events) |
static |
hasSubscriber(string $subscriber) |
static |
hasSubscribers(array $subscribers) |
static |
isEventable() |
bool |
events() |
array<string, array> |
subscribers() |
array<int, string> |
Commands and optimize
| Method | Returns |
|---|---|
hasCommand(string $commandClass) |
static |
hasCommands(string|array|null $commandsClass = null, string $directory = 'Commands') |
static |
isCommandable() |
bool |
hasOptimizeCommands(?string $optimize = null, ?string $clear = null, ?string $key = null) |
static |
isOptimizable() |
bool |
optimizeCommands() |
array |
$packager->commands is a public string[] property.
Stubs and providers
| Method | Returns |
|---|---|
hasStubs(array|string|null $stubFiles = null, string $directory = '../stubs') |
static |
isStubbable() |
bool |
stubFiles() |
SplFileInfo[] |
hasProvider(string $provider) |
static |
hasProviders(array $providers) |
static |
isProvidable() |
bool |
providers() |
SplFileInfo[] |
Installation
| Method | Returns |
|---|---|
hasInstallCommand(?Closure $callback = null) |
static |
withoutInstallCommand() |
static |
installCommandName(string $name) |
static |
installCommandHidden(bool $hidden = true) |
static |
installOnRun(bool $installOnRun = true) |
static |
installOnRunInEnvironment(string|array $environments) |
static |
installOnRunInLocal() |
static |
installOnRunInProduction() |
static |
hasQuickInstall() |
static |
hasMinimalInstall() |
static |
hasFullInstall() |
static |
hasDevInstall() |
static |
isInstallable() |
bool |
isInstallCommandHidden() |
bool |
shouldInstallOnRun() |
bool |
getInstallCommandName() |
string |
getInstallCommandCallback() |
?Closure |
createInstallCommand() |
InstallCommand |
About
| Method | Returns |
|---|---|
hasAbout(bool $value = true) |
static |
hasVersion(string $version) |
static |
setAboutData(array $data) |
static |
aboutData() |
array |
getVersion() |
?string |
isAboutable() |
bool |
bootAboutCommand() |
void |
$packager->version is a public string property.
Publish tags
| Method | Returns |
|---|---|
hasPublishTagSeparator(string|array $separator) |
static |
publishTagSeparator() |
?string — the primary one |
publishTagSeparators() |
array<int, string> |
Lifecycle
| Method | Returns |
|---|---|
registeringPackage(Closure $callback) |
static |
registeredPackage(Closure $callback) |
static |
bootingPackage(Closure $callback) |
static |
bootedPackage(Closure $callback) |
static |
executeLifecycleHook(LifecycleHook $hook) |
void |
Public bool properties registeringDefined, registeredDefined, bootingDefined and
bootedDefined report whether each is set.
Conditional configuration
| Method | Returns |
|---|---|
when(bool $condition, Closure $callback) |
static |
unless(bool $condition, Closure $callback) |
static |
whenMultiple(array $conditions) |
static |
whenEnvironment(string|array $environments, Closure $callback) |
static |
whenProduction(Closure $callback) |
static |
whenLocal(Closure $callback) |
static — matches local and development |
whenConsole(Closure $callback) |
static |
whenClassExists(string $class, Closure $callback) |
static |
whenFunctionExists(string $function, Closure $callback) |
static |
whenExtensionLoaded(string $extension, Closure $callback) |
static |
executeConditionalCallbacks() |
static |
resetConditionalCallbacks() |
static |
conditionalCallbacksExecuted() |
bool |
getPendingConditionalCallbacksCount() |
int |
PackageServiceProvider
| Method | Returns | Notes |
|---|---|---|
configure(Packager $packager) |
void |
abstract — you implement it |
register() |
void |
call parent::register() when overriding |
boot() |
void |
call parent::boot() when overriding |
bootPackager() |
Packager |
override to return a subclass |
getPackageBaseDir() |
string |
reflection on static::class |
packageCommands() |
array |
extra commands, merged with hasCommands() |
registerPackageCommands() |
void |
registers both sets during register() |
aboutData() |
array |
extra about rows |
registeringPackage() |
void |
fires the hook |
registeredPackage() |
void |
fires the hook |
bootingPackage() |
void |
fires the hook |
bootedPackage() |
void |
fires the hook |
tagSeparator() |
string |
primary separator |
tagSeparators() |
array<int, string> |
all of them |
publishTagFormat(string $groupName) |
string|array |
the tag(s) for a group |
Boot steps
Each returns static, so an override can chain: bootAboutCommand(), bootAssets(),
bootMigrations(),
bootRoutes(), bootBroadcastChannels(), bootMiddleware(), bootEvents(), bootOptimizes(),
bootSharedViewData(), bootTranslations(), bootViewComposers(),
bootViewComponentNamespaces(), bootViewComponents(), bootViews(), plus the umbrella
bootPackageResources().
bootVewComposers() is a deprecated misspelling kept for backward compatibility.
Publish steps
publishAssets(), publishConfig(), publishFactories(), publishMigrations(),
publishProvider(), publishRoutes(), publishSeeders(), publishStubs(),
publishTranslations(), publishViewComponentNamespaces(), publishViewComponents(),
publishViews(), plus the umbrella registerPublishing().
Commands\InstallCommand
Publishing
publishConfig() · publishConfigFile() · publishConfigFiles() · publishMigrations() ·
publishSeeders() · publishFactories() · publishAssets() · publishPublicAssets() ·
publishTranslations() · publishTranslationFiles() · publishLanguageFiles() ·
publishViews() · publishViewFiles() · publishRoutes() · publishRouteFiles() ·
publishProviders() · publishServiceProviders() · publishStubs() · publishComponents() ·
publishViewComponents() · publishComponentNamespaces() · publishViewComponentNamespaces()
Bulk: publishEverything() · publishAll() · publishEssentials() · publishCustom(...$tags)
Conditional: publishIf(bool, ...$tags) · publishUnless(bool, ...$tags) ·
publishForEnvironment(string|array, ...$tags) · publishForLocal(...$tags) ·
publishForProduction(...$tags)
Inspection: getPublishTags(): array · willPublish(string $tag): bool ·
clearPublishTags(): static
Behaviour
| Method | Notes |
|---|---|
beforeInstallation(Closure $callback) |
runs before publishing |
afterInstallation(Closure $callback) |
runs after publishing |
silent() |
suppress hook-phase output |
setTagSeparator(string $separator) |
set by the provider from the primary separator |
askToStarRepoOnGitHub(?string $repoUrl = null) |
falls back to composer.json |
copyAndRegisterServiceProviderInApp(?string $providerClass = null) |
config/app.php only |
Support\Asset
A declared entry. A plain string is accepted wherever an Asset is; reach for the class only for
what a string cannot express.
| Method | Returns | Notes |
|---|---|---|
Asset::make(string $file) |
self |
a file shipped in the asset directory |
Asset::vite(string $source) |
self |
a source the application's Vite build compiles |
fallback(string $file) |
self |
shipped file to serve when the application did not build it |
classic() |
self |
drop type="module", add defer |
attributes(array $attributes) |
self |
true renders bare, null removes a default |
asStylesheet() / asScript() |
self |
override the extension inference |
source() / file() / key() |
?string / ?string / string |
|
isStylesheet() / isModule() |
bool |
|
tagAttributes() |
array |
declared attributes merged over the defaults |
Support\PackageAssets
The renderer behind the directives; a container singleton shared by every package.
| Method | Returns | Notes |
|---|---|---|
declare(string $package, string $directory, array $entries, ?string $base, bool $mirrored, ?Closure $fallback = null) |
void |
called by the provider |
tags(?string $package = null, string ...$only) |
HtmlString |
application build first, then stylesheets, then scripts; every package when none is named |
styles(…) / scripts(…) |
HtmlString |
same, filtered |
url(string $package, string $entry) |
?string |
one URL, null when nothing resolves |
declared(string $package) |
bool |
|
resolution(string $package) |
array |
entry => dev server / application build / shipped / fallback / not published / unresolved; writes nothing |
Support\PublishedAssets
| Method | Returns | Notes |
|---|---|---|
mirrors(string $package, string $assetDirectory) |
void |
called by the provider |
url(string $package, string $path) |
?string |
syncs, then returns a cache-busted URL |
isStale(string $package, string $path) |
bool |
published copy older than the shipped one |
flush() |
void |
clears URLs and sync marks, keeps directories |
Support\SplFileInfo
Extends PHP's SplFileInfo, adding getBaseFileName(): string (name without extension) and
getFileSize(): int.
Support\Enums\Language
A backed enum of ISO 639-1 codes — case name is the code, value is the English name.
| Method | Returns |
|---|---|
Language::codes() |
Collection<int, string> |
Language::names() |
Collection<int, string> |
Language::collection() |
Collection<int, Language> |
Support\Enums\LifecycleHook
Booting · Booted · Registering · Registered
Contracts
| Interface | Declares |
|---|---|
Contracts\Packable |
configure(), four lifecycle methods, aboutData() |
Contracts\ProvidesPackageServices |
extends Packable; adds register(), boot(), packageCommands() |
Contracts\HasAbout |
deprecated, removed in 3.0 |
Exceptions
| Exception | Namespace | Thrown when |
|---|---|---|
MissingNameException |
Exceptions\ |
name() was never called |
InvalidReturnTypeException |
Exceptions\ |
a config file does not return an array |
InvalidLanguageDirectoryException |
Exceptions\ |
a translation subdirectory is not a language code |
PackageConfigurationException |
root namespace | the packager is null, reflection fails, or an asset is declared before hasAssets() |
The toolkit also lets InvalidArgumentException,
Illuminate\Contracts\Filesystem\FileNotFoundException and
Symfony\Component\Finder\Exception\DirectoryNotFoundException propagate from validation.