SlideShare a Scribd company logo
1
WHY LARAVEL?
“The PHP Framework For Web Artisans”
Introduction to Laravel
Jonathan Goode
2 . 1
HISTORY BEHIND THE VISION
, a .NET developer in Arkansas (USA), was using an
early version of CodeIgniter when the idea for Laravel came to
him.
“I couldn't add all the features I wanted to”, he says, “without
mangling the internal code of the framework”.
He wanted something leaner, simpler, and more flexible.
Taylor Otwell
2 . 2
HISTORY BEHIND THE VISION
Those desires, coupled with Taylor's .NET background, spawned
the framework that would become Laravel.
He used the ideas of the .NET infrastructure which Microso had
built and spent hundreds of millions of dollars of research on.
With Laravel, Taylor sought to create a framework that would be
known for its simplicity.
He added to that simplicity by including an expressive syntax, clear structure,
and incredibly thorough documentation.
With that, Laravel was born.
3 . 1
THE EVOLUTION OF LARAVEL
Taylor started with a simple routing layer and a really simple
controller-type interface (MVC)
v1 and v2 were released in June 2011 and September 2011 respectively, just
months apart
In February 2012, Laravel 3 was released just over a year later
and this is when Laravel's user base and popularity really began
to grow.
3 . 2
THE EVOLUTION OF LARAVEL
In May 2013, Laravel 4 was released as a complete rewrite of the
framework and incorporated a package manager called
.
Composer is an application-level package manager for PHP that
allowed people to collaborate instead of compete.
Before Composer, there was no way to take two separate
packages and use different pieces of those packages together to
create a single solution.
Laravel is built on top of several packages most notably
.
Composer
Symfony
3 . 3
LARAVEL TODAY
Laravel now stands at version 5.3 with 5.4 currently in
development
Support for PHP 7 has recently been added to Laravel 4.2.20
and for the first version ever, long term support has been
guaranteed for 5.1
4 . 1
ARCHITECTURE
Model
Everything database related - Eloquent ORM (Object Relational
Mapper)
View
HTML structure - Blade templating engine
Controller
Processing requests and generating output
+ Facades, Dependency Injection, Repositories, etc...
4 . 2
FIRSTLY, WHY OBJECT ORIENTED PHP?
Logic is split into classes where each class has specific attributes
and behaviours.
This leads to code that is more maintainable, more predictable
and simpler to test.
5 . 1
ROUTES
Routes (/routes) hold the application
URLs
web.php for web routes
api.php for stateless requests
console.php for Artisan commands
// Visiting '/' will return 'Hello World!' 
Route::get('/', function() 
{ 
    return 'Hello World!'; 
}); 
Route::get('/tasks/{id}', 'TasksController@view'); 
Visiting /tasks/3 will call the controller method that deals
with viewing that task that has an id of 3
5 . 2
Route::post('/tasks/add', 'TasksController@store'); 
Handles posting for data when creating a form
No need to check for
isset($_POST['input'])
5 . 3
6 . 1
CONTROLLERS
Handle the logic required for processing requests
namespace AppHttpControllersAdmin; 
class TasksController extends Controller 
{ 
    public function view($id) 
    { 
        return "This is task " . $id; 
    } 
} 
6 . 2
ENHANCED CONTROLLER
namespace AppHttpControllersAdmin; 
class TasksController extends Controller 
{ 
    public function view($id) 
    { 
        // Finds the task with 'id' = $id in the tasks table 
        $task = Task::find($id); 
        // Returns a view with the task data 
        return View::make('tasks.view')­>with(compact('task')); 
    } 
}
7 . 1
MODELS
Classes that are used to access the
database
A Task model would be tied to the tasks table in MySQL
namespace AppModels; 
use IlluminateDatabaseEloquentModel; 
use IlluminateDatabaseEloquentSoftDeletes; 
class Task extends Model 
{ 
    use SoftDeletes; 
    protected $fillable = ['title', 'done',]; 
    protected $dates    = ['deleted_at']; 
} 
7 . 2
QUERIES
// Retrieves the tasks that have a high priority 
Task::where('priority', '=', 'high')­>get(); 
Task::wherePriority('high')­>get(); // *Magic*! 
// Retrieves all the tasks in the database 
Task::all(); 
// Retrieves a paginated view for tasks, 20 tasks per page 
Task::paginate(20); 
// Inserts a new task into the database 
Task::create(['description' => 'Buy milk']); 
// (Soft) deletes the task with an id of 5 
Task::find(5)­>delete(); 
// Permanently deletes all soft deleted tasks 
Task::onlyTrashed()­>forceDelete(); 
8 . 1
VIEWS
Blade is a simple, yet powerful templating engine provided with
Laravel
// This view uses the master layout 
@extends('layouts.master') 
@section('content') 
    <p>This is my body content.</p> 
@stop 
@section('sidebar') 
    <p>This is appended to the master sidebar.</p> 
@stop 
8 . 2
@foreach($tasks as $task) 
    <p>{{ $task­>title }}</p> 
@endforeach 
=
<?php foreach ($tasks as $task) { 
    <p><?php echo $task­>title ?></p> 
<?php endforeach ?>
8 . 3
<p>Tasks:</p> 
<table> 
    <thead> 
        <tr> 
            <th>ID</th> 
            <th>Title</th> 
        </tr> 
    </thead> 
    <tbody> 
        @foreach($tasks as $task) 
        <tr> 
            <td>{{ $task­>id }}</td> 
            <td>{{ $task­>title }}</td> 
        </tr> 
        @endforeach 
    </tbody> 
</table>
8 . 4
9 . 1
ARTISAN
Artisan is the command-line interface included with Laravel
It provides a number of helpful commands that can assist you
while you build your application
$ php artisan list 
$ php artisan help migrate 
9 . 2
DATA MIGRATION AND SEEDING
$ php artisan make:migration create_users_table 
Migration created successfully! 
$ php artisan migrate ­­seed 
Migrated: 2016_01_12_000000_create_users_table 
Migrated: 2016_01_12_100000_create_password_resets_table 
Migrated: 2016_01_13_162500_create_projects_table 
Migrated: 2016_01_13_162508_create_servers_table
10 . 1
KEY CHANGES IN LARAVEL 5
DIRECTORY STRUCTURE
Laravel 5 implements the autoloading standard which
means all your classes are namespaced
The default namespace for your web application is app
You can change this using php artisan app:name <your‐app‐name>
assets, views, and lang now live in a resources folder
config, storage, database, and tests directories have
been moved to the root of the project
bootstrap, public, and vendor retain their place
PSR-4
10 . 2
KEY CHANGES IN LARAVEL 5
ENVIRONMENT DETECTION
Instead of all the complex nested configuration directories, you
have a .env file at the root of your project to take care
of the application environment and all the environment
variables.
It is useful to create a .env.example file to provide a template
for other team members to follow
(dotEnv)
10 . 3
KEY CHANGES IN LARAVEL 5
ROUTE MIDDLEWARE
Middleware can be used to add extra layers to your HTTP routes.
If you want code to execute before every route or before specific
routes in your application, then such a piece of code is a good fit
for a middleware class.
For example, let's say you want to block out a certain range of
IPs from your application to make your application unavailable
in that region.
In such a case, you will need to check the client IP before every
request and allow/disallow them entry to your application.
$ php artisan make:middleware "RegionMiddleware"
10 . 4
KEY CHANGES IN LARAVEL 5
METHOD INJECTION
Until version 4.2, you had to request the Inversion of Control
(IoC) container to provide a class instance or create it in your
controller's constructor to make it accessible under the class
scope.
Now, you can declare the type hinted class instance in the
controller method's signature and the IoC container will take
care of it, even if there are multiple parameters in your controller
function's signature.
10 . 5
EXAMPLE OF METHOD INJECTION
// TaskController.php 
namespace AppHttpControllersAdmin; 
use AppHttpControllersController; 
use AppHttpRequestsAdminTaskUpdateRequest; 
use AppModelsTask; 
class TaskController extends Controller { 
    public function store(TaskUpdateRequest $request) { 
        $task = Task::create($request­>except('_token')); 
        return redirect(route('admin.task.index'))­>with('success', 
                        trans('general.created', ['what' => 'Task'])); 
    } 
} 
/**/ 
class TaskUpdateRequest extends FormRequest { 
    public function rules() { 
        return ['title' => 'required|min:3|unique:tasks,title',]; 
    } 
}
10 . 6
KEY CHANGES IN LARAVEL 5
CONTRACTS
Contracts are actually interface classes in disguise.
Interfaces are a tried and tested method for removing class
dependency and developing loosely coupled so ware
components.
.
Most of the major core components make use of these contracts to keep the
framework loosely coupled.
Laravel buys into the same philosophy ⇲
10 . 7
KEY CHANGES IN LARAVEL 5
AUTHENTICATION
Authentication is part of almost all the web applications you
develop, and a lot of time is spent writing the authentication
boilerplate.
This is not the case any more with Laravel 5. The database
migrations, models, controllers, and views just need to be
configured to make it all work.
Laravel 5 has a Registrar service, which is a crucial part of this
out of the box, ready to use authentication system.
10 . 8
OTHER KEY CHANGES IN LARAVEL 5
Queue and Task
Scheduling
Crons taken care of
Multiple File Systems
Local or remote (cloud based)
Route Caching
Events
Commands
11 . 1
LARAVEL ELIXIR
provides a fluent, expressive interface to compiling
and concatenating your assets.
If you've ever been intimidated by learning Gulp or Grunt, fear
no more.
Elixir makes it a cinch to get started using Gulp to compile Sass
and other assets.
It can even be configured to run your tests
Laravel Elixir
(Assumes sass is located at resources/assets/sass, etc.)
// gulpfile.js 
const elixir             = require('laravel­elixir'); 
elixir.config.publicPath = 'public_html/assets'; 
require('laravel­elixir­vue­2'); 
elixir(mix => { 
    mix.sass('app.scss') 
       .webpack('app.js') 
       .copy('node_modules/bootstrap­sass/assets/fonts/bootstrap/', 
             'public_html/assets/fonts/bootstrap'); 
}); 
11 . 2
// Run all tasks and build your assets 
$ gulp 
// Run all tasks and minify all CSS and JavaScript 
$ gulp ­­production 
// Watch your assets for any changes ­ re­build when required 
$ gulp watch 
11 . 3
12
LARAVEL STARTER ⇲
Created specifically to speed up development at UofA
Improved version of Laravel 4.1 with backported
enhancements from 4.2
This was due to the version of PHP (5.3.8) we previously had to use
Has code specific for the way we have to work with web
accounts
Configured to use public_html rather than public
LDAP integration complete with configuration for abdn.ac.uk
Enhanced String and Array helpers
UofA logos
etc.
Currently in the process of updating for Laravel 5.3
13 . 1
LARAVEL HAS MORE UP ITS SLEEVE
STANDALONE SERVICES
Provision and deploy unlimited PHP applications on DigitalOcean, Linode,
and AWS
A package that provides scaffolding for subscription billing, invoices, etc.
A deployment service focused on the deployment side of applications and
includes things like zero downtime deploys, health checks, cron job
monitoring, and more
Forge
Spark
Envoyer
13 . 2
LARAVEL HAS MORE UP ITS SLEEVE
BAKED INTO LARAVEL 5
Event broadcasting, evolved. Bring the power of WebSockets to your
application without the complexity.
API authentication without the headache. Passport is an OAuth2 server that's
ready in minutes.
Driver based full-text search for Eloquent, complete with pagination and
automatic indexing.
Laravel Echo
Laravel Passport
Laravel Scout
13 . 3
LARAVEL HAS MORE UP ITS SLEEVE
OTHER DEVELOPMENT TOOLS
Powered by Vagrant, Homestead gets your entire team on the same page
with the latest PHP, MySQL, Postgres, Redis, and more.
Cachet is the best way to inform customers of downtime. This is your status
page.
If all you need is an API and lightning fast speed, try Lumen. It's Laravel
smaller-light.
Need a CMS that runs on Laravel and is built for developers and clients? Look
no further.
Homestead
Cachet
Lumen
Statamic
14
MORE RESOURCES
Over 900 videos covering all aspects of using
Laravel
https://laravel.com/
https://laracasts.com/

More Related Content

What's hot

Laravel
LaravelLaravel
Laravel
Dyuti Islam
 
Projects In Laravel : Learn Laravel Building 10 Projects
Projects In Laravel : Learn Laravel Building 10 ProjectsProjects In Laravel : Learn Laravel Building 10 Projects
Projects In Laravel : Learn Laravel Building 10 Projects
Sam Dias
 
Laravel Routing and Query Building
Laravel   Routing and Query BuildingLaravel   Routing and Query Building
Laravel Routing and Query Building
Mindfire Solutions
 
Laravel
LaravelLaravel
Laravel
tanveerkhan62
 
REST-API introduction for developers
REST-API introduction for developersREST-API introduction for developers
REST-API introduction for developers
Patrick Savalle
 
Laravel Presentation
Laravel PresentationLaravel Presentation
Laravel Presentation
REZAUL KARIM REFATH
 
Change and Release Management with JIRA and Bamboo - Atlassian Summit 2010
Change and Release Management with JIRA and Bamboo - Atlassian Summit 2010Change and Release Management with JIRA and Bamboo - Atlassian Summit 2010
Change and Release Management with JIRA and Bamboo - Atlassian Summit 2010
Atlassian
 
Automation Testing by Selenium Web Driver
Automation Testing by Selenium Web DriverAutomation Testing by Selenium Web Driver
Automation Testing by Selenium Web Driver
Cuelogic Technologies Pvt. Ltd.
 
Angular
AngularAngular
Angular
sridhiya
 
Maven
MavenMaven
Swagger With REST APIs.pptx.pdf
Swagger With REST APIs.pptx.pdfSwagger With REST APIs.pptx.pdf
Swagger With REST APIs.pptx.pdf
Knoldus Inc.
 
How To be a Backend developer
How To be a Backend developer    How To be a Backend developer
How To be a Backend developer
Ramy Hakam
 
Maven
MavenMaven
Maven
Emprovise
 
Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to Docker
Docker, Inc.
 
RESTful API - Best Practices
RESTful API - Best PracticesRESTful API - Best Practices
RESTful API - Best Practices
Tricode (part of Dept)
 
React lecture
React lectureReact lecture
React lecture
Christoffer Noring
 
Spring Boot Tutorial
Spring Boot TutorialSpring Boot Tutorial
Spring Boot Tutorial
Naphachara Rattanawilai
 
Spring Boot Actuator
Spring Boot ActuatorSpring Boot Actuator
Spring Boot Actuator
Rowell Belen
 
Automated Web Testing Using Selenium
Automated Web Testing Using SeleniumAutomated Web Testing Using Selenium
Automated Web Testing Using Selenium
Weifeng Zhang
 
React hooks
React hooksReact hooks
React hooks
Ramy ElBasyouni
 

What's hot (20)

Laravel
LaravelLaravel
Laravel
 
Projects In Laravel : Learn Laravel Building 10 Projects
Projects In Laravel : Learn Laravel Building 10 ProjectsProjects In Laravel : Learn Laravel Building 10 Projects
Projects In Laravel : Learn Laravel Building 10 Projects
 
Laravel Routing and Query Building
Laravel   Routing and Query BuildingLaravel   Routing and Query Building
Laravel Routing and Query Building
 
Laravel
LaravelLaravel
Laravel
 
REST-API introduction for developers
REST-API introduction for developersREST-API introduction for developers
REST-API introduction for developers
 
Laravel Presentation
Laravel PresentationLaravel Presentation
Laravel Presentation
 
Change and Release Management with JIRA and Bamboo - Atlassian Summit 2010
Change and Release Management with JIRA and Bamboo - Atlassian Summit 2010Change and Release Management with JIRA and Bamboo - Atlassian Summit 2010
Change and Release Management with JIRA and Bamboo - Atlassian Summit 2010
 
Automation Testing by Selenium Web Driver
Automation Testing by Selenium Web DriverAutomation Testing by Selenium Web Driver
Automation Testing by Selenium Web Driver
 
Angular
AngularAngular
Angular
 
Maven
MavenMaven
Maven
 
Swagger With REST APIs.pptx.pdf
Swagger With REST APIs.pptx.pdfSwagger With REST APIs.pptx.pdf
Swagger With REST APIs.pptx.pdf
 
How To be a Backend developer
How To be a Backend developer    How To be a Backend developer
How To be a Backend developer
 
Maven
MavenMaven
Maven
 
Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to Docker
 
RESTful API - Best Practices
RESTful API - Best PracticesRESTful API - Best Practices
RESTful API - Best Practices
 
React lecture
React lectureReact lecture
React lecture
 
Spring Boot Tutorial
Spring Boot TutorialSpring Boot Tutorial
Spring Boot Tutorial
 
Spring Boot Actuator
Spring Boot ActuatorSpring Boot Actuator
Spring Boot Actuator
 
Automated Web Testing Using Selenium
Automated Web Testing Using SeleniumAutomated Web Testing Using Selenium
Automated Web Testing Using Selenium
 
React hooks
React hooksReact hooks
React hooks
 

Viewers also liked

Laravel5 Introduction and essentials
Laravel5 Introduction and essentialsLaravel5 Introduction and essentials
Laravel5 Introduction and essentials
Pramod Kadam
 
Laravel Introduction
Laravel IntroductionLaravel Introduction
Laravel Introduction
Ahmad Shah Hafizan Hamidin
 
Laravel Beginners Tutorial 1
Laravel Beginners Tutorial 1Laravel Beginners Tutorial 1
Laravel Beginners Tutorial 1
Vikas Chauhan
 
Laravel Development Company Services – TechTic Solutions
Laravel Development Company Services – TechTic SolutionsLaravel Development Company Services – TechTic Solutions
Laravel Development Company Services – TechTic Solutions
Techtic Solutions
 
A introduction to Laravel framework
A introduction to Laravel frameworkA introduction to Laravel framework
A introduction to Laravel framework
Phu Luong Trong
 
Laravel and Django and Rails, Oh My!
Laravel and Django and Rails, Oh My!Laravel and Django and Rails, Oh My!
Laravel and Django and Rails, Oh My!
Chris Roberts
 
Knowing Laravel 5 : The most popular PHP framework
Knowing Laravel 5 : The most popular PHP frameworkKnowing Laravel 5 : The most popular PHP framework
Knowing Laravel 5 : The most popular PHP framework
Bukhori Aqid
 
Laravel 5
Laravel 5Laravel 5
Laravel 5
Brian Feaver
 
Laravel.IO A Use-Case Architecture
Laravel.IO A Use-Case ArchitectureLaravel.IO A Use-Case Architecture
Laravel.IO A Use-Case Architecture
Shawn McCool
 
Laravel 5 In Depth
Laravel 5 In DepthLaravel 5 In Depth
Laravel 5 In Depth
Kirk Bushell
 
Digpen 7: Why choose Laravel?
Digpen 7: Why choose Laravel?Digpen 7: Why choose Laravel?
Digpen 7: Why choose Laravel?
John Blackmore
 

Viewers also liked (11)

Laravel5 Introduction and essentials
Laravel5 Introduction and essentialsLaravel5 Introduction and essentials
Laravel5 Introduction and essentials
 
Laravel Introduction
Laravel IntroductionLaravel Introduction
Laravel Introduction
 
Laravel Beginners Tutorial 1
Laravel Beginners Tutorial 1Laravel Beginners Tutorial 1
Laravel Beginners Tutorial 1
 
Laravel Development Company Services – TechTic Solutions
Laravel Development Company Services – TechTic SolutionsLaravel Development Company Services – TechTic Solutions
Laravel Development Company Services – TechTic Solutions
 
A introduction to Laravel framework
A introduction to Laravel frameworkA introduction to Laravel framework
A introduction to Laravel framework
 
Laravel and Django and Rails, Oh My!
Laravel and Django and Rails, Oh My!Laravel and Django and Rails, Oh My!
Laravel and Django and Rails, Oh My!
 
Knowing Laravel 5 : The most popular PHP framework
Knowing Laravel 5 : The most popular PHP frameworkKnowing Laravel 5 : The most popular PHP framework
Knowing Laravel 5 : The most popular PHP framework
 
Laravel 5
Laravel 5Laravel 5
Laravel 5
 
Laravel.IO A Use-Case Architecture
Laravel.IO A Use-Case ArchitectureLaravel.IO A Use-Case Architecture
Laravel.IO A Use-Case Architecture
 
Laravel 5 In Depth
Laravel 5 In DepthLaravel 5 In Depth
Laravel 5 In Depth
 
Digpen 7: Why choose Laravel?
Digpen 7: Why choose Laravel?Digpen 7: Why choose Laravel?
Digpen 7: Why choose Laravel?
 

Similar to Why Laravel?

Web Development with Laravel 5
Web Development with Laravel 5Web Development with Laravel 5
Web Development with Laravel 5
Soheil Khodayari
 
Laravel (8) php_framework_handbook__start_from_zer_18604872_(z-lib.org)
Laravel (8) php_framework_handbook__start_from_zer_18604872_(z-lib.org)Laravel (8) php_framework_handbook__start_from_zer_18604872_(z-lib.org)
Laravel (8) php_framework_handbook__start_from_zer_18604872_(z-lib.org)
ssuser337865
 
Laravel Starter Kit | Laravel Admin Template-ChandraAdmin
Laravel Starter Kit | Laravel Admin Template-ChandraAdmin Laravel Starter Kit | Laravel Admin Template-ChandraAdmin
Laravel Starter Kit | Laravel Admin Template-ChandraAdmin
Lorvent56
 
Adventures in Laravel 5 SunshinePHP 2016 Tutorial
Adventures in Laravel 5 SunshinePHP 2016 TutorialAdventures in Laravel 5 SunshinePHP 2016 Tutorial
Adventures in Laravel 5 SunshinePHP 2016 Tutorial
Joe Ferguson
 
Laravel 5 New Features
Laravel 5 New FeaturesLaravel 5 New Features
Laravel 5 New Features
Joe Ferguson
 
laravel-interview-questions.pdf
laravel-interview-questions.pdflaravel-interview-questions.pdf
laravel-interview-questions.pdf
AnuragMourya8
 
Laravel - A Trending PHP Framework
Laravel - A Trending PHP FrameworkLaravel - A Trending PHP Framework
Laravel - A Trending PHP Framework
ijtsrd
 
MidwestPHP 2016 - Adventures in Laravel 5
MidwestPHP 2016 - Adventures in Laravel 5 MidwestPHP 2016 - Adventures in Laravel 5
MidwestPHP 2016 - Adventures in Laravel 5
Joe Ferguson
 
Drupal 8 meets to symphony
Drupal 8 meets to symphonyDrupal 8 meets to symphony
Drupal 8 meets to symphony
Brahampal Singh
 
Hidden things uncovered about laravel development
Hidden things uncovered about laravel developmentHidden things uncovered about laravel development
Hidden things uncovered about laravel development
Katy Slemon
 
cakephp UDUYKTHA (1)
cakephp UDUYKTHA (1)cakephp UDUYKTHA (1)
cakephp UDUYKTHA (1)
Varsha Krishna
 
Building Scalable Applications with Laravel
Building Scalable Applications with LaravelBuilding Scalable Applications with Laravel
Building Scalable Applications with Laravel
Muhammad Shakeel
 
Getting started with laravel
Getting started with laravelGetting started with laravel
Getting started with laravel
Advance Idea Infotech
 
Laravel : A Fastest Growing Kid
Laravel : A Fastest Growing KidLaravel : A Fastest Growing Kid
Laravel : A Fastest Growing Kid
Endive Software
 
Lecture 2_ Intro to laravel.pptx
Lecture 2_ Intro to laravel.pptxLecture 2_ Intro to laravel.pptx
Lecture 2_ Intro to laravel.pptx
SaziaRahman
 
Web application development with laravel php framework version 4
Web application development with laravel php framework version 4Web application development with laravel php framework version 4
Web application development with laravel php framework version 4
Untung D Saptoto
 
Memphis php 01 22-13 - laravel basics
Memphis php 01 22-13 - laravel basicsMemphis php 01 22-13 - laravel basics
Memphis php 01 22-13 - laravel basics
Joe Ferguson
 
Laravel 5.4
Laravel 5.4 Laravel 5.4
Laravel 5.4
Nisha Patel
 
Meetup 2022 - APIs with Quarkus.pdf
Meetup 2022 - APIs with Quarkus.pdfMeetup 2022 - APIs with Quarkus.pdf
Meetup 2022 - APIs with Quarkus.pdf
Red Hat
 
Lecture11_LaravelGetStarted_SPring2023.pdf
Lecture11_LaravelGetStarted_SPring2023.pdfLecture11_LaravelGetStarted_SPring2023.pdf
Lecture11_LaravelGetStarted_SPring2023.pdf
ShaimaaMohamedGalal
 

Similar to Why Laravel? (20)

Web Development with Laravel 5
Web Development with Laravel 5Web Development with Laravel 5
Web Development with Laravel 5
 
Laravel (8) php_framework_handbook__start_from_zer_18604872_(z-lib.org)
Laravel (8) php_framework_handbook__start_from_zer_18604872_(z-lib.org)Laravel (8) php_framework_handbook__start_from_zer_18604872_(z-lib.org)
Laravel (8) php_framework_handbook__start_from_zer_18604872_(z-lib.org)
 
Laravel Starter Kit | Laravel Admin Template-ChandraAdmin
Laravel Starter Kit | Laravel Admin Template-ChandraAdmin Laravel Starter Kit | Laravel Admin Template-ChandraAdmin
Laravel Starter Kit | Laravel Admin Template-ChandraAdmin
 
Adventures in Laravel 5 SunshinePHP 2016 Tutorial
Adventures in Laravel 5 SunshinePHP 2016 TutorialAdventures in Laravel 5 SunshinePHP 2016 Tutorial
Adventures in Laravel 5 SunshinePHP 2016 Tutorial
 
Laravel 5 New Features
Laravel 5 New FeaturesLaravel 5 New Features
Laravel 5 New Features
 
laravel-interview-questions.pdf
laravel-interview-questions.pdflaravel-interview-questions.pdf
laravel-interview-questions.pdf
 
Laravel - A Trending PHP Framework
Laravel - A Trending PHP FrameworkLaravel - A Trending PHP Framework
Laravel - A Trending PHP Framework
 
MidwestPHP 2016 - Adventures in Laravel 5
MidwestPHP 2016 - Adventures in Laravel 5 MidwestPHP 2016 - Adventures in Laravel 5
MidwestPHP 2016 - Adventures in Laravel 5
 
Drupal 8 meets to symphony
Drupal 8 meets to symphonyDrupal 8 meets to symphony
Drupal 8 meets to symphony
 
Hidden things uncovered about laravel development
Hidden things uncovered about laravel developmentHidden things uncovered about laravel development
Hidden things uncovered about laravel development
 
cakephp UDUYKTHA (1)
cakephp UDUYKTHA (1)cakephp UDUYKTHA (1)
cakephp UDUYKTHA (1)
 
Building Scalable Applications with Laravel
Building Scalable Applications with LaravelBuilding Scalable Applications with Laravel
Building Scalable Applications with Laravel
 
Getting started with laravel
Getting started with laravelGetting started with laravel
Getting started with laravel
 
Laravel : A Fastest Growing Kid
Laravel : A Fastest Growing KidLaravel : A Fastest Growing Kid
Laravel : A Fastest Growing Kid
 
Lecture 2_ Intro to laravel.pptx
Lecture 2_ Intro to laravel.pptxLecture 2_ Intro to laravel.pptx
Lecture 2_ Intro to laravel.pptx
 
Web application development with laravel php framework version 4
Web application development with laravel php framework version 4Web application development with laravel php framework version 4
Web application development with laravel php framework version 4
 
Memphis php 01 22-13 - laravel basics
Memphis php 01 22-13 - laravel basicsMemphis php 01 22-13 - laravel basics
Memphis php 01 22-13 - laravel basics
 
Laravel 5.4
Laravel 5.4 Laravel 5.4
Laravel 5.4
 
Meetup 2022 - APIs with Quarkus.pdf
Meetup 2022 - APIs with Quarkus.pdfMeetup 2022 - APIs with Quarkus.pdf
Meetup 2022 - APIs with Quarkus.pdf
 
Lecture11_LaravelGetStarted_SPring2023.pdf
Lecture11_LaravelGetStarted_SPring2023.pdfLecture11_LaravelGetStarted_SPring2023.pdf
Lecture11_LaravelGetStarted_SPring2023.pdf
 

Recently uploaded

Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
lorraineandreiamcidl
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
What is Master Data Management by PiLog Group
What is Master Data Management by PiLog GroupWhat is Master Data Management by PiLog Group
What is Master Data Management by PiLog Group
aymanquadri279
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
Hironori Washizaki
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Envertis Software Solutions
 

Recently uploaded (20)

Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
What is Master Data Management by PiLog Group
What is Master Data Management by PiLog GroupWhat is Master Data Management by PiLog Group
What is Master Data Management by PiLog Group
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
 

Why Laravel?

  • 1. 1 WHY LARAVEL? “The PHP Framework For Web Artisans” Introduction to Laravel Jonathan Goode
  • 2. 2 . 1 HISTORY BEHIND THE VISION , a .NET developer in Arkansas (USA), was using an early version of CodeIgniter when the idea for Laravel came to him. “I couldn't add all the features I wanted to”, he says, “without mangling the internal code of the framework”. He wanted something leaner, simpler, and more flexible. Taylor Otwell
  • 3. 2 . 2 HISTORY BEHIND THE VISION Those desires, coupled with Taylor's .NET background, spawned the framework that would become Laravel. He used the ideas of the .NET infrastructure which Microso had built and spent hundreds of millions of dollars of research on. With Laravel, Taylor sought to create a framework that would be known for its simplicity. He added to that simplicity by including an expressive syntax, clear structure, and incredibly thorough documentation. With that, Laravel was born.
  • 4. 3 . 1 THE EVOLUTION OF LARAVEL Taylor started with a simple routing layer and a really simple controller-type interface (MVC) v1 and v2 were released in June 2011 and September 2011 respectively, just months apart In February 2012, Laravel 3 was released just over a year later and this is when Laravel's user base and popularity really began to grow.
  • 5. 3 . 2 THE EVOLUTION OF LARAVEL In May 2013, Laravel 4 was released as a complete rewrite of the framework and incorporated a package manager called . Composer is an application-level package manager for PHP that allowed people to collaborate instead of compete. Before Composer, there was no way to take two separate packages and use different pieces of those packages together to create a single solution. Laravel is built on top of several packages most notably . Composer Symfony
  • 6. 3 . 3 LARAVEL TODAY Laravel now stands at version 5.3 with 5.4 currently in development Support for PHP 7 has recently been added to Laravel 4.2.20 and for the first version ever, long term support has been guaranteed for 5.1
  • 7. 4 . 1 ARCHITECTURE Model Everything database related - Eloquent ORM (Object Relational Mapper) View HTML structure - Blade templating engine Controller Processing requests and generating output + Facades, Dependency Injection, Repositories, etc...
  • 8. 4 . 2 FIRSTLY, WHY OBJECT ORIENTED PHP? Logic is split into classes where each class has specific attributes and behaviours. This leads to code that is more maintainable, more predictable and simpler to test.
  • 9. 5 . 1 ROUTES Routes (/routes) hold the application URLs web.php for web routes api.php for stateless requests console.php for Artisan commands // Visiting '/' will return 'Hello World!'  Route::get('/', function()  {      return 'Hello World!';  }); 
  • 10. Route::get('/tasks/{id}', 'TasksController@view');  Visiting /tasks/3 will call the controller method that deals with viewing that task that has an id of 3
  • 11. 5 . 2 Route::post('/tasks/add', 'TasksController@store');  Handles posting for data when creating a form No need to check for isset($_POST['input'])
  • 12. 5 . 3 6 . 1 CONTROLLERS Handle the logic required for processing requests namespace AppHttpControllersAdmin;  class TasksController extends Controller  {      public function view($id)      {          return "This is task " . $id;      }  } 
  • 13. 6 . 2 ENHANCED CONTROLLER namespace AppHttpControllersAdmin;  class TasksController extends Controller  {      public function view($id)      {          // Finds the task with 'id' = $id in the tasks table          $task = Task::find($id);          // Returns a view with the task data          return View::make('tasks.view')­>with(compact('task'));      }  }
  • 14. 7 . 1 MODELS Classes that are used to access the database A Task model would be tied to the tasks table in MySQL namespace AppModels;  use IlluminateDatabaseEloquentModel;  use IlluminateDatabaseEloquentSoftDeletes;  class Task extends Model  {      use SoftDeletes;      protected $fillable = ['title', 'done',];      protected $dates    = ['deleted_at'];  } 
  • 16. 8 . 1 VIEWS Blade is a simple, yet powerful templating engine provided with Laravel // This view uses the master layout  @extends('layouts.master')  @section('content')      <p>This is my body content.</p>  @stop  @section('sidebar')      <p>This is appended to the master sidebar.</p>  @stop 
  • 19. 8 . 4 9 . 1 ARTISAN Artisan is the command-line interface included with Laravel It provides a number of helpful commands that can assist you while you build your application $ php artisan list  $ php artisan help migrate 
  • 20. 9 . 2 DATA MIGRATION AND SEEDING $ php artisan make:migration create_users_table  Migration created successfully!  $ php artisan migrate ­­seed  Migrated: 2016_01_12_000000_create_users_table  Migrated: 2016_01_12_100000_create_password_resets_table  Migrated: 2016_01_13_162500_create_projects_table  Migrated: 2016_01_13_162508_create_servers_table
  • 21. 10 . 1 KEY CHANGES IN LARAVEL 5 DIRECTORY STRUCTURE Laravel 5 implements the autoloading standard which means all your classes are namespaced The default namespace for your web application is app You can change this using php artisan app:name <your‐app‐name> assets, views, and lang now live in a resources folder config, storage, database, and tests directories have been moved to the root of the project bootstrap, public, and vendor retain their place PSR-4
  • 22. 10 . 2 KEY CHANGES IN LARAVEL 5 ENVIRONMENT DETECTION Instead of all the complex nested configuration directories, you have a .env file at the root of your project to take care of the application environment and all the environment variables. It is useful to create a .env.example file to provide a template for other team members to follow (dotEnv)
  • 23. 10 . 3 KEY CHANGES IN LARAVEL 5 ROUTE MIDDLEWARE Middleware can be used to add extra layers to your HTTP routes. If you want code to execute before every route or before specific routes in your application, then such a piece of code is a good fit for a middleware class. For example, let's say you want to block out a certain range of IPs from your application to make your application unavailable in that region. In such a case, you will need to check the client IP before every request and allow/disallow them entry to your application. $ php artisan make:middleware "RegionMiddleware"
  • 24. 10 . 4 KEY CHANGES IN LARAVEL 5 METHOD INJECTION Until version 4.2, you had to request the Inversion of Control (IoC) container to provide a class instance or create it in your controller's constructor to make it accessible under the class scope. Now, you can declare the type hinted class instance in the controller method's signature and the IoC container will take care of it, even if there are multiple parameters in your controller function's signature.
  • 25. 10 . 5 EXAMPLE OF METHOD INJECTION // TaskController.php  namespace AppHttpControllersAdmin;  use AppHttpControllersController;  use AppHttpRequestsAdminTaskUpdateRequest;  use AppModelsTask;  class TaskController extends Controller {      public function store(TaskUpdateRequest $request) {          $task = Task::create($request­>except('_token'));          return redirect(route('admin.task.index'))­>with('success',                          trans('general.created', ['what' => 'Task']));      }  }  /**/  class TaskUpdateRequest extends FormRequest {      public function rules() {          return ['title' => 'required|min:3|unique:tasks,title',];      }  }
  • 26. 10 . 6 KEY CHANGES IN LARAVEL 5 CONTRACTS Contracts are actually interface classes in disguise. Interfaces are a tried and tested method for removing class dependency and developing loosely coupled so ware components. . Most of the major core components make use of these contracts to keep the framework loosely coupled. Laravel buys into the same philosophy ⇲
  • 27. 10 . 7 KEY CHANGES IN LARAVEL 5 AUTHENTICATION Authentication is part of almost all the web applications you develop, and a lot of time is spent writing the authentication boilerplate. This is not the case any more with Laravel 5. The database migrations, models, controllers, and views just need to be configured to make it all work. Laravel 5 has a Registrar service, which is a crucial part of this out of the box, ready to use authentication system.
  • 28. 10 . 8 OTHER KEY CHANGES IN LARAVEL 5 Queue and Task Scheduling Crons taken care of Multiple File Systems Local or remote (cloud based) Route Caching Events Commands
  • 29. 11 . 1 LARAVEL ELIXIR provides a fluent, expressive interface to compiling and concatenating your assets. If you've ever been intimidated by learning Gulp or Grunt, fear no more. Elixir makes it a cinch to get started using Gulp to compile Sass and other assets. It can even be configured to run your tests Laravel Elixir (Assumes sass is located at resources/assets/sass, etc.)
  • 32. 11 . 3 12 LARAVEL STARTER ⇲ Created specifically to speed up development at UofA Improved version of Laravel 4.1 with backported enhancements from 4.2 This was due to the version of PHP (5.3.8) we previously had to use Has code specific for the way we have to work with web accounts Configured to use public_html rather than public LDAP integration complete with configuration for abdn.ac.uk Enhanced String and Array helpers UofA logos etc. Currently in the process of updating for Laravel 5.3
  • 33. 13 . 1 LARAVEL HAS MORE UP ITS SLEEVE STANDALONE SERVICES Provision and deploy unlimited PHP applications on DigitalOcean, Linode, and AWS A package that provides scaffolding for subscription billing, invoices, etc. A deployment service focused on the deployment side of applications and includes things like zero downtime deploys, health checks, cron job monitoring, and more Forge Spark Envoyer
  • 34. 13 . 2 LARAVEL HAS MORE UP ITS SLEEVE BAKED INTO LARAVEL 5 Event broadcasting, evolved. Bring the power of WebSockets to your application without the complexity. API authentication without the headache. Passport is an OAuth2 server that's ready in minutes. Driver based full-text search for Eloquent, complete with pagination and automatic indexing. Laravel Echo Laravel Passport Laravel Scout
  • 35. 13 . 3 LARAVEL HAS MORE UP ITS SLEEVE OTHER DEVELOPMENT TOOLS Powered by Vagrant, Homestead gets your entire team on the same page with the latest PHP, MySQL, Postgres, Redis, and more. Cachet is the best way to inform customers of downtime. This is your status page. If all you need is an API and lightning fast speed, try Lumen. It's Laravel smaller-light. Need a CMS that runs on Laravel and is built for developers and clients? Look no further. Homestead Cachet Lumen Statamic
  • 36. 14 MORE RESOURCES Over 900 videos covering all aspects of using Laravel https://laravel.com/ https://laracasts.com/