Skip to content

Commit 7d3bcfc

Browse files
committed
Handle custom extensions when caching views
1 parent 124eeae commit 7d3bcfc

File tree

3 files changed

+26
-1
lines changed

3 files changed

+26
-1
lines changed

src/Illuminate/Foundation/Console/ViewCacheCommand.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,17 @@ protected function compileViews(Collection $views)
7777
*/
7878
protected function bladeFilesIn(array $paths)
7979
{
80+
$extensions = collect($this->laravel['view']->getExtensions())
81+
->filter(fn ($value) => $value === 'blade')
82+
->keys()
83+
->map(fn ($extension) => "*.{$extension}")
84+
->all();
85+
8086
return collect(
8187
Finder::create()
8288
->in($paths)
8389
->exclude('vendor')
84-
->name('*.blade.php')
90+
->name($extensions)
8591
->files()
8692
);
8793
}

tests/Integration/View/BladeTest.php

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

55
use Illuminate\Support\Facades\Blade;
6+
use Illuminate\Support\Facades\Config;
67
use Illuminate\Support\Facades\View;
78
use Illuminate\View\Component;
89
use Orchestra\Testbench\TestCase;
10+
use Symfony\Component\Finder\Finder;
11+
use Symfony\Component\Finder\SplFileInfo;
912

1013
class BladeTest extends TestCase
1114
{
@@ -166,6 +169,21 @@ public function test_bound_name_attribute_can_be_used_if_using_short_slot_names_
166169
</div>', trim($content));
167170
}
168171

172+
public function testViewCacheCommandHandlesConfiguredBladeExtensions()
173+
{
174+
$this->artisan('view:clear');
175+
176+
View::addExtension('sh', 'blade');
177+
$this->artisan('view:cache');
178+
179+
$compiledFiles = Finder::create()->in(Config::get('view.compiled'))->files();
180+
$found = collect($compiledFiles)
181+
->contains(fn (SplFileInfo $file) => str_contains($file->getContents(), 'echo "<?php echo e($scriptMessage); ?>" > output.log'));
182+
$this->assertTrue($found);
183+
184+
$this->artisan('view:clear');
185+
}
186+
169187
protected function getEnvironmentSetUp($app)
170188
{
171189
$app['config']->set('view.paths', [__DIR__.'/templates']);
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
echo "{{ $scriptMessage }}" > output.log

0 commit comments

Comments
 (0)