An open source free "PHP framework" based on MVC Design Pattern. It is created by Taylor Otwell. Laravel provides expressive and elegant syntax that helps in creating a wonderful web application easily and quickly.
Below are some official packages provided by Laravel
Laravel 5.8.29 is the latest version of Laravel. Here are steps to install and configure Laravel 5.8.29
Lumen is PHP micro framework that built on Laravel's top components. It is created by Taylor Otwell.
It is the perfect option for building Laravel based micro-services and fast REST API's. It's one of the fastest micro-frameworks available.
To display html in laravel you can use below synatax.
{!! $your_var !!}
Composer is PHP dependency manager used for installing dependencies of PHP applications.It allows you to declare the libraries your project depends on and it will manage (install/update) them for you.
It provides us a nice way to reuse any kind of code. Rather than all of us reinventing the wheel over and over, we can instead download popular packages.
To install Laravel with composer run below command on your terminal.
composer create-project Laravel/Laravel your-project-name version
PHP artisan is the command line interface/tool included with Laravel. It provides a number of helpful commands that can help you while you build your application easily. Here are the list of some artisian command.
Use php artisan –version command to check current installed version of Laravel Framework
Usage:
php artisan --version
Aggregate function is a function where the values of multiple rows are grouped together as input on certain criteria to form a single value of more significant meaning or measurements such as a set, a bag or a list.
Below is list of some Aggregates methods provided by Laravel query builder.
Laravel events:
An event is an incident or occurrence detected and handled by the program.Laravel event provides a simple observer implementation, that allow us to subscribe and listen for events in our application.An event is an incident or occurrence detected and handled by the program.Laravel event provides a simple observer implementation, that allows us to subscribe and listen for events in our application.
Below are some events examples in Laravel:-
To turn off or diasble CRSF protection for specific routes in Laravel open "app/Http/Middleware/VerifyCsrfToken.php" file and add following code in it
//add this in your class
private $exceptUrls = ['controller/route1', 'controller/route2'];
//modify this function
public function handle($request, Closure $next)
{
//add this condition
foreach($this->exceptUrls as $route) {
if ($request->is($route)) {
return $next($request);
}
}
return parent::handle($request, $next);}
When you type "PHP artisan" it lists of a few dozen different command options.
Laravel uses Blade Templating Engine.
Blade is the simple, yet powerful templating engine provided with Laravel. Unlike other popular PHP templating engines, Blade does not restrict you from using plain PHP code in your views. In fact, all Blade views are compiled into plain PHP code and cached until they are modified, meaning Blade adds essentially zero overhead to your application. Blade view files use the .blade.php file extension and are typically stored in the resources/views directory.
By default Laravel is configured to use MySQL.In order to change your default database edit your config/database.php and search for ‘default’ => ‘mysql’ and change it to whatever you want (like ‘default’ => ‘sqlite’).
Laravel Migrations are like version control for your database, allowing a team to easily modify and share the application’s database schema. Migrations are typically paired with Laravel’s schema builder to easily build your application’s database schema.
Steps to Generate Migrations in Laravel
Service providers are the central place of all Laravel application bootstrapping. Your own application, as well as all of Laravel’s core services are bootstrapped via service providers.
Service provider basically registers event listeners, middleware, routes to Laravel’s service container.
All service providers need to be registered in providers array of app/config.php file.
To register a service provider follow below steps:
Implicit Controllers allow you to define a single route to handle every action in the controller. You can define it in route.php file with Route: controller method.
Usage :
Route::controller('base URI','<class-name-of-the-controller>');</class-name-of-the-controller>
Whenever we run "composer dump-autoload"
Composer re-reads the composer.json file to build up the list of files to autoload.
One of the most powerful feature of Laravel is its Service Container .
It is a powerful tool for resolving class dependencies and performing dependency injection in Laravel.
Dependency injection is a fancy phrase that essentially means class dependencies are "injected" into the class via the constructor or, in some cases, "setter" methods.
You can use request’s class ip() method to get IP address of user in Laravel.
Usage:public function getUserIp(Request $request){
// Getting ip address of remote user
return $user_ip_address=$request->ip();
}
Laravel’s Contracts are nothing but set of interfaces that define the core services provided by the Laravel framework.
Use the enableQueryLog method: Use the enableQueryLog method:
DB::connection()->enableQueryLog();
You can get an array of the executed queries by using the getQueryLog method:
$queries = DB::getQueryLog();
Laravel Facades provides a static like interface to classes that are available in the application’s service container.
Laravel self ships with many facades which provide access to almost all features of Laravel’s. Laravel Facades serve as "static proxies" to underlying classes in the service container and provides benefits of a terse, expressive syntax while maintaining more testability and flexibility than traditional static methods of classes. All of Laravel’s facades are defined in the IlluminateSupportFacades namespace. You can easily access a Facade like so:
use IlluminateSupportFacadesCache;
Route::get('/cache', function () {
return Cache::get('key');
});
We can use custom table in Laravel by overriding protected $table property of Eloquent. Below is sample uses:
class User extends Eloquent{
protected $table="my_custom_table";
}
You can define fillable attribute by overiding the fillable property of Laravel Eloquent. Here is sample uses
Class User extends Eloquent{
protected $fillable =array('id','first_name','last_name','age');
}
The cursor method allows you to iterate through your database records using a cursor, which will only execute a single query. When processing large amounts of data, the cursor method may be used to greatly reduce your memory usage.
Example Usageforeach (Product::where('name', 'bar')->cursor() as $flight) {
//do some stuff
}
Closures are an anonymous function that can be assigned to a variable or passed to another function as an argument.A Closures can access variables outside the scope that it was created.
Any packages that are pulled from composer is kept in vendor directory of Laravel.
Laravel's compact() function takes each key and tries to find a variable with that same name.If the variable is found, them it builds an associative array.
We kept all controllers in App/Http/Controllers directory
Object-relational Mapping (ORM) is a programming technique for converting data between incompatible type systems in object-oriented programming languages.
To create a new record in the database using Laravel Eloquent, simply create a new model instance, set attributes on the model, then call the save method:
Here is sample Usage.public function saveProduct(Request $request ){
$product = new product;
$product->name = $request->name;
$product->description = $request->name;
$product->save();
}
Auth::User() function is used to get Logged in user info in Laravel.
Usage:-
if(Auth::check()){
$loggedIn_user=Auth::User();
dd($loggedIn_user);
}
Yes, Laravel supports popular caching backends like Memcached and Redis. By default, Laravel is configured to use the file cache driver, which stores the serialized, cached objects in the file system .For large projects it is recommended to use Memcached or Redis.
Named routing is another amazing feature of Laravel framework. Named routes allow referring to routes when generating redirects or Url’s more comfortably.
You can specify named routes by chaining the name method onto the route definition:
Route::get('user/profile', function () {
//
})->name('profile');
You can specify route names for controller actions:
Route::get('user/profile', 'UserController@showProfile')->name('profile');
Once you have assigned a name to your routes, you may use the route's name when generating URLs or redirects via the global route function:
// Generating URLs...
$url = route('profile');
// Generating Redirects...
return redirect()->route('profile');
Laravel Traits are simply a group of methods that you want include within another class. A Trait, like an abstract classes cannot be instantiated by itself.Trait are created to reduce the limitations of single inheritance in PHP by enabling a developer to reuse sets of methods freely in several independent classes living in different class hierarchies.
Laravel Triats Exampletrait Sharable {
public function share($item)
{
return 'share this item';
}
}
You could then include this Trait within other classes like this:
class Post {
use Sharable;
}
class Comment {
use Sharable;
}
Now if you were to create new objects out of these classes you would find that they both have the share() method available:
$post = new Post;
echo $post->share(''); // 'share this item'
$comment = new Comment;
echo $comment->share(''); // 'share this item'
Use below commands to create migration data via artisan.
php artisan make:migration create_users_table
In Programming validations are a handy way to ensure that your data is always in a clean and expected format before it gets into your database. Laravel provides several different ways to validate your application incoming data.By default Laravel’s base controller class uses a ValidatesRequests trait which provides a convenient method to validate all incoming HTTP requests coming from client.You can also validate data in laravel by creating Form Request.
Laravel’s Eloquent ORM is one the most popular PHP ORM (OBJECT RELATIONSHIP MAPPING). It provides a beautiful, simple ActiveRecord implementation to work with your database. In Eloquent each database table has the corresponding MODEL that is used to interact with table and perform a database related operation on the table.
Sample Model Class in Laravel.namespace App;
use Illuminate\Database\Eloquent\Model;
class Users extends Model
{
}
Answers to this question is NO.Laravel application’s are 100% secure (depends what you mean by "secure" as well), in terms of things you can do to prevent unwanted data/changes done without the user knowing.
Larevl have inbuilt CSRF security, input validations and encrypted session/cookies etc. Also, Laravel uses a high encryption level for securing Passwords.
With every update, there’s the possibility of new holes but you can keep up to date with Symfony changes and security issues on their site.
Yes,Laravel supports php 7
Active Record Implementation is an architectural pattern found in software engineering that stores in-memory object data in relational databases. Active Record facilitates the creation and use of business objects whose data is required to persistent in the database. Laravel implements Active Records by Eloquent ORM. Below is sample usage of Active Records Implementation is Laravel.
$product = new Product;
$product->title = 'Iphone 6s';
$product->save();
Active Record style ORMs map an object to a database row. In the above example, we would be mapping the Product object to a row in the products table of database.
Laravel support 7 types of table relationships, they are
Laravel's database query builder provides a suitable, easy interface to creating and organization database queries. It can be used to achieve most database operations in our application and works on all supported database systems. The Laravel query planner uses PDO restriction necessary to keep our application against SQL injection attacks.
Laravel Elixir provides a clean, fluent API for defining basic Gulp tasks for your Laravel application. Elixir supports common CSS and JavaScript preprocessors like Sass and Webpack. Using method chaining, Elixir allows you to fluently define your asset pipeline.
You can enable maintenance mode in Laravel 5, simply by executing below command.
//To enable maintenance mode
php artisan down
//To disable maintenance mode
php artisan up
Currently Laravel supports four major databases, they are :-
You may access the current application environment via the environment method.
$environment = App::environment(); dd($environment);
Laravel's dd() is a helper function, which will dump a variable's contents to the browser and halt further script execution.
As HTML forms does not supports PUT, PATCH or DELETE request. So, when defining PUT, PATCH or DELETE routes that are called from an HTML form, you will need to add a hidden _method field to the form. The value sent with the _method field will be used as the HTTP request method:
<form action="/foo/bar" method="POST">
<input type="hidden" name="_method" value="PUT">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>
To generate the hidden input field _method, you may also use the method_field helper function:
<?php echo method_field('PUT'); ?>
In Blade template you can write it as below
{{ method_field('PUT') }}
You can assign multiple middleware to Laravel route by using middleware method.
Example:// Assign multiple multiple middleware to Laravel to specific route
Route::get('/', function () {
//
})->middleware('firstMiddleware', 'secondMiddleware');
// Assign multiple multiple middleware to Laravel to route groups
Route::group(['middleware' => ['firstMiddleware','secondMiddleware']], function () {
//
});
This post is submitted by one of our members. You may submit a new post here.
Laravel interview Questions © 2019 - Designed by PSD to HTML