Skip to content

Commit a5f21d6

Browse files
[9.x] Removes core class aliases from the skeleton (#40062)
* Allows to remove core class `app.aliases` from the skeleton * Removes `Redis` alias * Merges configurations * Reverts changes on Register Facades * Adds `Facade::defaultAliases` * Apply fixes from StyleCI Co-authored-by: Taylor Otwell <taylorotwell@users.noreply.github.com>
1 parent 61e3e25 commit a5f21d6

File tree

2 files changed

+68
-0
lines changed

2 files changed

+68
-0
lines changed

src/Illuminate/Support/Facades/Facade.php

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
namespace Illuminate\Support\Facades;
44

55
use Closure;
6+
use Illuminate\Database\Eloquent\Model;
7+
use Illuminate\Support\Arr;
8+
use Illuminate\Support\Js;
9+
use Illuminate\Support\Str;
610
use Mockery;
711
use Mockery\LegacyMockInterface;
812
use RuntimeException;
@@ -243,6 +247,55 @@ public static function clearResolvedInstances()
243247
static::$resolvedInstance = [];
244248
}
245249

250+
/**
251+
* Get the application default aliases.
252+
*
253+
* @return array
254+
*/
255+
public static function defaultAliases()
256+
{
257+
return [
258+
'App' => App::class,
259+
'Arr' => Arr::class,
260+
'Artisan' => Artisan::class,
261+
'Auth' => Auth::class,
262+
'Blade' => Blade::class,
263+
'Broadcast' => Broadcast::class,
264+
'Bus' => Bus::class,
265+
'Cache' => Cache::class,
266+
'Config' => Config::class,
267+
'Cookie' => Cookie::class,
268+
'Crypt' => Crypt::class,
269+
'Date' => Date::class,
270+
'DB' => DB::class,
271+
'Eloquent' => Model::class,
272+
'Event' => Event::class,
273+
'File' => File::class,
274+
'Gate' => Gate::class,
275+
'Hash' => Hash::class,
276+
'Http' => Http::class,
277+
'Js' => Js::class,
278+
'Lang' => Lang::class,
279+
'Log' => Log::class,
280+
'Mail' => Mail::class,
281+
'Notification' => Notification::class,
282+
'Password' => Password::class,
283+
'Queue' => Queue::class,
284+
'RateLimiter' => RateLimiter::class,
285+
'Redirect' => Redirect::class,
286+
'Request' => Request::class,
287+
'Response' => Response::class,
288+
'Route' => Route::class,
289+
'Schema' => Schema::class,
290+
'Session' => Session::class,
291+
'Storage' => Storage::class,
292+
'Str' => Str::class,
293+
'URL' => URL::class,
294+
'Validator' => Validator::class,
295+
'View' => View::class,
296+
];
297+
}
298+
246299
/**
247300
* Get the application instance behind the facade.
248301
*

tests/Integration/Support/FacadesTest.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
namespace Illuminate\Tests\Integration\Support;
44

55
use Illuminate\Support\Facades\Auth;
6+
use Illuminate\Support\Facades\Facade;
67
use Orchestra\Testbench\TestCase;
8+
use ReflectionClass;
79

810
class FacadesTest extends TestCase
911
{
@@ -39,4 +41,17 @@ public function testFacadeResolvedCanResolveCallbackAfterAccessRootHasBeenResolv
3941

4042
$this->assertTrue(isset($_SERVER['__laravel.authResolved']));
4143
}
44+
45+
public function testDefaultAliases()
46+
{
47+
$defaultAliases = Facade::defaultAliases();
48+
49+
foreach ($defaultAliases as $alias => $abstract) {
50+
$this->assertTrue(class_exists($alias));
51+
$this->assertTrue(class_exists($abstract));
52+
53+
$reflection = new ReflectionClass($alias);
54+
$this->assertSame($abstract, $reflection->getName());
55+
}
56+
}
4257
}

0 commit comments

Comments
 (0)