# What is Laravel?
Laravel, created by Taylor Otwell, is a modern web application MVC framework. It is the most popular open-source framework for PHP. It is highly inspired by other frameworks like Ruby on Rails, ASP.NET MVC, CodeIgniter and Sinatra. Since it only extracts the best from these frameworks, Laravel is emerging as one of the powerful and massive languages of this era.
Laravel proposes less coding time and more development utility for bringing the applications together neatly. It aims at making the life of developers easy by providing ready-to-use common tasks like authentication, routing, caching, etc. It provides a strong and secured foundation for projects of any scale. It also has a large community of contributing, ready-to-help developers with numerous libraries and packages.
Learning Laravel can be a cakewalk for developers and aspirants familiar with PHP language and its advance usages.
# What is MVC?
MVC is an architectural structure that many frameworks implement. (Laravel being one of them!). It is a three logical leg-tool:
• M – Model
• V – View
• C – Controller
Each of these element performs a special function in application’s request-response life-cycle and are bundled together tightly.
It helps us create re-usable chunks of code, thus building a scalable structured programming. Maintenance and re-building any application becomes a lot easier too.
Let us now see each of this components separately:
It is the business layer of the paradigm. Model is also known as data repository of the MVC architecture. It consists of the logical structure of data. MVC Model represents the data that is usually exchanged between View and Controller. It may be a full-fledged database or a simple excel sheet.
View is the layer that user interacts with. It displays data on the screen. MVC View represents all the visible components on the screen that a user can respond to. Hence it depicts the User Interface of the application.
Controller represents Application layer in MVC. It connects the other two layers (Model and View). The controller serves as a means of communication between the database and user interface. It receives a request from the user (via View), processes it and sends the relevant data (from Model) back.
Fortunately, Laravel doesn’t have any fancy names for each of these elements. They are called Model, View and Controller just as their meaning suggests above.
# Features of Laravel
Laravel has a wide variety of features which are available out-of-the-box for instant implementation. Let ‘s have a quick look at some of them:
It serves as an assistant for your Laravel projects. It is a command-line tool bundled with Laravel which can perform plenty of helpful commands.
It is the URI route system in Laravel. HTTP routes can be mentioned in an elegant and meaningful way. Laravel also provides required security for phishing control with the help of CSRF Token.
• Config Management
Managing database connections or server ports isn’t cumbersome anymore. Laravel provides a simple and lucid way for these.
• Migrations and Seeding Database
Migration stores the database schema in a file structure. This makes updating (removing/adding fields) super easy. Laravel Migration also has an ad-on feature which is database version control. Laravel also supports seeding the database with data.
• ORM (Object Relational Mapper)
Laravel provides this robust feature which gives pleasant experience while working with a database. It simplifies the database queries.
• Blade Template Engine
Blade is a lightweight templating language by Laravel. It is so powerful, yet easy to learn. It’s syntax to write PHP and HTML together and using it as a template makes its usage multi-purpose and dynamic.
• Mail Support
Laravel makes drafting and sending mails easy as never before. It provides ready-to-use drivers for SMTP, SparkPost, Amazon SES, Mailgun, etc.
• Authentication and Password Recovery
Laravel can set up both Authentication and Password Recovery functionality with the help of a single artisan command. (Yes you read that right!)
• Redis Support
Laravel supports Redis, an open-source data-structure which stores data in a key-value pair. It provides an interface for publish-subscribe service.
• Command and Event support for Automation
User-defined commands and events can be created for conditional and automated tasks in Laravel.
Laravel has some in-built security features. It uses Bycrypt Hash Algorithm to create encrypted passwords and is hashed(#) before saving in the database. Also, SQL statements used by Laravel makes injection attacks impossible.
We just discussed some basics of Laravel starting from the primary question – What is Laravel? We expanded our knowledge about MVC Architecture and discussed some features of Laravel. Lately, a new version 5.6 was released. You can also check the new features of Laravel 5.6.