Download the PHP package vaites/laravel-blade-expects without Composer
On this page you can find all versions of the php package vaites/laravel-blade-expects. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package laravel-blade-expects
Laravel Blade @expects
This package is now abandoned and will no longer be maintained.
The @expects directive was created to document and validate variables passed to Blade templates. However, Laravel's built-in @props directive (introduced in Laravel 7) covers this use case natively and in a more integrated way — it declares expected variables, sets default values, and automatically excludes them from the $attributes bag.
If you need to declare expected variables in a Blade view, use @props instead:
Motivation
Blade templates are great, but lacks a good way to define the variables it requires to work. In a normal template you must check if variables are set and/or set a default value for it.
Take this example:
You must check if some variables are defined and set default values for some others. A colleague who has not worked with this template might ask:
- Which variables must be defined for the template to work??
- What are the default values for undefined variables?
- Which class must be the
$objectinstance? - What happens if
$objectis not an instance of the right class?
In big templates with lots of complex HTML code mixed with CSS framework classes and JS framework attributes, guessing
this information can be quite difficult. To solve these problems, this package adds a simple @expects directive to
define the variables expected by the view.
Usage
Using it as a wrapper for a phpDoc block does the same and allows IDEs like phpStorm to type-hint the variables:
Both ways force $object to be defined as a \App\Object instance, $type as a string and $size will take the
medium value if not set.
The directive can be called using multiline syntax to improve legibility:
The goal is that any programmer who works with the template knows immediately which variables are necessary for its operation, its types and default values.
PHP tags
You may also need to disable PHP tags in templates. This will prevent control structures from being used or variables from being declared, forcing the use of Blade directives for everything the template should do.
To do this just set the BLADE_EXPECTS_PHP_TAGS environment variable to true and and exception will be thrown if
`