Application
class Application extends Container implements Application, CachesConfiguration, CachesRoutes, HttpKernelInterface (View source)
Traits
Constants
VERSION |
The Laravel framework version. |
Properties
static protected Container | $instance | The current globally available container (if any). |
from Container |
protected bool[] | $resolved | An array of the types that have been resolved. |
from Container |
protected array[] | $bindings | The container's bindings. |
from Container |
protected Closure[] | $methodBindings | The container's method bindings. |
from Container |
protected object[] | $instances | The container's shared instances. |
from Container |
protected array | $scopedInstances | The container's scoped instances. |
from Container |
protected string[] | $aliases | The registered type aliases. |
from Container |
protected array[] | $abstractAliases | The registered aliases keyed by the abstract name. |
from Container |
protected array[] | $extenders | The extension closures for services. |
from Container |
protected array[] | $tags | All of the registered tags. |
from Container |
protected array[] | $buildStack | The stack of concretions currently being built. |
from Container |
protected array[] | $with | The parameter override stack. |
from Container |
array[] | $contextual | The contextual binding map. |
from Container |
array[] | $contextualAttributes | The contextual attribute handlers. |
from Container |
protected array[] | $reboundCallbacks | All of the registered rebound callbacks. |
from Container |
protected Closure[] | $globalBeforeResolvingCallbacks | All of the global before resolving callbacks. |
from Container |
protected Closure[] | $globalResolvingCallbacks | All of the global resolving callbacks. |
from Container |
protected Closure[] | $globalAfterResolvingCallbacks | All of the global after resolving callbacks. |
from Container |
protected array[] | $beforeResolvingCallbacks | All of the before resolving callbacks by class type. |
from Container |
protected array[] | $resolvingCallbacks | All of the resolving callbacks by class type. |
from Container |
protected array[] | $afterResolvingCallbacks | All of the after resolving callbacks by class type. |
from Container |
protected array[] | $afterResolvingAttributeCallbacks | All of the after resolving attribute callbacks by class type. |
from Container |
static protected array | $macros | The registered string macros. |
from Macroable |
protected string | $basePath | The base path for the Laravel installation. |
|
protected callable[] | $registeredCallbacks | The array of registered callbacks. |
|
protected bool | $hasBeenBootstrapped | Indicates if the application has been bootstrapped before. |
|
protected bool | $booted | Indicates if the application has "booted". |
|
protected callable[] | $bootingCallbacks | The array of booting callbacks. |
|
protected callable[] | $bootedCallbacks | The array of booted callbacks. |
|
protected callable[] | $terminatingCallbacks | The array of terminating callbacks. |
|
protected ServiceProvider> | $serviceProviders | All of the registered service providers. |
|
protected array | $loadedProviders | The names of the loaded service providers. |
|
protected array | $deferredServices | The deferred services and their providers. |
|
protected string | $bootstrapPath | The custom bootstrap path defined by the developer. |
|
protected string | $appPath | The custom application path defined by the developer. |
|
protected string | $configPath | The custom configuration path defined by the developer. |
|
protected string | $databasePath | The custom database path defined by the developer. |
|
protected string | $langPath | The custom language file path defined by the developer. |
|
protected string | $publicPath | The custom public / web path defined by the developer. |
|
protected string | $storagePath | The custom storage path defined by the developer. |
|
protected string | $environmentPath | The custom environment path defined by the developer. |
|
protected string | $environmentFile | The environment file to load during bootstrapping. |
|
protected bool|null | $isRunningInConsole | Indicates if the application is running in the console. |
|
protected string | $namespace | The application namespace. |
|
protected bool | $mergeFrameworkConfiguration | Indicates if the framework's base configuration should be merged. |
|
protected string[] | $absoluteCachePathPrefixes | The prefixes of absolute cache paths for use during normalization. |
Methods
Define a contextual binding based on an attribute.
Determine if the given abstract type has been bound.
Determine if the given abstract type has been resolved.
Register a binding with the container.
Get the Closure to be used when building a type.
Determine if the container has a method binding.
Bind a callback to resolve with Container::call.
Get the method to be bound in class@method format.
Get the method binding for the given method.
Add a contextual binding to the container.
Register a binding if it hasn't already been registered.
Register a shared binding in the container.
Register a shared binding if it hasn't already been registered.
Register a scoped binding in the container.
Register a scoped binding if it hasn't already been registered.
Register an existing instance as shared in the container.
Remove an alias from the contextual binding alias cache.
Assign a set of tags to a given binding.
Refresh an instance on the given target and method.
Fire the "rebound" callbacks for the given abstract type.
Get the rebound callbacks for a given type.
Wrap the given closure such that its dependencies will be injected when executed.
Call the given Closure / class@method and inject its dependencies.
Get the class name for the given callback, if one can be determined.
Get a closure to resolve the given type from the container.
An alias function name for make().
Resolve the given type from the container.
Resolve the given type from the container.
Get the concrete type for a given abstract.
Get the contextual concrete binding for the given abstract.
Find the concrete binding for the given abstract in the contextual binding array.
Determine if the given concrete is buildable.
Resolve all of the dependencies from the ReflectionParameters.
Determine if the given dependency has a parameter override.
Resolve a class based variadic dependency from the container.
Resolve a dependency based on an attribute.
Throw an exception that the concrete is not instantiable.
Throw an exception for an unresolvable primitive.
Register a new before resolving callback for all types.
Register a new resolving callback.
Register a new after resolving callback for all types.
Register a new after resolving attribute callback for all types.
Fire all of the before resolving callbacks.
Fire an array of callbacks with an object.
Fire all of the resolving callbacks.
Fire all of the after resolving callbacks.
Fire all of the after resolving attribute callbacks.
Get all callbacks for a given type.
Fire an array of callbacks with an object.
Remove all of the extender callbacks for a given type.
Drop all of the stale instances and aliases.
Remove a resolved instance from the instance cache.
Flush the container of all bindings and resolved instances.
Set the shared instance of the container.
Mix another object into the class.
Dynamically handle calls to the class.
Dynamically handle calls to the class.
Create a new Illuminate application instance.
Begin configuring a new Laravel application instance.
Infer the application's base directory from the environment.
Get the version number of the application.
Register the basic bindings into the container.
Register all of the base service providers.
Run the given array of bootstrap classes.
Register a callback to run after loading the environment.
Register a callback to run before a bootstrapper.
Register a callback to run after a bootstrapper.
Determine if the application has been bootstrapped before.
Set the base path for the application.
Bind all of the application paths in the container.
Get the path to the application "app" directory.
Set the application directory.
Get the base path of the Laravel installation.
Get the path to the bootstrap directory.
Get the path to the service provider list in the bootstrap directory.
Set the bootstrap file directory.
Get the path to the application configuration files.
Set the configuration directory.
Get the path to the database directory.
Set the database directory.
Get the path to the language files.
Set the language file directory.
Get the path to the public / web directory.
Set the public / web directory.
Get the path to the storage directory.
Set the storage directory.
Get the path to the resources directory.
Get the path to the views directory.
Join the given paths together.
Get the path to the environment file directory.
Set the directory for the environment file.
Set the environment file to be loaded during bootstrapping.
Get the environment file the application is using.
Get the fully qualified path to the environment file.
Get or check the current application environment.
Determine if the application is in the local environment.
Determine if the application is in the production environment.
Determine if the application is running in the console.
Determine if the application is running any of the given console commands.
Determine if the application is running unit tests.
Determine if the application is running with debug mode enabled.
Register a new registered listener.
Register all of the configured providers.
Register a service provider with the application.
Get the registered service provider instance if it exists.
Get the registered service provider instances if any exist.
Resolve a service provider instance from the class name.
Load and boot all of the remaining deferred providers.
Load the provider for a deferred service.
Register a deferred provider and service.
Load the deferred provider if the given type is a deferred service and the instance has not been loaded.
Determine if the application has booted.
Boot the application's service providers.
Register a new boot listener.
Register a new "booted" listener.
Call the booting callbacks for the application.
{@inheritdoc}
Handle the incoming HTTP request and send the response to the browser.
Handle the incoming Artisan command.
Determine if the framework's base configuration should be merged.
Indicate that the framework's base configuration should not be merged.
Determine if middleware has been disabled for the application.
Get the path to the cached services.php file.
Get the path to the cached packages.php file.
Determine if the application configuration is cached.
Get the path to the configuration cache file.
Determine if the application routes are cached.
Get the path to the routes cache file.
Determine if the application events are cached.
Get the path to the events cache file.
Normalize a relative or absolute path to a cache file.
Add new prefix to list of absolute path prefixes.
Get an instance of the maintenance mode manager implementation.
Determine if the application is currently down for maintenance.
Throw an HttpException with the given data.
Register a terminating callback with the application.
Terminate the application.
Get the service providers that have been loaded.
Determine if the given service provider is loaded.
Get the application's deferred services.
Set the application's deferred services.
Add an array of services to the application's deferred services.
Determine if the given service is a deferred service.
Configure the real-time facade namespace.
Get the current application locale.
Get the current application locale.
Get the current application fallback locale.
Set the current application locale.
Set the current application fallback locale.
Determine if the application locale is the given locale.
Register the core class aliases in the container.
Get the application namespace.
Details
ContextualBindingBuilder
when(string|array $concrete)
Define a contextual binding.
void
whenHasAttribute(string $attribute, Closure $handler)
Define a contextual binding based on an attribute.
bool
bound(string $abstract)
Determine if the given abstract type has been bound.
bool
has(string $id)
{@inheritdoc}
bool
resolved(string $abstract)
Determine if the given abstract type has been resolved.
bool
isShared(string $abstract)
Determine if a given type is shared.
bool
isAlias(string $name)
Determine if a given string is an alias.
void
bind(string $abstract, Closure|string|null $concrete = null, bool $shared = false)
Register a binding with the container.
protected Closure
getClosure(string $abstract, string $concrete)
Get the Closure to be used when building a type.
bool
hasMethodBinding(string $method)
Determine if the container has a method binding.
void
bindMethod(array|string $method, Closure $callback)
Bind a callback to resolve with Container::call.
protected string
parseBindMethod(array|string $method)
Get the method to be bound in class@method format.
mixed
callMethodBinding(string $method, mixed $instance)
Get the method binding for the given method.
void
addContextualBinding(string $concrete, string $abstract, Closure|string $implementation)
Add a contextual binding to the container.
void
bindIf(string $abstract, Closure|string|null $concrete = null, bool $shared = false)
Register a binding if it hasn't already been registered.
void
singleton(string $abstract, Closure|string|null $concrete = null)
Register a shared binding in the container.
void
singletonIf(string $abstract, Closure|string|null $concrete = null)
Register a shared binding if it hasn't already been registered.
void
scoped(string $abstract, Closure|string|null $concrete = null)
Register a scoped binding in the container.
void
scopedIf(string $abstract, Closure|string|null $concrete = null)
Register a scoped binding if it hasn't already been registered.
void
extend(string $abstract, Closure $closure)
"Extend" an abstract type in the container.
TInstance
instance(string $abstract, TInstance $instance)
Register an existing instance as shared in the container.
protected void
removeAbstractAlias(string $searched)
Remove an alias from the contextual binding alias cache.
void
tag(array|string $abstracts, array|mixed $tags)
Assign a set of tags to a given binding.
iterable
tagged(string $tag)
Resolve all of the bindings for a given tag.
void
alias(string $abstract, string $alias)
Alias a type to a different name.
mixed
rebinding(string $abstract, Closure $callback)
Bind a new callback to an abstract's rebind event.
mixed
refresh(string $abstract, mixed $target, string $method)
Refresh an instance on the given target and method.
protected void
rebound(string $abstract)
Fire the "rebound" callbacks for the given abstract type.
protected array
getReboundCallbacks(string $abstract)
Get the rebound callbacks for a given type.
Closure
wrap(Closure $callback, array $parameters = [])
Wrap the given closure such that its dependencies will be injected when executed.
mixed
call(callable|string $callback, array $parameters = [], string|null $defaultMethod = null)
Call the given Closure / class@method and inject its dependencies.
protected string|false
getClassForCallable(callable|string $callback)
Get the class name for the given callback, if one can be determined.
Closure
factory(string $abstract)
Get a closure to resolve the given type from the container.
mixed
makeWith(string|callable $abstract, array $parameters = [])
An alias function name for make().
mixed
make(string $abstract, array $parameters = [])
Resolve the given type from the container.
mixed
get(string $id)
{@inheritdoc}
protected mixed
resolve(string|callable $abstract, array $parameters = [], bool $raiseEvents = true)
Resolve the given type from the container.
protected mixed
getConcrete(string|callable $abstract)
Get the concrete type for a given abstract.
protected Closure|string|array|null
getContextualConcrete(string|callable $abstract)
Get the contextual concrete binding for the given abstract.
protected Closure|string|null
findInContextualBindings(string|callable $abstract)
Find the concrete binding for the given abstract in the contextual binding array.
protected bool
isBuildable(mixed $concrete, string $abstract)
Determine if the given concrete is buildable.
mixed
build(Closure|string $concrete)
Instantiate a concrete instance of the given type.
protected array
resolveDependencies(array $dependencies)
Resolve all of the dependencies from the ReflectionParameters.
protected bool
hasParameterOverride(ReflectionParameter $dependency)
Determine if the given dependency has a parameter override.
protected mixed
getParameterOverride(ReflectionParameter $dependency)
Get a parameter override for a dependency.
protected array
getLastParameterOverride()
Get the last parameter override.
protected mixed
resolvePrimitive(ReflectionParameter $parameter)
Resolve a non-class hinted primitive dependency.
protected mixed
resolveClass(ReflectionParameter $parameter)
Resolve a class based dependency from the container.
protected mixed
resolveVariadicClass(ReflectionParameter $parameter)
Resolve a class based variadic dependency from the container.
mixed
resolveFromAttribute(ReflectionAttribute $attribute)
Resolve a dependency based on an attribute.
protected void
notInstantiable(string $concrete)
Throw an exception that the concrete is not instantiable.
protected void
unresolvablePrimitive(ReflectionParameter $parameter)
Throw an exception for an unresolvable primitive.
void
beforeResolving(Closure|string $abstract, Closure|null $callback = null)
Register a new before resolving callback for all types.
void
resolving(Closure|string $abstract, Closure|null $callback = null)
Register a new resolving callback.
void
afterResolving(Closure|string $abstract, Closure|null $callback = null)
Register a new after resolving callback for all types.
void
afterResolvingAttribute(string $attribute, Closure $callback)
Register a new after resolving attribute callback for all types.
protected void
fireBeforeResolvingCallbacks(string $abstract, array $parameters = [])
Fire all of the before resolving callbacks.
protected void
fireBeforeCallbackArray(string $abstract, array $parameters, array $callbacks)
Fire an array of callbacks with an object.
protected void
fireResolvingCallbacks(string $abstract, mixed $object)
Fire all of the resolving callbacks.
protected void
fireAfterResolvingCallbacks(string $abstract, mixed $object)
Fire all of the after resolving callbacks.
void
fireAfterResolvingAttributeCallbacks(array $attributes, mixed $object)
Fire all of the after resolving attribute callbacks.
protected array
getCallbacksForType(string $abstract, object $object, array $callbacksPerType)
Get all callbacks for a given type.
protected void
fireCallbackArray(mixed $object, array $callbacks)
Fire an array of callbacks with an object.
array
getBindings()
Get the container's bindings.
string
getAlias(string $abstract)
Get the alias for an abstract if available.
protected array
getExtenders(string $abstract)
Get the extender callbacks for a given type.
void
forgetExtenders(string $abstract)
Remove all of the extender callbacks for a given type.
protected void
dropStaleInstances(string $abstract)
Drop all of the stale instances and aliases.
void
forgetInstance(string $abstract)
Remove a resolved instance from the instance cache.
void
forgetInstances()
Clear all of the instances from the container.
void
forgetScopedInstances()
Clear all of the scoped instances from the container.
void
flush()
Flush the container of all bindings and resolved instances.
static Container
getInstance()
Get the globally available instance of the container.
static Container|Container
setInstance(Container|null $container = null)
Set the shared instance of the container.
bool
offsetExists(string $key)
Determine if a given offset exists.
mixed
offsetGet(string $key)
Get the value at a given offset.
void
offsetSet(string $key, mixed $value)
Set the value at a given offset.
void
offsetUnset(string $key)
Unset the value at a given offset.
mixed
__get(string $key)
Dynamically access container services.
void
__set(string $key, mixed $value)
Dynamically set container services.
static void
macro(string $name, object|callable $macro)
Register a custom macro.
static void
mixin(object $mixin, bool $replace = true)
Mix another object into the class.
static bool
hasMacro(string $name)
Checks if macro is registered.
static void
flushMacros()
Flush the existing macros.
static mixed
__callStatic(string $method, array $parameters)
Dynamically handle calls to the class.
mixed
__call(string $method, array $parameters)
Dynamically handle calls to the class.
void
__construct(string|null $basePath = null)
Create a new Illuminate application instance.
static ApplicationBuilder
configure(string|null $basePath = null)
Begin configuring a new Laravel application instance.
static string
inferBasePath()
Infer the application's base directory from the environment.
string
version()
Get the version number of the application.
protected void
registerBaseBindings()
Register the basic bindings into the container.
protected void
registerBaseServiceProviders()
Register all of the base service providers.
void
bootstrapWith(array $bootstrappers)
Run the given array of bootstrap classes.
void
afterLoadingEnvironment(Closure $callback)
Register a callback to run after loading the environment.
void
beforeBootstrapping(string $bootstrapper, Closure $callback)
Register a callback to run before a bootstrapper.
void
afterBootstrapping(string $bootstrapper, Closure $callback)
Register a callback to run after a bootstrapper.
bool
hasBeenBootstrapped()
Determine if the application has been bootstrapped before.
$this
setBasePath(string $basePath)
Set the base path for the application.
protected void
bindPathsInContainer()
Bind all of the application paths in the container.
string
path(string $path = '')
Get the path to the application "app" directory.
$this
useAppPath(string $path)
Set the application directory.
string
basePath(string $path = '')
Get the base path of the Laravel installation.
string
bootstrapPath(string $path = '')
Get the path to the bootstrap directory.
string
getBootstrapProvidersPath()
Get the path to the service provider list in the bootstrap directory.
$this
useBootstrapPath(string $path)
Set the bootstrap file directory.
string
configPath(string $path = '')
Get the path to the application configuration files.
$this
useConfigPath(string $path)
Set the configuration directory.
string
databasePath(string $path = '')
Get the path to the database directory.
$this
useDatabasePath(string $path)
Set the database directory.
string
langPath(string $path = '')
Get the path to the language files.
$this
useLangPath(string $path)
Set the language file directory.
string
publicPath(string $path = '')
Get the path to the public / web directory.
$this
usePublicPath(string $path)
Set the public / web directory.
string
storagePath(string $path = '')
Get the path to the storage directory.
$this
useStoragePath(string $path)
Set the storage directory.
string
resourcePath(string $path = '')
Get the path to the resources directory.
string
viewPath(string $path = '')
Get the path to the views directory.
This method returns the first configured path in the array of view paths.
string
joinPaths(string $basePath, string $path = '')
Join the given paths together.
string
environmentPath()
Get the path to the environment file directory.
$this
useEnvironmentPath(string $path)
Set the directory for the environment file.
$this
loadEnvironmentFrom(string $file)
Set the environment file to be loaded during bootstrapping.
string
environmentFile()
Get the environment file the application is using.
string
environmentFilePath()
Get the fully qualified path to the environment file.
string|bool
environment(string|array ...$environments)
Get or check the current application environment.
bool
isLocal()
Determine if the application is in the local environment.
bool
isProduction()
Determine if the application is in the production environment.
string
detectEnvironment(Closure $callback)
Detect the application's current environment.
bool
runningInConsole()
Determine if the application is running in the console.
bool
runningConsoleCommand(string|array ...$commands)
Determine if the application is running any of the given console commands.
bool
runningUnitTests()
Determine if the application is running unit tests.
bool
hasDebugModeEnabled()
Determine if the application is running with debug mode enabled.
void
registered(callable $callback)
Register a new registered listener.
void
registerConfiguredProviders()
Register all of the configured providers.
ServiceProvider
register(ServiceProvider|string $provider, bool $force = false)
Register a service provider with the application.
ServiceProvider|null
getProvider(ServiceProvider|string $provider)
Get the registered service provider instance if it exists.
array
getProviders(ServiceProvider|string $provider)
Get the registered service provider instances if any exist.
ServiceProvider
resolveProvider(string $provider)
Resolve a service provider instance from the class name.
protected void
markAsRegistered(ServiceProvider $provider)
Mark the given provider as registered.
void
loadDeferredProviders()
Load and boot all of the remaining deferred providers.
void
loadDeferredProvider(string $service)
Load the provider for a deferred service.
void
registerDeferredProvider(string $provider, string|null $service = null)
Register a deferred provider and service.
protected void
loadDeferredProviderIfNeeded(string $abstract)
Load the deferred provider if the given type is a deferred service and the instance has not been loaded.
bool
isBooted()
Determine if the application has booted.
void
boot()
Boot the application's service providers.
protected void
bootProvider(ServiceProvider $provider)
Boot the given service provider.
void
booting(callable $callback)
Register a new boot listener.
void
booted(callable $callback)
Register a new "booted" listener.
protected void
fireAppCallbacks(array $callbacks)
Call the booting callbacks for the application.
Response
handle(Request $request, int $type = self::MAIN_REQUEST, bool $catch = true)
{@inheritdoc}
void
handleRequest(Request $request)
Handle the incoming HTTP request and send the response to the browser.
int
handleCommand(InputInterface $input)
Handle the incoming Artisan command.
bool
shouldMergeFrameworkConfiguration()
Determine if the framework's base configuration should be merged.
$this
dontMergeFrameworkConfiguration()
Indicate that the framework's base configuration should not be merged.
bool
shouldSkipMiddleware()
Determine if middleware has been disabled for the application.
string
getCachedServicesPath()
Get the path to the cached services.php file.
string
getCachedPackagesPath()
Get the path to the cached packages.php file.
bool
configurationIsCached()
Determine if the application configuration is cached.
string
getCachedConfigPath()
Get the path to the configuration cache file.
bool
routesAreCached()
Determine if the application routes are cached.
string
getCachedRoutesPath()
Get the path to the routes cache file.
bool
eventsAreCached()
Determine if the application events are cached.
string
getCachedEventsPath()
Get the path to the events cache file.
protected string
normalizeCachePath(string $key, string $default)
Normalize a relative or absolute path to a cache file.
$this
addAbsoluteCachePathPrefix(string $prefix)
Add new prefix to list of absolute path prefixes.
MaintenanceMode
maintenanceMode()
Get an instance of the maintenance mode manager implementation.
bool
isDownForMaintenance()
Determine if the application is currently down for maintenance.
never
abort(int $code, string $message = '', array $headers = [])
Throw an HttpException with the given data.
Application
terminating(callable|string $callback)
Register a terminating callback with the application.
void
terminate()
Terminate the application.
array<string,bool>
getLoadedProviders()
Get the service providers that have been loaded.
bool
providerIsLoaded(string $provider)
Determine if the given service provider is loaded.
array
getDeferredServices()
Get the application's deferred services.
void
setDeferredServices(array $services)
Set the application's deferred services.
void
addDeferredServices(array $services)
Add an array of services to the application's deferred services.
bool
isDeferredService(string $service)
Determine if the given service is a deferred service.
void
provideFacades(string $namespace)
Configure the real-time facade namespace.
string
getLocale()
Get the current application locale.
string
currentLocale()
Get the current application locale.
string
getFallbackLocale()
Get the current application fallback locale.
void
setLocale(string $locale)
Set the current application locale.
void
setFallbackLocale(string $fallbackLocale)
Set the current application fallback locale.
bool
isLocale(string $locale)
Determine if the application locale is the given locale.
void
registerCoreContainerAliases()
Register the core class aliases in the container.
string
getNamespace()
Get the application namespace.