Laravel is an MVC (Model View Controller) framework. Views separate controller/application logic from presentation logic. The Laravel views are composed of Blade templates.
Blade is a templating engine for Laravel. It was introduced in Laravel 5.1. Blade template files use the .blade.php
file extension and are typically stored in the resources/views
directory.
Blade makes your templates neat and clean. It increases the performance of your application by caching the template files. Blade templates are compiled to plain PHP and are cached until changed.
Blade syntax
Blade has its own syntax for writing PHP code. Here below are some examples where we translate plain PHP code to its Blade counterpart and see how Blade simplifies it.
Example 1: Displaying data
We echo value from a variable in plain PHP as
<?php echo $name; ?>
By enabling PHP short tags we can tidy this up a little.
<?= $name ?>
However there is still room for improvement. Let's have a look at how Blade would handle the same echo statement.
{{ $name }}
You are not limited to displaying the contents of the variables passed to the view. You may also echo the results of any PHP function. In fact, you can put any PHP code you wish inside of a Blade echo statement:
The current UNIX timestamp is {{ time() }}.
Example 2: The PHP Ternary Operator
Before looking at the ternary operator, please note the if/ele
conditional block.
if(isset($val)) {
echo $val;
} else {
echo "default value";
}
We can reduce the above block of code to one statement using the ternary operator (?:). This operator is kind of a shorthand for the if/else
conditional block. We use it to make sure a variable is set, or we return a default value otherwise.
In plain PHP the ternary operator is used as
<?php
echo isset($val) ? $val : "default value";
?>
PHP 7 made it simpler by introducing the Null coalescing operator (??). It returns its first operand if it exists and is not null; otherwise it returns its second operand.
<?php
echo $val ?? "default value";
?>
However there is still room for improvement. Let's have a look at how Blade would handle the same echo statement.
{{ $val ?? "default value" }}
Other examples of Blade syntax would be based on a term called Blade directives. So, let's discuss that in a separate article.
Top comments (0)