blob: b46c6de4d84703a11fc016ec17a54336b21041b4 [file] [log] [blame]
Matthias Andreas Benkard7b2a3a12021-08-16 10:57:25 +02001<?php
2
3namespace Illuminate\Contracts\Foundation;
4
5use Illuminate\Contracts\Container\Container;
6
7interface Application extends Container
8{
9 /**
10 * Get the version number of the application.
11 *
12 * @return string
13 */
14 public function version();
15
16 /**
17 * Get the base path of the Laravel installation.
18 *
19 * @param string $path
20 * @return string
21 */
22 public function basePath($path = '');
23
24 /**
25 * Get the path to the bootstrap directory.
26 *
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +010027 * @param string $path
Matthias Andreas Benkard7b2a3a12021-08-16 10:57:25 +020028 * @return string
29 */
30 public function bootstrapPath($path = '');
31
32 /**
33 * Get the path to the application configuration files.
34 *
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +010035 * @param string $path
Matthias Andreas Benkard7b2a3a12021-08-16 10:57:25 +020036 * @return string
37 */
38 public function configPath($path = '');
39
40 /**
41 * Get the path to the database directory.
42 *
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +010043 * @param string $path
Matthias Andreas Benkard7b2a3a12021-08-16 10:57:25 +020044 * @return string
45 */
46 public function databasePath($path = '');
47
48 /**
49 * Get the path to the resources directory.
50 *
51 * @param string $path
52 * @return string
53 */
54 public function resourcePath($path = '');
55
56 /**
57 * Get the path to the storage directory.
58 *
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +010059 * @param string $path
Matthias Andreas Benkard7b2a3a12021-08-16 10:57:25 +020060 * @return string
61 */
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +010062 public function storagePath($path = '');
Matthias Andreas Benkard7b2a3a12021-08-16 10:57:25 +020063
64 /**
65 * Get or check the current application environment.
66 *
67 * @param string|array $environments
68 * @return string|bool
69 */
70 public function environment(...$environments);
71
72 /**
73 * Determine if the application is running in the console.
74 *
75 * @return bool
76 */
77 public function runningInConsole();
78
79 /**
80 * Determine if the application is running unit tests.
81 *
82 * @return bool
83 */
84 public function runningUnitTests();
85
86 /**
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +010087 * Get an instance of the maintenance mode manager implementation.
88 *
89 * @return \Illuminate\Contracts\Foundation\MaintenanceMode
90 */
91 public function maintenanceMode();
92
93 /**
Matthias Andreas Benkard7b2a3a12021-08-16 10:57:25 +020094 * Determine if the application is currently down for maintenance.
95 *
96 * @return bool
97 */
98 public function isDownForMaintenance();
99
100 /**
101 * Register all of the configured providers.
102 *
103 * @return void
104 */
105 public function registerConfiguredProviders();
106
107 /**
108 * Register a service provider with the application.
109 *
110 * @param \Illuminate\Support\ServiceProvider|string $provider
111 * @param bool $force
112 * @return \Illuminate\Support\ServiceProvider
113 */
114 public function register($provider, $force = false);
115
116 /**
117 * Register a deferred provider and service.
118 *
119 * @param string $provider
120 * @param string|null $service
121 * @return void
122 */
123 public function registerDeferredProvider($provider, $service = null);
124
125 /**
126 * Resolve a service provider instance from the class name.
127 *
128 * @param string $provider
129 * @return \Illuminate\Support\ServiceProvider
130 */
131 public function resolveProvider($provider);
132
133 /**
134 * Boot the application's service providers.
135 *
136 * @return void
137 */
138 public function boot();
139
140 /**
141 * Register a new boot listener.
142 *
143 * @param callable $callback
144 * @return void
145 */
146 public function booting($callback);
147
148 /**
149 * Register a new "booted" listener.
150 *
151 * @param callable $callback
152 * @return void
153 */
154 public function booted($callback);
155
156 /**
157 * Run the given array of bootstrap classes.
158 *
159 * @param array $bootstrappers
160 * @return void
161 */
162 public function bootstrapWith(array $bootstrappers);
163
164 /**
165 * Get the current application locale.
166 *
167 * @return string
168 */
169 public function getLocale();
170
171 /**
172 * Get the application namespace.
173 *
174 * @return string
175 *
176 * @throws \RuntimeException
177 */
178 public function getNamespace();
179
180 /**
181 * Get the registered service provider instances if any exist.
182 *
183 * @param \Illuminate\Support\ServiceProvider|string $provider
184 * @return array
185 */
186 public function getProviders($provider);
187
188 /**
189 * Determine if the application has been bootstrapped before.
190 *
191 * @return bool
192 */
193 public function hasBeenBootstrapped();
194
195 /**
196 * Load and boot all of the remaining deferred providers.
197 *
198 * @return void
199 */
200 public function loadDeferredProviders();
201
202 /**
203 * Set the current application locale.
204 *
205 * @param string $locale
206 * @return void
207 */
208 public function setLocale($locale);
209
210 /**
211 * Determine if middleware has been disabled for the application.
212 *
213 * @return bool
214 */
215 public function shouldSkipMiddleware();
216
217 /**
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100218 * Register a terminating callback with the application.
219 *
220 * @param callable|string $callback
221 * @return \Illuminate\Contracts\Foundation\Application
222 */
223 public function terminating($callback);
224
225 /**
Matthias Andreas Benkard7b2a3a12021-08-16 10:57:25 +0200226 * Terminate the application.
227 *
228 * @return void
229 */
230 public function terminate();
231}