1<?php 2 3namespace Illuminate\Contracts\Foundation; 4 5use Closure; 6use Illuminate\Contracts\Container\Container; 7 8interface Application extends Container 9{ 10 /** 11 * Get the version number of the application. 12 * 13 * @return string 14 */ 15 public function version(); 16 17 /** 18 * Get the base path of the Laravel installation. 19 * 20 * @return string 21 */ 22 public function basePath(); 23 24 /** 25 * Get the path to the bootstrap directory. 26 * 27 * @param string $path Optionally, a path to append to the bootstrap path 28 * @return string 29 */ 30 public function bootstrapPath($path = ''); 31 32 /** 33 * Get the path to the application configuration files. 34 * 35 * @param string $path Optionally, a path to append to the config path 36 * @return string 37 */ 38 public function configPath($path = ''); 39 40 /** 41 * Get the path to the database directory. 42 * 43 * @param string $path Optionally, a path to append to the database path 44 * @return string 45 */ 46 public function databasePath($path = ''); 47 48 /** 49 * Get the path to the environment file directory. 50 * 51 * @return string 52 */ 53 public function environmentPath(); 54 55 /** 56 * Get the path to the resources directory. 57 * 58 * @param string $path 59 * @return string 60 */ 61 public function resourcePath($path = ''); 62 63 /** 64 * Get the path to the storage directory. 65 * 66 * @return string 67 */ 68 public function storagePath(); 69 70 /** 71 * Get or check the current application environment. 72 * 73 * @param string|array $environments 74 * @return string|bool 75 */ 76 public function environment(...$environments); 77 78 /** 79 * Determine if the application is running in the console. 80 * 81 * @return bool 82 */ 83 public function runningInConsole(); 84 85 /** 86 * Determine if the application is running unit tests. 87 * 88 * @return bool 89 */ 90 public function runningUnitTests(); 91 92 /** 93 * Determine if the application is currently down for maintenance. 94 * 95 * @return bool 96 */ 97 public function isDownForMaintenance(); 98 99 /** 100 * Register all of the configured providers. 101 * 102 * @return void 103 */ 104 public function registerConfiguredProviders(); 105 106 /** 107 * Register a service provider with the application. 108 * 109 * @param \Illuminate\Support\ServiceProvider|string $provider 110 * @param bool $force 111 * @return \Illuminate\Support\ServiceProvider 112 */ 113 public function register($provider, $force = false); 114 115 /** 116 * Register a deferred provider and service. 117 * 118 * @param string $provider 119 * @param string|null $service 120 * @return void 121 */ 122 public function registerDeferredProvider($provider, $service = null); 123 124 /** 125 * Resolve a service provider instance from the class name. 126 * 127 * @param string $provider 128 * @return \Illuminate\Support\ServiceProvider 129 */ 130 public function resolveProvider($provider); 131 132 /** 133 * Boot the application's service providers. 134 * 135 * @return void 136 */ 137 public function boot(); 138 139 /** 140 * Register a new boot listener. 141 * 142 * @param callable $callback 143 * @return void 144 */ 145 public function booting($callback); 146 147 /** 148 * Register a new "booted" listener. 149 * 150 * @param callable $callback 151 * @return void 152 */ 153 public function booted($callback); 154 155 /** 156 * Run the given array of bootstrap classes. 157 * 158 * @param array $bootstrappers 159 * @return void 160 */ 161 public function bootstrapWith(array $bootstrappers); 162 163 /** 164 * Determine if the application configuration is cached. 165 * 166 * @return bool 167 */ 168 public function configurationIsCached(); 169 170 /** 171 * Detect the application's current environment. 172 * 173 * @param \Closure $callback 174 * @return string 175 */ 176 public function detectEnvironment(Closure $callback); 177 178 /** 179 * Get the environment file the application is using. 180 * 181 * @return string 182 */ 183 public function environmentFile(); 184 185 /** 186 * Get the fully qualified path to the environment file. 187 * 188 * @return string 189 */ 190 public function environmentFilePath(); 191 192 /** 193 * Get the path to the configuration cache file. 194 * 195 * @return string 196 */ 197 public function getCachedConfigPath(); 198 199 /** 200 * Get the path to the cached services.php file. 201 * 202 * @return string 203 */ 204 public function getCachedServicesPath(); 205 206 /** 207 * Get the path to the cached packages.php file. 208 * 209 * @return string 210 */ 211 public function getCachedPackagesPath(); 212 213 /** 214 * Get the path to the routes cache file. 215 * 216 * @return string 217 */ 218 public function getCachedRoutesPath(); 219 220 /** 221 * Get the current application locale. 222 * 223 * @return string 224 */ 225 public function getLocale(); 226 227 /** 228 * Get the application namespace. 229 * 230 * @return string 231 * 232 * @throws \RuntimeException 233 */ 234 public function getNamespace(); 235 236 /** 237 * Get the registered service provider instances if any exist. 238 * 239 * @param \Illuminate\Support\ServiceProvider|string $provider 240 * @return array 241 */ 242 public function getProviders($provider); 243 244 /** 245 * Determine if the application has been bootstrapped before. 246 * 247 * @return bool 248 */ 249 public function hasBeenBootstrapped(); 250 251 /** 252 * Load and boot all of the remaining deferred providers. 253 * 254 * @return void 255 */ 256 public function loadDeferredProviders(); 257 258 /** 259 * Set the environment file to be loaded during bootstrapping. 260 * 261 * @param string $file 262 * @return $this 263 */ 264 public function loadEnvironmentFrom($file); 265 266 /** 267 * Determine if the application routes are cached. 268 * 269 * @return bool 270 */ 271 public function routesAreCached(); 272 273 /** 274 * Set the current application locale. 275 * 276 * @param string $locale 277 * @return void 278 */ 279 public function setLocale($locale); 280 281 /** 282 * Determine if middleware has been disabled for the application. 283 * 284 * @return bool 285 */ 286 public function shouldSkipMiddleware(); 287 288 /** 289 * Terminate the application. 290 * 291 * @return void 292 */ 293 public function terminate(); 294} 295