tomasvotruba/bladestan
PHPStan rule for static analysis of Blade templates
0.11.7
809K downloads/mo
#2985 most downloaded on Packagist
bladestan/bladestan
What this package is like to depend on
Last release 1 months ago
17 Jul 2026
Release timing varies
gaps range from 8 days to 9 months
Nearly every release is documented
notes for 21 of 21 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
21 releases · first in 2023
4 releases in the last 12 months
see the full history below
Release timeline
21 releases · Mar 2023 to Jul 2026Releases
latest 21-
0.11.717 Jul 2026Release notes
Open source →Fixed
- Ignore
@bladestan-signaturedocblocks instead of failing on them, so a template can be
annotated ahead of the template-centric 0.12 release while still analysing cleanly on 0.11.
Full Changelog: 0.11.6...0.11.7
Release notes
Open source →Fixed
- Ignore
@bladestan-signaturedocblocks instead of failing on them, so a template can be annotated ahead of the template-centric 0.12 release while still analysing cleanly on 0.11.
- Ignore
-
0.11.617 Jul 2026Release notes
Open source →The final 0.11.x release before the template-centric rewrite, focused on keeping
projects that are not ready to upgrade stable.Added
- Laravel 13 support
Fixed
- Compile templates to the same PHP regardless of the installed Livewire
version, so analysis is consistent across Livewire 3 and 4
Full Changelog: 0.11.5...0.11.6
Release notes
Open source →The final 0.11.x release before the template-centric rewrite, focused on keeping projects that are not ready to upgrade stable.
Added
- Laravel 13 support
Fixed
- Compile templates to the same PHP regardless of the installed Livewire version, so analysis is consistent across Livewire 3 and 4
-
0.11.516 Mar 2026Release notes
Open source →What's Changed
- Ensures PHPStan's result cache is invalidated when any blade template… by @AJenbo in #174
- Fix broken use keyword in import bubble up by @rikvdh in #176
New Contributors
Full Changelog: 0.11.4...0.11.5
Release notes
Open source →Fixed
- Ensure PHPStan's result cache is invalidated when any Blade template changes (#174, @AJenbo)
- Fix broken
usekeyword in import bubble-up (#176, @rikvdh)
-
0.11.416 Jan 2026Release notes
Open source →What's Changed
- Support Livewire 3.3.x and Symfony 8 by @AJenbo in #169
- Add support for Livewire 4.0 by @AJenbo in #172
Full Changelog: 0.11.3...0.11.4
Release notes
Open source →Added
- Support Livewire 3.3.x and Symfony 8 (#169, @AJenbo)
- Support Livewire 4.0 (#172, @AJenbo)
-
0.11.330 Apr 2025Release notes
Open source →What's Changed
- Use identifier to match ignored errors by @AJenbo in #160
- Respect configured rules by @AJenbo in #161
Full Changelog: 0.11.2...0.11.3
Release notes
Open source →Changed
- Use the error identifier to match ignored errors (#160, @AJenbo)
- Respect configured rules (#161, @AJenbo)
-
0.11.210 Mar 2025Release notes
Open source →What's Changed
- Add workaround for bug in Laravel Telescope
- Fix parsing of
@includewhere arrays or values from arrays where used (thanks @calebdw)
New Contributors
Full Changelog: 0.11.1...0.11.2
Release notes
Open source →Fixed
- Add a workaround for a bug in Laravel Telescope
- Fix parsing of
@includewhere arrays or values from arrays are used (#158, @calebdw)
-
0.11.127 Feb 2025 -
0.11.019 Feb 2025Release notes
Open source →What's Changed
- Add support for data provided via
->with*()on all view methods - Add support for non-html mail templates
- Analyze Facades\Response::view()
- Fully read template paths from application
- Get Livewire component namespace from application config
- Read shared and event data from application
- Support PHP 8 syntax in templates
Full Changelog: 0.10.0...0.11.0
Release notes
Open source →Added
- Support for data provided via
->with*()on all view methods - Support for non-HTML mail templates
- Analyse
Facades\Response::view() - Read template paths in full from the application
- Read the Livewire component namespace from the application config
- Read shared and event data from the application
- Support PHP 8 syntax in templates
- Add support for data provided via
-
0.10.011 Feb 2025Release notes
Open source →What's Changed
- Recognize public properties are passed to views @spawnia & @AJenbo
- Improved Livewire support
- Use application's BladeCompiler by @aoi & @AJenbo
- Fix getting data from variables
- Fix
->with*()affecting not just the view instance it's called - Fix PHP 8.1 support
- Fix typos by @szepeviktor
Full Changelog: 0.9.0...0.10.0
Release notes
Open source →Added
- Recognise that public properties are passed to views (@spawnia, @AJenbo)
- Improved Livewire support
- Use the application's
BladeCompiler(@aoi, @AJenbo)
Fixed
- Fix reading data from variables
- Fix
->with*()affecting more than the view instance it was called on - Fix PHP 8.1 support
- Fix typos (@szepeviktor)
-
0.9.007 Feb 2025Release notes
Open source →What's Changed
- Add support for
$errors,@once,@each,@includeWhenand@includeUnless - Add support for analyzing Laravel packages
- Add support for
renderEach()andfirst()onView\Factory - Analyze more of Blads internal scope
- More robust parsing
Full Changelog: 0.8.0...0.9.0
Release notes
Open source →Added
- Support for
$errors,@once,@each,@includeWhen, and@includeUnless - Support for analysing Laravel packages
- Support for
renderEach()andfirst()onView\Factory - Analyse more of Blade's internal scope
Changed
- More robust parsing
- Add support for
-
0.8.021 Jan 2025Release notes
Open source →Added
- Support for non-terminated expressions
- Support for
usestatements in partials - Support for dynamic method calls
- Support for dynamic components
- Analyse anonymous components
- Analyse use of components
- Analyse use of Livewire
- Analyse
@extendsand other indirect statements - Analyse all statements on a line
- Report missing templates
- Report template syntax errors
Fixed
- Correct the reported template line
- Correct some typos (#121, @szepeviktor)
- Update formatter output to align with the latest PHPStan
-
0.7.016 Dec 2024Release notes
Open source →Changed
- Migrate to PHPStan 2.0 (#119, @AJenbo)
Fixed
- Correct cases that were not being analysed (#120, @ondrejmirtes)
-
0.6.004 Sep 2024Release notes
Open source →Added
- Display an error tip (#95, @ngmy)
- Basic support for components and Livewire attribute validation (#98, @robchett)
- Parse view data when it is a variable (#108, @mrhn)
- Support
\Illuminate\Support\Facades\View::make(#115, @williamdes) - Support Mailable
content()(#114, @williamdes) - Support
Arrayable::toArray()as data (#116, @AJenbo)
Fixed
- Fix the
$thistype (#90, #99, @robchett) - Remove unnecessary ignores in
ErrorFilter.php(#105, @AJenbo)
-
0.5.010 Jan 2024Release notes
Open source →Added
- Support for
MailMessage::view()(#78, @AJenbo) - Recognise calling
view()with a single argument (#80, @spawnia)
Changed
- Drop Laravel 8 and allow Laravel 11 (#93, @TomasVotruba)
- Decouple internals (#88, @staabm)
Fixed
- Fix a false positive when echoing
Htmlableobjects (#91, @AJenbo)
- Support for
-
0.4.112 Aug 2023 -
0.4.026 Jul 2023Release notes
Open source →Added
- Support for
Mailable::view()(#62, @AJenbo) - Basic support for components (#61, @AJenbo)
Changed
- More flexibility in template spacing (#72)
- Support for
-
0.3.104 May 2023 -
0.3.004 May 2023Release notes
Open source →Added
- Import mapped variables into scope (#48, @AJenbo)
- Support passing variables via
compact()(#47, @AJenbo)
Fixed
- Fix
$loopin nested@foreach(#53, @AJenbo) - Create a new
$looprather than replacing it with a docblock (#50, @AJenbo) - Fix warnings about empty lines in generated PHP (#49, @AJenbo)
- Fix processing
@includewith data given in a variable (#46, @AJenbo)
-
0.2.126 Mar 2023 -
0.2.025 Mar 2023Release notes
Open source →Fixed
- Fix the regex handling
e()output (#16) - Various false-positive suppressions and parsing robustness
- Fix the regex handling
-
0.1.016 Mar 2023Release notes
Open source →Initial release. Bladestan compiles each Blade template to PHP, runs PHPStan over the result, and maps the errors back to the original template. Based on earlier work by Can Vural (see Credits in the README).