From e4ffa951d608eac2cd5011aaadb63ed0a26f58ee Mon Sep 17 00:00:00 2001 From: Simon Hamp Date: Thu, 30 Nov 2023 16:57:53 +0000 Subject: [PATCH] [10.x]: Add Blade @use directive (#49179) * Add Blade @use directive * Allow for `use` without `as` * Update CompilesUseStatements.php --------- Co-authored-by: Taylor Otwell --- .../View/Compilers/BladeCompiler.php | 1 + .../Concerns/CompilesUseStatements.php | 22 +++++++++++++++++++ tests/View/Blade/BladeUseTest.php | 20 +++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 src/Illuminate/View/Compilers/Concerns/CompilesUseStatements.php create mode 100644 tests/View/Blade/BladeUseTest.php diff --git a/src/Illuminate/View/Compilers/BladeCompiler.php b/src/Illuminate/View/Compilers/BladeCompiler.php index 51479e81edc5..18aae67e14ba 100644 --- a/src/Illuminate/View/Compilers/BladeCompiler.php +++ b/src/Illuminate/View/Compilers/BladeCompiler.php @@ -33,6 +33,7 @@ class BladeCompiler extends Compiler implements CompilerInterface Concerns\CompilesStacks, Concerns\CompilesStyles, Concerns\CompilesTranslations, + Concerns\CompilesUseStatements, ReflectsClosures; /** diff --git a/src/Illuminate/View/Compilers/Concerns/CompilesUseStatements.php b/src/Illuminate/View/Compilers/Concerns/CompilesUseStatements.php new file mode 100644 index 000000000000..8d74a77046d6 --- /dev/null +++ b/src/Illuminate/View/Compilers/Concerns/CompilesUseStatements.php @@ -0,0 +1,22 @@ +"; + } +} diff --git a/tests/View/Blade/BladeUseTest.php b/tests/View/Blade/BladeUseTest.php new file mode 100644 index 000000000000..bc1c8a708c2d --- /dev/null +++ b/tests/View/Blade/BladeUseTest.php @@ -0,0 +1,20 @@ + bar"; + $this->assertEquals($expected, $this->compiler->compileString($string)); + } + + public function testUseStatementsWithoutAsAreCompiled() + { + $string = "Foo @use('SomeNamespace\SomeClass') bar"; + $expected = "Foo bar"; + $this->assertEquals($expected, $this->compiler->compileString($string)); + } +}