SlideShare a Scribd company logo
To My Presentation on
Laravel Development
Introduction
Muhammad Mahdi Hasan
 B.Sc. in Computer Science & Engineering
from International University of Business
Agriculture & Technology
 Currently working as a laravel developer in
Creative Software Ltd.
1st part
I. Laravel History, Environment Setup & Laravel
Installation
II. MVC architecture, Basic Authentication & Routing
III. Laravel Template Mastering & CRUD Operation
IV. Laravel Role Implementation, File storage &
Middleware
V. Eloquent ORM & Query Builder, Cart, Session &
Others
Content
 Implement laravel project & database connection
 Know how MCV architecture pattern works
 Know how to create, read, update & delete data
from MySql database with laravel project
 Basic authentication & role implementation
 Laravel project upload online demo
Our Goals
Laravel History,
Environment Setup
&
Laravel Installation
Laravel is a free, open-source PHP web
framework, created by Taylor Otwell and
intended for the development of web
applications following the model–view–
controller (MVC) architectural pattern.
What Is Laravel ?
Developer(s) Taylor Otwell
Initial release June 2011; 8 years ago
[1]
Stable release 6.9.0
[2]
/ 2019-12-19[±]
Written in PHP
Type Web framework
License MIT License
Website laravel.com
• The source code of Laravel is hosted on
GitHub and licensed under the terms of MIT
License.
History
Taylor Otwell created Laravel as an attempt to
provide a more advanced alternative to the
CodeIgniter framework, which did not provide certain
features such as built-in support for user
authentication and authorization. Laravel's first beta
release was made available on June 9, 2011,
followed by the Laravel 1 release later in the same
month.
Laravel development (Laravel History, Environment Setup & Laravel Installation MVC architecture, Basic Authentication)
Why Should We Choose
Laravel?
 Authorization Technique
 Object-Oriented Libraries
 Artisan
 MVC Support
 Security
 Database Migration
 Great Tutorials (Laracasts)
 Blade Templating Engine
 Responsible Interface
 Automatic Package Discovery
Installing
Laravel
Installation
Server Requirements
Install Composer
Install Laravel
Configuration
 PHP >= 7.2.0
 BCMath PHP Extension
 Ctype PHP Extension
 JSON PHP Extension
 Mbstring PHP Extension
 OpenSSL PHP Extension
 PDO PHP Extension
 Tokenizer PHP Extension
 XML PHP Extension
Server Requirements
Installing Composer
Laravel utilizes Composer to manage its
dependencies. So, before using Laravel,
make sure you have Composer installed
on your machine.
Installing Laravel
There Are 2 ways to install laravel project:
• Via Laravel Installer
• Via Composer Create-Project
• Via Laravel Installer
First, download the Laravel installer using Composer
than :
composer global require laravel/installer
laravel new blog
• Via Composer Create-Project
Alternatively, you may also install Laravel by issuing
the Composer create-project command in your
terminal:
composer create-project --prefer-dist laravel/laravel blog
• Note
Above commands will install the latest versions of laravel so if
you want to specify a version, you can use composer:
composer create-project laravel/laravel=5.8 myapp
Configuration
Public Directory
Configuration Files
Directory Permissions
Application Key
Additional Configuration
1st part End
2nd part
MVC architecture,
Basic Authentication
&
Routing
What Is MVC ?
The Model-View-Controller (MVC) is an
architectural pattern that separates an
application into three main logical
components: the model, the view, and the
controller. Each of these components are
built to handle specific development aspects
of an application. MVC is one of the most
frequently used industry-standard web
development framework to create scalable
and extensible projects.
Laravel development (Laravel History, Environment Setup & Laravel Installation MVC architecture, Basic Authentication)
Basic Authentication
Install the laravel/ui Composer package and run
php artisan ui vue --auth in a fresh Laravel
application. After migrating your database, navigate
your browser to http://your-app.test/register or any
other URL that is assigned to your application.
These commands will take care of scaffolding your
entire authentication system!
In laravel, there are 2 routes file web.php and api.php.
 web.php file is used for registering all the web
routes like -
mywebsite.com/about
or
mywebsite.com/contact
 api.php is used for registering all the routes related
to an api. We are only using web routes so don’t
worry about any api routes.
Routing
 Route:
Route::get('/', function () { return view('welcome'); });
Route::post('/product-create', 'ProductController@create')
->name('productcreate');
Route::get('/product-index','ProductController@index')->name('productindex');
Route::post('/product-update', 'ProductController@update')
->name('productupdate');
Route::get('/product-edit', 'ProductController@edit')->name('productedit');
Route::get('/product-delete', 'ProductController@delete')
->name('productdelete');
Laravel Project
Structure
app −This directory contains the core code of the
application.
bootstrap −This directory contains the application
bootstrapping script.
config −This directory contains configuration files of
application.
database −This folder contains your database migration and
seeds.
public −This is the application’s document root. It starts the
Laravel application. It also contains the assets of the
application like JavaScript, CSS, Images, etc.
resources −This directory contains raw assets such as the
LESS & Sass files, localization and language files, and
Templates that are rendered as HTML.
storage −This directory contains App storage, like file
uploads etc. Framework storage (cache), and
application-generated logs.
test −This directory contains various test cases.
vendor −This directory contains composer dependencies.
2nd part End
3rd part
Template Mastering
&
CRUD Operation
Template Mastering
The Blade Master Template is where we can place all the
boilerplate that all pages will typically make use of. Most times
you can name this file something like master.blade.php. All
view files that you would like to have make use of your master
page can now use the @extends keyword to do so. Since our
master page has the name of master.blade.php, in our view
files we will use @extends('master'). You can name the
master page something else if you want to, you’ll just need to
make sure to extend the other name. For example if your
master page is default.blade.php, you can use
@extends(‘default‘) in your view files.
CRUD Operation
$ php artisan make:model Product
protected $fillable = [ 'field_1', 'field_2', ‘field_3‘ ];
Migration :
Schema::create('products', function (Blueprint $table)
{
$table->increments('id');
$table->string('field_1');
$table->text('field_2');
$table->integer(field_3');
$table->timestamps();
});
$ php artisan migrate
$ php artisan make:migration create_products_table
Model :
$ php artisan make:controller ProductController
public function index()
{
return view('product_index');
}
public function create()
{
$data = new Product ();
$data->field_1 = $request->field_1;
$data->field_2 = $request->field_2;
$data->field_3 = $request->field_3;
$data->save();
return redirect('/products');
}
Controllers :
public function edit($id)
{
$product = Product::find($id);
return response()->json($product);
}
public function update()
{
$data = Product::find($request->id);
$data->field_1 = $request->field_1;
$data->field_2 = $request->field_2;
$data->field_3 = $request->field_3;
$data->save();
return redirect()->back();
}
Controllers :
Controllers :
public function delete($id)
{
$product = Product::find($id);
$product->delete();
return redirect()->back();
}
3rd part End
4th part
Role
Implementation,
File storage
& Middleware
In many web projects, we have different user roles
interacting with the system. Each role has its own
permission. Every feature of the system can be enabled
or disabled for these roles. We can define users
permissions in our codes and check if they are
authorized to do the requested action or not. A better
way, mostly in more flexible systems, is to create a role
and authorization management system. I’ll explain how
to implement a Laravel authorization system and define
users permission based on their roles.
Implementing User Roles into a Laravel Application. User
Roles allow us to control access to a page or feature within
an application.
Role Implementation
Gate:
Gates are Closures that determine if a user is authorized to
perform a given action and are typically defined in the App
Providers AuthServiceProvider class using the Gate facade.
public function boot(GateContract $gate)
{
$this->registerPolicies($gate);
$gate->define('isAdmin', function($user)
{
return $user->user_type == '0';
});
$gate->define('isCompany', function($user)
{
return $user->user_type == '3';
});
$gate->define('isUser', function($user)
{
return $user->user_type == '1';
});
}
Store a File
$this->validate($request,[ 'image'=> 'required|image|mimes:jpeg,png,jpg|' ]);
if ($request->hasFile('image'))
{
$image = $request->file('image');
$imagename = uniqid().$image->getClientOriginalName();
$uploadPath = 'public/Product/';
$image->move($uploadPath,$imagename);
$imageUrl = $uploadPath.$imagename;
}
else { $imageUrl = null; }
$post = new Product();
$post->title = $request->name;
$post->image = $imageUrl;
$post->save();
return redirect()->back();
Middleware provide a convenient mechanism for
filtering HTTP requests entering your application.
For example, Laravel includes a middleware that
verifies the user of your application is authenticated.
If the user is not authenticated, the middleware will
redirect the user to the login screen. However, if the
user is authenticated, the middleware will allow the
request to proceed further into the application.
Middleware
4th part End
5th part
Eloquent ORM
&
Query Builder
The Eloquent ORM included with Laravel
provides a beautiful, simple Active Record
implementation for working with your
database. Each database table has a
corresponding "Model" which is used to
interact with that table. Models allow you to
query for data in your tables, as well as
insert new records into the table.
Eloquent ORM
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.
Query Builder
Cart, Session
&
Others
Laravel Shopping cart
Run the Composer require command from the Terminal:
composer require gloudemans/shoppingcart
GloudemansShoppingcartShoppingcartServiceProvider::class
'Cart' => GloudemansShoppingcartFacadesCart::class,
Check & and optionally add a new line to the aliases array:
Check & add a new line to the providers array:
Gloudemans Shoppingcart is a simple shoppingcart
implementation for Laravel.
public function addtocart(Request $request)
{
$products=Product::find($request->id);
Cart::add([
'id'=>$request->id,
'qty'=>$request->qty,
'name'=>$products->productname,
'price'=>$products->price,
'options' =>
[ 'image' => $products->image ]
]);
return back()->withInput();
}
public function cartshow()
{ $cartProduct = Cart::content();
$cartCount = Cart::count();
return view(‘ViewPage',compact(‘cartProduct’,‘cartCount’);
}
public function update(Request $request)
{
Cart::update($request->rowId, $request->qty);
return redirect()->back();
}
public function delete($id)
{
Cart::remove($id);
return redirect()->back();
}
Cart::destroy();
Cart::total();
Cart::subtotal();
Cart::count();
Session
Since HTTP driven applications are stateless, sessions provide a way to
store information about the user across multiple requests. Laravel ships
with a variety of session backends that are accessed through an
expressive, unified API. Support for popular backends such as
Memcached, Redis, and databases is included out of the box.
The session configuration file is stored at config/session.php. Be sure to
review the options available to you in this file.
@if(session(‘message'))
<div class="alert alert-dismissible alert-success">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong>{{ session(‘message') }}</strong>
</div>
@endif
5th part End
References :
 https://laravel.com/
 https://en.wikipedia.org/wiki/Laravel/
 https://laracasts.com/
 https://medium.com/techcompose/
 https://github.com/Crinsane/LaravelShoppingcart
 https://blog.pusher.com/laravel-mvc-use/
 https://getcomposer.org/download/
 https://laravel.com/docs/5.8/authentication
 https://www.tutorialspoint.com/laravel/index.htm
Laravel development (Laravel History, Environment Setup & Laravel Installation MVC architecture, Basic Authentication)
Laravel development (Laravel History, Environment Setup & Laravel Installation MVC architecture, Basic Authentication)

More Related Content

What's hot (20)

ODP
Projects In Laravel : Learn Laravel Building 10 Projects
Sam Dias
 
PPTX
Laravel Tutorial PPT
Piyush Aggarwal
 
PDF
Web Development with Laravel 5
Soheil Khodayari
 
PDF
Why Laravel?
Jonathan Goode
 
PPTX
Laravel
tanveerkhan62
 
PDF
Model View Controller (MVC)
Javier Antonio Humarán Peñuñuri
 
PPTX
Laravel Eloquent ORM
Ba Thanh Huynh
 
PPTX
What-is-Laravel-23-August-2017.pptx
AbhijeetKumar456867
 
PPTX
Apache tomcat
Shashwat Shriparv
 
PPTX
ASP.NET MVC.
Ni
 
PPTX
Spring boot
Pradeep Shanmugam
 
PPTX
Spring boot
Gyanendra Yadav
 
PDF
Spring boot introduction
Rasheed Waraich
 
PPTX
Introduction to xampp
Jin Castor
 
PPTX
Angular Data Binding
Jennifer Estrada
 
PPTX
Hibernate ppt
Aneega
 
PPTX
Soap, wsdl et uddi
miraprincesse
 
PPTX
Lecture 2_ Intro to laravel.pptx
SaziaRahman
 
PDF
2 TomcatによるWebアプリケーションサーバ構築 第1章 Tomcatのインストールと設定
Enpel
 
Projects In Laravel : Learn Laravel Building 10 Projects
Sam Dias
 
Laravel Tutorial PPT
Piyush Aggarwal
 
Web Development with Laravel 5
Soheil Khodayari
 
Why Laravel?
Jonathan Goode
 
Laravel
tanveerkhan62
 
Model View Controller (MVC)
Javier Antonio Humarán Peñuñuri
 
Laravel Eloquent ORM
Ba Thanh Huynh
 
What-is-Laravel-23-August-2017.pptx
AbhijeetKumar456867
 
Apache tomcat
Shashwat Shriparv
 
ASP.NET MVC.
Ni
 
Spring boot
Pradeep Shanmugam
 
Spring boot
Gyanendra Yadav
 
Spring boot introduction
Rasheed Waraich
 
Introduction to xampp
Jin Castor
 
Angular Data Binding
Jennifer Estrada
 
Hibernate ppt
Aneega
 
Soap, wsdl et uddi
miraprincesse
 
Lecture 2_ Intro to laravel.pptx
SaziaRahman
 
2 TomcatによるWebアプリケーションサーバ構築 第1章 Tomcatのインストールと設定
Enpel
 

Similar to Laravel development (Laravel History, Environment Setup & Laravel Installation MVC architecture, Basic Authentication) (20)

PPTX
What-is-Laravel and introduciton to Laravel
PraveenHegde20
 
ODP
Laravel 5.3 - Web Development Php framework
Swapnil Tripathi ( Looking for new challenges )
 
PDF
Laravel Web Development: A Comprehensive Guide
deep9753ak
 
PPTX
Laravel 5
Sudip Simkhada
 
PDF
Step by Step Guide to Build the Laravel Web App.pdf
Marrie Morris
 
PPTX
introduction to Laravel and its Basic and origin
Karthik Rohan
 
PPTX
Laravel
Dyuti Islam
 
PDF
MidwestPHP 2016 - Adventures in Laravel 5
Joe Ferguson
 
PPT
Laravel & Composer presentation - extended
Cvetomir Denchev
 
PDF
Laravel tutorial
Broker IG
 
PPTX
Introduction to Laravel Framework (5.2)
Viral Solani
 
PDF
Object Oriented Programming with Laravel - Session 2
Shahrzad Peyman
 
PDF
Top Strategies for Effective Custom Laravel Development.pdf
Shiv Technolabs
 
PDF
Memphis php 01 22-13 - laravel basics
Joe Ferguson
 
PDF
Laravel 4 presentation
Abu Saleh Muhammad Shaon
 
PPT
Web service with Laravel
Abuzer Firdousi
 
PDF
Web services with laravel
Confiz
 
PPT
Laravel & Composer presentation - WebHostFace
Cvetomir Denchev
 
PDF
Laravel intake 37 all days
Ahmed Abd El Ftah
 
DOCX
Laravel
biplob04
 
What-is-Laravel and introduciton to Laravel
PraveenHegde20
 
Laravel 5.3 - Web Development Php framework
Swapnil Tripathi ( Looking for new challenges )
 
Laravel Web Development: A Comprehensive Guide
deep9753ak
 
Laravel 5
Sudip Simkhada
 
Step by Step Guide to Build the Laravel Web App.pdf
Marrie Morris
 
introduction to Laravel and its Basic and origin
Karthik Rohan
 
Laravel
Dyuti Islam
 
MidwestPHP 2016 - Adventures in Laravel 5
Joe Ferguson
 
Laravel & Composer presentation - extended
Cvetomir Denchev
 
Laravel tutorial
Broker IG
 
Introduction to Laravel Framework (5.2)
Viral Solani
 
Object Oriented Programming with Laravel - Session 2
Shahrzad Peyman
 
Top Strategies for Effective Custom Laravel Development.pdf
Shiv Technolabs
 
Memphis php 01 22-13 - laravel basics
Joe Ferguson
 
Laravel 4 presentation
Abu Saleh Muhammad Shaon
 
Web service with Laravel
Abuzer Firdousi
 
Web services with laravel
Confiz
 
Laravel & Composer presentation - WebHostFace
Cvetomir Denchev
 
Laravel intake 37 all days
Ahmed Abd El Ftah
 
Laravel
biplob04
 
Ad

More from Dilouar Hossain (20)

PPTX
Digital Marketing Trainer Interview Overview.pptx
Dilouar Hossain
 
PPTX
Future lab institute plan
Dilouar Hossain
 
PPTX
Welcome to our presentation
Dilouar Hossain
 
PPTX
Pharmacy management software presentation overview
Dilouar Hossain
 
PPTX
Training overview on digital marketing
Dilouar Hossain
 
PPTX
How to work zoom meeting apps | zoom cloud meetings
Dilouar Hossain
 
PPTX
Digital marketing Tips (Facebook, Linkedin, Twitter Marketing)
Dilouar Hossain
 
PPTX
Web development (Wordpress)
Dilouar Hossain
 
PPTX
Internship Training overview
Dilouar Hossain
 
PPTX
My life style of Dilouar Hossain
Dilouar Hossain
 
PPTX
Career guideline for freelancers By Dilouar Hossain
Dilouar Hossain
 
PPTX
Welcome to creative pos
Dilouar Hossain
 
PPTX
Welcome to creative Software in Bangladesh
Dilouar Hossain
 
PPT
Regular expressions and languages pdf
Dilouar Hossain
 
PPT
Theory of computing pdf
Dilouar Hossain
 
PPTX
Batch operating system
Dilouar Hossain
 
PPT
Two phase commit protocol in dbms
Dilouar Hossain
 
PPTX
High pass filter with analog electronic
Dilouar Hossain
 
PPTX
Dc generator with machine 2
Dilouar Hossain
 
PPTX
Dc generator with machine 2
Dilouar Hossain
 
Digital Marketing Trainer Interview Overview.pptx
Dilouar Hossain
 
Future lab institute plan
Dilouar Hossain
 
Welcome to our presentation
Dilouar Hossain
 
Pharmacy management software presentation overview
Dilouar Hossain
 
Training overview on digital marketing
Dilouar Hossain
 
How to work zoom meeting apps | zoom cloud meetings
Dilouar Hossain
 
Digital marketing Tips (Facebook, Linkedin, Twitter Marketing)
Dilouar Hossain
 
Web development (Wordpress)
Dilouar Hossain
 
Internship Training overview
Dilouar Hossain
 
My life style of Dilouar Hossain
Dilouar Hossain
 
Career guideline for freelancers By Dilouar Hossain
Dilouar Hossain
 
Welcome to creative pos
Dilouar Hossain
 
Welcome to creative Software in Bangladesh
Dilouar Hossain
 
Regular expressions and languages pdf
Dilouar Hossain
 
Theory of computing pdf
Dilouar Hossain
 
Batch operating system
Dilouar Hossain
 
Two phase commit protocol in dbms
Dilouar Hossain
 
High pass filter with analog electronic
Dilouar Hossain
 
Dc generator with machine 2
Dilouar Hossain
 
Dc generator with machine 2
Dilouar Hossain
 
Ad

Recently uploaded (20)

PPTX
Neurodivergent Friendly Schools - Slides from training session
Pooky Knightsmith
 
PPTX
A PPT on Alfred Lord Tennyson's Ulysses.
Beena E S
 
PPTX
grade 5 lesson matatag ENGLISH 5_Q1_PPT_WEEK4.pptx
SireQuinn
 
PDF
ARAL_Orientation_Day-2-Sessions_ARAL-Readung ARAL-Mathematics ARAL-Sciencev2.pdf
JoelVilloso1
 
PDF
LAW OF CONTRACT (5 YEAR LLB & UNITARY LLB )- MODULE - 1.& 2 - LEARN THROUGH P...
APARNA T SHAIL KUMAR
 
PDF
The dynastic history of the Chahmana.pdf
PrachiSontakke5
 
PDF
0725.WHITEPAPER-UNIQUEWAYSOFPROTOTYPINGANDUXNOW.pdf
Thomas GIRARD, MA, CDP
 
PDF
CONCURSO DE POESIA “POETUFAS – PASSOS SUAVES PELO VERSO.pdf
Colégio Santa Teresinha
 
PPTX
2025 Winter SWAYAM NPTEL & A Student.pptx
Utsav Yagnik
 
PPT
Talk on Critical Theory, Part II, Philosophy of Social Sciences
Soraj Hongladarom
 
PDF
Generative AI: it's STILL not a robot (CIJ Summer 2025)
Paul Bradshaw
 
PDF
Lesson 2 - WATER,pH, BUFFERS, AND ACID-BASE.pdf
marvinnbustamante1
 
PPTX
Cultivation practice of Litchi in Nepal.pptx
UmeshTimilsina1
 
PPTX
How to Convert an Opportunity into a Quotation in Odoo 18 CRM
Celine George
 
PDF
The History of Phone Numbers in Stoke Newington by Billy Thomas
History of Stoke Newington
 
PDF
Dimensions of Societal Planning in Commonism
StefanMz
 
PPTX
Growth and development and milestones, factors
BHUVANESHWARI BADIGER
 
PPTX
ASRB NET 2023 PREVIOUS YEAR QUESTION PAPER GENETICS AND PLANT BREEDING BY SAT...
Krashi Coaching
 
PDF
Reconstruct, Restore, Reimagine: New Perspectives on Stoke Newington’s Histor...
History of Stoke Newington
 
PDF
DIGESTION OF CARBOHYDRATES,PROTEINS,LIPIDS
raviralanaresh2
 
Neurodivergent Friendly Schools - Slides from training session
Pooky Knightsmith
 
A PPT on Alfred Lord Tennyson's Ulysses.
Beena E S
 
grade 5 lesson matatag ENGLISH 5_Q1_PPT_WEEK4.pptx
SireQuinn
 
ARAL_Orientation_Day-2-Sessions_ARAL-Readung ARAL-Mathematics ARAL-Sciencev2.pdf
JoelVilloso1
 
LAW OF CONTRACT (5 YEAR LLB & UNITARY LLB )- MODULE - 1.& 2 - LEARN THROUGH P...
APARNA T SHAIL KUMAR
 
The dynastic history of the Chahmana.pdf
PrachiSontakke5
 
0725.WHITEPAPER-UNIQUEWAYSOFPROTOTYPINGANDUXNOW.pdf
Thomas GIRARD, MA, CDP
 
CONCURSO DE POESIA “POETUFAS – PASSOS SUAVES PELO VERSO.pdf
Colégio Santa Teresinha
 
2025 Winter SWAYAM NPTEL & A Student.pptx
Utsav Yagnik
 
Talk on Critical Theory, Part II, Philosophy of Social Sciences
Soraj Hongladarom
 
Generative AI: it's STILL not a robot (CIJ Summer 2025)
Paul Bradshaw
 
Lesson 2 - WATER,pH, BUFFERS, AND ACID-BASE.pdf
marvinnbustamante1
 
Cultivation practice of Litchi in Nepal.pptx
UmeshTimilsina1
 
How to Convert an Opportunity into a Quotation in Odoo 18 CRM
Celine George
 
The History of Phone Numbers in Stoke Newington by Billy Thomas
History of Stoke Newington
 
Dimensions of Societal Planning in Commonism
StefanMz
 
Growth and development and milestones, factors
BHUVANESHWARI BADIGER
 
ASRB NET 2023 PREVIOUS YEAR QUESTION PAPER GENETICS AND PLANT BREEDING BY SAT...
Krashi Coaching
 
Reconstruct, Restore, Reimagine: New Perspectives on Stoke Newington’s Histor...
History of Stoke Newington
 
DIGESTION OF CARBOHYDRATES,PROTEINS,LIPIDS
raviralanaresh2
 

Laravel development (Laravel History, Environment Setup & Laravel Installation MVC architecture, Basic Authentication)

  • 1. To My Presentation on Laravel Development
  • 2. Introduction Muhammad Mahdi Hasan  B.Sc. in Computer Science & Engineering from International University of Business Agriculture & Technology  Currently working as a laravel developer in Creative Software Ltd.
  • 4. I. Laravel History, Environment Setup & Laravel Installation II. MVC architecture, Basic Authentication & Routing III. Laravel Template Mastering & CRUD Operation IV. Laravel Role Implementation, File storage & Middleware V. Eloquent ORM & Query Builder, Cart, Session & Others Content
  • 5.  Implement laravel project & database connection  Know how MCV architecture pattern works  Know how to create, read, update & delete data from MySql database with laravel project  Basic authentication & role implementation  Laravel project upload online demo Our Goals
  • 7. Laravel is a free, open-source PHP web framework, created by Taylor Otwell and intended for the development of web applications following the model–view– controller (MVC) architectural pattern. What Is Laravel ?
  • 8. Developer(s) Taylor Otwell Initial release June 2011; 8 years ago [1] Stable release 6.9.0 [2] / 2019-12-19[±] Written in PHP Type Web framework License MIT License Website laravel.com • The source code of Laravel is hosted on GitHub and licensed under the terms of MIT License.
  • 9. History Taylor Otwell created Laravel as an attempt to provide a more advanced alternative to the CodeIgniter framework, which did not provide certain features such as built-in support for user authentication and authorization. Laravel's first beta release was made available on June 9, 2011, followed by the Laravel 1 release later in the same month.
  • 11. Why Should We Choose Laravel?  Authorization Technique  Object-Oriented Libraries  Artisan  MVC Support  Security  Database Migration  Great Tutorials (Laracasts)  Blade Templating Engine  Responsible Interface  Automatic Package Discovery
  • 14.  PHP >= 7.2.0  BCMath PHP Extension  Ctype PHP Extension  JSON PHP Extension  Mbstring PHP Extension  OpenSSL PHP Extension  PDO PHP Extension  Tokenizer PHP Extension  XML PHP Extension Server Requirements
  • 15. Installing Composer Laravel utilizes Composer to manage its dependencies. So, before using Laravel, make sure you have Composer installed on your machine.
  • 16. Installing Laravel There Are 2 ways to install laravel project: • Via Laravel Installer • Via Composer Create-Project
  • 17. • Via Laravel Installer First, download the Laravel installer using Composer than : composer global require laravel/installer laravel new blog • Via Composer Create-Project Alternatively, you may also install Laravel by issuing the Composer create-project command in your terminal: composer create-project --prefer-dist laravel/laravel blog • Note Above commands will install the latest versions of laravel so if you want to specify a version, you can use composer: composer create-project laravel/laravel=5.8 myapp
  • 18. Configuration Public Directory Configuration Files Directory Permissions Application Key Additional Configuration
  • 23. The Model-View-Controller (MVC) is an architectural pattern that separates an application into three main logical components: the model, the view, and the controller. Each of these components are built to handle specific development aspects of an application. MVC is one of the most frequently used industry-standard web development framework to create scalable and extensible projects.
  • 25. Basic Authentication Install the laravel/ui Composer package and run php artisan ui vue --auth in a fresh Laravel application. After migrating your database, navigate your browser to http://your-app.test/register or any other URL that is assigned to your application. These commands will take care of scaffolding your entire authentication system!
  • 26. In laravel, there are 2 routes file web.php and api.php.  web.php file is used for registering all the web routes like - mywebsite.com/about or mywebsite.com/contact  api.php is used for registering all the routes related to an api. We are only using web routes so don’t worry about any api routes. Routing
  • 27.  Route: Route::get('/', function () { return view('welcome'); }); Route::post('/product-create', 'ProductController@create') ->name('productcreate'); Route::get('/product-index','ProductController@index')->name('productindex'); Route::post('/product-update', 'ProductController@update') ->name('productupdate'); Route::get('/product-edit', 'ProductController@edit')->name('productedit'); Route::get('/product-delete', 'ProductController@delete') ->name('productdelete');
  • 29. app −This directory contains the core code of the application. bootstrap −This directory contains the application bootstrapping script. config −This directory contains configuration files of application. database −This folder contains your database migration and seeds. public −This is the application’s document root. It starts the Laravel application. It also contains the assets of the application like JavaScript, CSS, Images, etc.
  • 30. resources −This directory contains raw assets such as the LESS & Sass files, localization and language files, and Templates that are rendered as HTML. storage −This directory contains App storage, like file uploads etc. Framework storage (cache), and application-generated logs. test −This directory contains various test cases. vendor −This directory contains composer dependencies.
  • 34. Template Mastering The Blade Master Template is where we can place all the boilerplate that all pages will typically make use of. Most times you can name this file something like master.blade.php. All view files that you would like to have make use of your master page can now use the @extends keyword to do so. Since our master page has the name of master.blade.php, in our view files we will use @extends('master'). You can name the master page something else if you want to, you’ll just need to make sure to extend the other name. For example if your master page is default.blade.php, you can use @extends(‘default‘) in your view files.
  • 36. $ php artisan make:model Product protected $fillable = [ 'field_1', 'field_2', ‘field_3‘ ]; Migration : Schema::create('products', function (Blueprint $table) { $table->increments('id'); $table->string('field_1'); $table->text('field_2'); $table->integer(field_3'); $table->timestamps(); }); $ php artisan migrate $ php artisan make:migration create_products_table Model :
  • 37. $ php artisan make:controller ProductController public function index() { return view('product_index'); } public function create() { $data = new Product (); $data->field_1 = $request->field_1; $data->field_2 = $request->field_2; $data->field_3 = $request->field_3; $data->save(); return redirect('/products'); } Controllers :
  • 38. public function edit($id) { $product = Product::find($id); return response()->json($product); } public function update() { $data = Product::find($request->id); $data->field_1 = $request->field_1; $data->field_2 = $request->field_2; $data->field_3 = $request->field_3; $data->save(); return redirect()->back(); } Controllers :
  • 39. Controllers : public function delete($id) { $product = Product::find($id); $product->delete(); return redirect()->back(); }
  • 43. In many web projects, we have different user roles interacting with the system. Each role has its own permission. Every feature of the system can be enabled or disabled for these roles. We can define users permissions in our codes and check if they are authorized to do the requested action or not. A better way, mostly in more flexible systems, is to create a role and authorization management system. I’ll explain how to implement a Laravel authorization system and define users permission based on their roles. Implementing User Roles into a Laravel Application. User Roles allow us to control access to a page or feature within an application. Role Implementation
  • 44. Gate: Gates are Closures that determine if a user is authorized to perform a given action and are typically defined in the App Providers AuthServiceProvider class using the Gate facade. public function boot(GateContract $gate) { $this->registerPolicies($gate); $gate->define('isAdmin', function($user) { return $user->user_type == '0'; }); $gate->define('isCompany', function($user) { return $user->user_type == '3'; }); $gate->define('isUser', function($user) { return $user->user_type == '1'; }); }
  • 45. Store a File $this->validate($request,[ 'image'=> 'required|image|mimes:jpeg,png,jpg|' ]); if ($request->hasFile('image')) { $image = $request->file('image'); $imagename = uniqid().$image->getClientOriginalName(); $uploadPath = 'public/Product/'; $image->move($uploadPath,$imagename); $imageUrl = $uploadPath.$imagename; } else { $imageUrl = null; } $post = new Product(); $post->title = $request->name; $post->image = $imageUrl; $post->save(); return redirect()->back();
  • 46. Middleware provide a convenient mechanism for filtering HTTP requests entering your application. For example, Laravel includes a middleware that verifies the user of your application is authenticated. If the user is not authenticated, the middleware will redirect the user to the login screen. However, if the user is authenticated, the middleware will allow the request to proceed further into the application. Middleware
  • 50. The Eloquent ORM included with Laravel provides a beautiful, simple Active Record implementation for working with your database. Each database table has a corresponding "Model" which is used to interact with that table. Models allow you to query for data in your tables, as well as insert new records into the table. Eloquent ORM
  • 51. 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. Query Builder
  • 53. Laravel Shopping cart Run the Composer require command from the Terminal: composer require gloudemans/shoppingcart GloudemansShoppingcartShoppingcartServiceProvider::class 'Cart' => GloudemansShoppingcartFacadesCart::class, Check & and optionally add a new line to the aliases array: Check & add a new line to the providers array: Gloudemans Shoppingcart is a simple shoppingcart implementation for Laravel.
  • 54. public function addtocart(Request $request) { $products=Product::find($request->id); Cart::add([ 'id'=>$request->id, 'qty'=>$request->qty, 'name'=>$products->productname, 'price'=>$products->price, 'options' => [ 'image' => $products->image ] ]); return back()->withInput(); } public function cartshow() { $cartProduct = Cart::content(); $cartCount = Cart::count(); return view(‘ViewPage',compact(‘cartProduct’,‘cartCount’); }
  • 55. public function update(Request $request) { Cart::update($request->rowId, $request->qty); return redirect()->back(); } public function delete($id) { Cart::remove($id); return redirect()->back(); } Cart::destroy(); Cart::total(); Cart::subtotal(); Cart::count();
  • 56. Session Since HTTP driven applications are stateless, sessions provide a way to store information about the user across multiple requests. Laravel ships with a variety of session backends that are accessed through an expressive, unified API. Support for popular backends such as Memcached, Redis, and databases is included out of the box. The session configuration file is stored at config/session.php. Be sure to review the options available to you in this file. @if(session(‘message')) <div class="alert alert-dismissible alert-success"> <button type="button" class="close" data-dismiss="alert">×</button> <strong>{{ session(‘message') }}</strong> </div> @endif
  • 58. References :  https://laravel.com/  https://en.wikipedia.org/wiki/Laravel/  https://laracasts.com/  https://medium.com/techcompose/  https://github.com/Crinsane/LaravelShoppingcart  https://blog.pusher.com/laravel-mvc-use/  https://getcomposer.org/download/  https://laravel.com/docs/5.8/authentication  https://www.tutorialspoint.com/laravel/index.htm