Friday, July 21, 2017

Laravel Interview questions and answers

1. What is Laravel

Laravel is free open source “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.


2. List some official packages provided by Laravel.

Below are some official packages provided by Laravel
  • Cashier :Laravel Cashier provides an expressive, fluent interface to Stripe’s and Braintree’s subscription billing services. It handles almost all of the boilerplate subscription billing code you are dreading writing. In addition to basic subscription management, Cashier can handle coupons, swapping subscription, subscription “quantities”, cancellation grace periods, and even generate invoice PDFs.Read More
  • Envoy :Laravel Envoy provides a clean, minimal syntax for defining common tasks you run on your remote servers. Using Blade style syntax, you can easily setup tasks for deployment, Artisan commands, and more. Currently, Envoy only supports the Mac and Linux operating systems.
  • Passport :Laravel makes API authentication a breeze using Laravel Passport, which provides a full OAuth2 server implementation for your Laravel application in a matter of minutes. Passport is built on top of the League OAuth2 server that is maintained by Alex Bilbie.
  • Scout :Laravel Scout provides a simple, driver based solution for adding full-text search to your Eloquent models. Using model observers, Scout will automatically keep your search indexes in sync with your Eloquent records
  • Socialite :Laravel Socialite provides an expressive, fluent interface to OAuth authentication with Facebook, Twitter, Google, LinkedIn, GitHub and Bitbucket. It handles almost all of the boilerplate social authentication code you are dreading writing.

3. What is Lumen?


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.

4. List out some benefits of Laravel over other Php frameworks ?

  1. Setup and customization process is  easy and fast as compared to others.
  2. Inbuilt Authentication System.
  3. Supports multiple file systems
  4. Pre-loaded packages like Laravel Socialite, Laravel cashier, Laravel elixir,Passport,Laravel Scout.
  5. Eloquent ORM (Object Relation Mapping) with PHP active record implementation. 
  6. Built in command line tool “Artisan” for creating a code skeleton ,database structure and build their migration.

5. List out some latest features of Laravel Framework

  • Inbuilt CRSF (cross-site request forgery ) Protection.
    Laravel provided an easy way to protect your website from cross-site request forgery (CSRF) attacks.
    Cross-site request forgeries are malicious attack that forces an end user to execute unwanted actions on a web application in which they’re currently authenticated.
  • Inbuilt paginations Laravel provides an easy approach to implement paginations in your application. Laravel’s paginator is integrated with the query builder and Eloquent ORM and provides convenient, easy-to-use pagination of database.
  • Reverse Routing
    In Laravel reverse routing is generating URL’s based on route declarations.Reverse routing makes your application so much more flexible.
  • Query builder:
    Laravel’s database query builder provides a convenient, fluent interface to creating and running database queries. It can be used to perform most database operations in your application and works on all supported database systems.
    The Laravel query builder uses PDO parameter binding to protect your application against SQL injection attacks. There is no need to clean strings being passed as bindings.
  • Route caching
  • Database Migration
  • IOC (Inverse of Control) Container Or service container.

6. What is composer ?

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.

7. How to install Laravel via composer ?

To install Laravel with composer run below command on your terminal.

composer create-project Laravel/Laravel your-project-name version

8. What is php artisan. List out some artisan commands ?

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.
  • php artisan list
  • php artisan help
  • php artisan tinker
  • php artisan make
  • php artisan –versian
  • php artisan make modal modal_name
  • php artisan make controller controller_name 

9. How to check current installed version of Laravel ?

Use php artisan –version command to check current installed version of Laravel Framework
Usage:
php artisan --version

10. List some Aggregates methods provided by query builder in Laravel ?

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.
  • count()
    Usage:$products = DB::table(‘products’)->count();
  • max()
    Usage:$price = DB::table(‘orders’)->max(‘price’);
  • min()
    Usage:$price = DB::table(‘orders’)->min(‘price’);
  • avg()
    Usage:$price = DB::table(‘orders’)->avg(‘price’);
  • sum()
    Usage: $price = DB::table(‘orders’)->sum(‘price’);

11. Explain Events in Laravel ?


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:-
  • A new user has registered
  • A new comment is posted
  • User login/logout
  • New product is added.

12. How to turn off CRSF protection for a route 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);}

13. What happens when you type “php artisan” in the command line?

When you type “PHP artisan” it lists of a few dozen different command options.

14. Which template engine Laravel use ?


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.

15. How can you change your default database type ?

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’).

16. Explain Migrations in Laravel ? How can you generate migration .

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

  1. To create a migration, use the make:migration Artisan command
  2. When you create a migration file, Laravel stores it in /database/migrations directory.
  3. Each migration file name contains a timestamp which allows Laravel to determine the order of the migrations.
  4. Open the command prompt or terminal depending on your operating system.


17. What are service providers 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.

18. How do you register a Service Provider?

To register a service provider follow below steps

Open to config/app.php
Find ‘providers’ array of the various ServiceProviders.
Add namespace ‘Iluminate\Abc\ABCServiceProvider:: class,’ to the end of the array.
19. What are Implicit Controllers ?

                

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','');

20. What does “composer dump-autoload” do?

Whenever we run “composer dump-autoload”
Composer re-reads the composer.json file to build up the list of files to autoload.

21. Explain Laravel service container ?


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.

22. How can you get users IP address in Laravel ?

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();

}

23. How to enable query log in Laravel?


Use the enableQueryLog method: Use the enableQueryLog method:
DB::connection()->enableQueryLog();
You can get array of the executed queries by using getQueryLog method:
$queries = DB::getQueryLog(); 

24. What are Laravel Facades?


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');
}); 

25. How to use custom table in Laravel Modal ?


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";

}  

26. How can you define Fillable Attribute in a Laravel Modal ?


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');
}

27. What is the purpose of the Eloquent cursor() method in Laravel ?



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 Usage
foreach (Product::where('name', 'bar')->cursor() as $flight) {

 //do some stuff

}

28. What are Closures in laravel ?


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.

29. What is Kept in vendor directory of Laravel ?


Any packages that are pulled from composer is kept in vendor directory of Laravel.

30. What are Laravel Contracts ?

Laravel’s Contracts are nothing but set of interfaces that define the core services provided by the Laravel framework.
You can read about How to Laravel contracts by How to use Laravel facade

31. What does PHP compact function do ?


PHP 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.

32. In which directory controllers are located in Laravel ?


We kept all controllers in App/Http/Controllers directory

33. Define ORM ?


Object-relational Mapping (ORM) is a programming technique for converting data between incompatible type systems in object-oriented programming languages.

34. How to create a record in Laravel using eloquent ?


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(); 

35. How to get Logged in user info in Laravel ?


Auth::User() function is used to get Logged in user info in Laravel.
Usage:-
 
if(Auth::check()){
  $loggedIn_user=Auth::User();
  dd($loggedIn_user);
}  

36. Does Laravel support caching?


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.

37. What are named routes in Laravel ?


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');

38. What are traits in Laravel ?


PHP 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.
Here is an example of trait.
trait 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'

39. How to create migration via artisan ?


Use below commands to create migration data via artisan.
// creating Migration
php artisan make:migration create_users_table

40. Explain validations in laravel?


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.

No comments:

security header validate

  HTTP Security Headers Check Tool - Security Headers Response (serpworx.com)