SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
whoami 
• Ahmad Shah Hafizan Hamidin 
• 27 years old 
• Been developing for > 7 years 
• Laravel & Orchestra fanboy 
• https://www.github.com/ahmadshah 
• @penjajah 
• kuasamalaya
So What is Laravel?
+ +
Why so many Laravel? 
laravel/laravel! 
The framework structure and boilerplate codes 
! 
laravel/framework! 
The core of laravel framework or the kernel 
! 
Illuminate 
The namespace for every laravel framework 
components!
What do we need? 
• A webserver (Apache2/NGINX) 
• PHP 5.4 or above 
• Database engines (MySQL/PostgreSQL/MSSQL) 
• PHP mcrypt extension 
• Composer
Composer! 
• Remember PEAR? 
• Awesome PHP package management 
• Making developer lives easier 
• Manage application dependencies 
• http://getcomposer.org/ 
• http://packagist.com/
How to get Laravel?! 
via Laravel installer! 
> composer global require “laravel/installer=~1.1” 
> laravel new my-application 
! 
via Composer! 
> composer create-project laravel/laravel my-application
Laravel Setup 
• Make app/storage directory writable 
• Update public/.htaccess if you are using alias 
• Update app/config/database.php to connect 
to your database
M V C 
Eloquent, Blade and Controller
Laravel Routes 
• Handles the HTTP requests 
• GET, POST, PUT, PATCH, DELETE 
• All application routes are defined inside 
app/routes.php 
• Can accept Closures or controller 
namespace
Laravel Routes 
Route with Closure! 
Route::get(‘foobar’, function () { 
return ‘Welcome to FooBar!’; 
}); 
! 
Route with Controller! 
Route::get(‘foobar’, ‘FoobarController@index’);
Laravel Controllers 
• Handles the HTTP requests 
• GET, POST, PUT, PATCH, DELETE 
• Controllers are kept under app/controllers 
• Laravel naming convention: FoobarController 
• Extends IlluminateRoutingController class
Laravel Resourceful 
Controllers 
• Handles the HTTP requests 
• GET, POST, PUT, PATCH, DELETE 
• Predefine controller methods to handle 
the HTTP verbs 
• index, show, create, store, edit, 
update, and destroy
Laravel Resourceful! 
Controllers 
Route with Resource Controller! 
Route::resource(‘foobar’, ‘FoobarController’);
Laravel Views 
• The presentation layer of an application 
• Can accept either vanilla PHP or Blade 
files 
• View files are located under app/views 
directory 
• Can accept array arguments
Laravel Views 
Route with view! 
Route::get(‘foobar’, function () { 
return View::make(‘foobar’); 
});
Laravel Blade
Laravel Blade 
• Laravel default templating engine 
• Files need to use .blade.php extension 
• Driven by inheritance and sections 
• Extensible for adding new custom control 
structures
Laravel Blade 
Master layout! 
<!doctype html> 
… 
<body> 
@yield(‘content’) 
</body> 
</html> 
! 
Child layout! 
@extends(‘layout.master’) 
@section(‘content’) 
… 
@stop
Laravel Eloquent 
• Laravel ORM component 
• Simple ActiveRecord implementation 
• Each tables can be represented with a 
“Model” file 
• Model files are located under app/models 
directory 
• Extends IlluminateDatabaseEloquentModel 
class
Laravel Fluent 
• Laravel SQL query builder component 
• Write SQL query in a more elegant and readable 
way
Laravel Filters 
• Control the behaviour of a route 
• Process request before or after 
• Filters are located inside app/filters.php 
• Can be attached directly to route or controller 
• Can be in either Closure or filter class
Laravel Auth 
• Laravel user authentication component 
• Provide a basic functionalities to authenticate users 
• Does not come with ACL / RBAC 
• Utilizes app/models/User.php 
• Laravel does not come with a user table by default
Tinkering with the artisan
Laravel Artisan 
• Laravel CLI 
• Uses the Symfony Console component 
• Manage table migrations, seed tables, 
create resourceful controllers and many more 
• Developer best friend!
Service Providers & Facades
SOLID Principles 
Single Responsibility Principle! 
a class should have only one responsibility 
! 
Open/Closed Principle! 
open for extension and closed for modification 
! 
Liskov Substitution Principle 
Subtypes must be substitutable for their base types!
SOLID Principles 
Interface Segregation Principle! 
many client-specific interfaces are better 
! 
Dependency Inversion Principle! 
depends on abstraction 
! 
!
Laravel IOC 
• Inversion Of Control 
• Manages class dependencies 
• Based on dependency injection method 
• Dependencies are injected at run-time 
• Allowing dependencies to be easily swapped
Laravel Service Providers 
• Act like a component bootstrap 
• Group related IoC registrations in one place 
• Can also run other functionalities like 
artisan commands
Laravel Facades 
• Provide static interfaces to classes 
• Classes are resolved via IoC containers 
• Laravel is full with facades such as View, 
Cache, Config and others
Laravel Workbench 
• A tool to help develop laravel based components 
• Scaffold the necessary boilerplates 
• We do not commit/ship workbench directory

Más contenido relacionado

La actualidad más candente

Lecture 2_ Intro to laravel.pptx
Lecture 2_ Intro to laravel.pptxLecture 2_ Intro to laravel.pptx
Lecture 2_ Intro to laravel.pptx
SaziaRahman
 
[Final] ReactJS presentation
[Final] ReactJS presentation[Final] ReactJS presentation
[Final] ReactJS presentation
洪 鹏发
 
Object Oriented Programming with Laravel - Session 3
Object Oriented Programming with Laravel - Session 3Object Oriented Programming with Laravel - Session 3
Object Oriented Programming with Laravel - Session 3
Shahrzad Peyman
 

La actualidad más candente (20)

Laravel Eloquent ORM
Laravel Eloquent ORMLaravel Eloquent ORM
Laravel Eloquent ORM
 
Web Development with Laravel 5
Web Development with Laravel 5Web Development with Laravel 5
Web Development with Laravel 5
 
Laravel presentation
Laravel presentationLaravel presentation
Laravel presentation
 
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
 
Lecture 2_ Intro to laravel.pptx
Lecture 2_ Intro to laravel.pptxLecture 2_ Intro to laravel.pptx
Lecture 2_ Intro to laravel.pptx
 
Laravel - The PHP Framework for Web Artisans
Laravel - The PHP Framework for Web ArtisansLaravel - The PHP Framework for Web Artisans
Laravel - The PHP Framework for Web Artisans
 
Laravel tutorial
Laravel tutorialLaravel tutorial
Laravel tutorial
 
introduction about REST API
introduction about REST APIintroduction about REST API
introduction about REST API
 
Introduction to angular with a simple but complete project
Introduction to angular with a simple but complete projectIntroduction to angular with a simple but complete project
Introduction to angular with a simple but complete project
 
Laravel
LaravelLaravel
Laravel
 
REST & RESTful Web Services
REST & RESTful Web ServicesREST & RESTful Web Services
REST & RESTful Web Services
 
What-is-Laravel-23-August-2017.pptx
What-is-Laravel-23-August-2017.pptxWhat-is-Laravel-23-August-2017.pptx
What-is-Laravel-23-August-2017.pptx
 
ReactJS presentation.pptx
ReactJS presentation.pptxReactJS presentation.pptx
ReactJS presentation.pptx
 
Why Laravel?
Why Laravel?Why Laravel?
Why Laravel?
 
Laravel Beginners Tutorial 1
Laravel Beginners Tutorial 1Laravel Beginners Tutorial 1
Laravel Beginners Tutorial 1
 
REST API
REST APIREST API
REST API
 
[Final] ReactJS presentation
[Final] ReactJS presentation[Final] ReactJS presentation
[Final] ReactJS presentation
 
Object Oriented Programming with Laravel - Session 3
Object Oriented Programming with Laravel - Session 3Object Oriented Programming with Laravel - Session 3
Object Oriented Programming with Laravel - Session 3
 
REST API and CRUD
REST API and CRUDREST API and CRUD
REST API and CRUD
 
Laravel Blade Template
Laravel Blade TemplateLaravel Blade Template
Laravel Blade Template
 

Similar a Laravel Introduction

Object Oriented Programming with Laravel - Session 2
Object Oriented Programming with Laravel - Session 2Object Oriented Programming with Laravel - Session 2
Object Oriented Programming with Laravel - Session 2
Shahrzad Peyman
 
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
 

Similar a Laravel Introduction (20)

Object Oriented Programming with Laravel - Session 2
Object Oriented Programming with Laravel - Session 2Object Oriented Programming with Laravel - Session 2
Object Oriented Programming with Laravel - Session 2
 
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
 
PHP Laravel Framework'üne Dalış
PHP Laravel Framework'üne DalışPHP Laravel Framework'üne Dalış
PHP Laravel Framework'üne Dalış
 
Introduction to Laravel
Introduction to LaravelIntroduction to Laravel
Introduction to Laravel
 
Laravel
LaravelLaravel
Laravel
 
Chef, Vagrant and Friends
Chef, Vagrant and FriendsChef, Vagrant and Friends
Chef, Vagrant and Friends
 
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)
 
Lecture11_LaravelGetStarted_SPring2023.pdf
Lecture11_LaravelGetStarted_SPring2023.pdfLecture11_LaravelGetStarted_SPring2023.pdf
Lecture11_LaravelGetStarted_SPring2023.pdf
 
Laravel Meetup
Laravel MeetupLaravel Meetup
Laravel Meetup
 
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
 
PLAT-8 Spring Web Scripts and Spring Surf
PLAT-8 Spring Web Scripts and Spring SurfPLAT-8 Spring Web Scripts and Spring Surf
PLAT-8 Spring Web Scripts and Spring Surf
 
How to Install Laravel 5.7
How to Install Laravel 5.7How to Install Laravel 5.7
How to Install Laravel 5.7
 
Apache Tutorial
Apache TutorialApache Tutorial
Apache Tutorial
 
Laravel 4 presentation
Laravel 4 presentationLaravel 4 presentation
Laravel 4 presentation
 
Getting started with laravel
Getting started with laravelGetting started with laravel
Getting started with laravel
 
Frequently Asked Questions About Laravel
Frequently Asked Questions About LaravelFrequently Asked Questions About Laravel
Frequently Asked Questions About Laravel
 
The First Class Integration of Solr with Hadoop
The First Class Integration of Solr with HadoopThe First Class Integration of Solr with Hadoop
The First Class Integration of Solr with Hadoop
 
PLAT-7 Spring Web Scripts and Spring Surf
PLAT-7 Spring Web Scripts and Spring SurfPLAT-7 Spring Web Scripts and Spring Surf
PLAT-7 Spring Web Scripts and Spring Surf
 
PLAT-7 Spring Web Scripts and Spring Surf
PLAT-7 Spring Web Scripts and Spring SurfPLAT-7 Spring Web Scripts and Spring Surf
PLAT-7 Spring Web Scripts and Spring Surf
 
ReactPHP + Symfony
ReactPHP + SymfonyReactPHP + Symfony
ReactPHP + Symfony
 

Último

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Último (20)

CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

Laravel Introduction

  • 1.
  • 2. whoami • Ahmad Shah Hafizan Hamidin • 27 years old • Been developing for > 7 years • Laravel & Orchestra fanboy • https://www.github.com/ahmadshah • @penjajah • kuasamalaya
  • 3. So What is Laravel?
  • 4. + +
  • 5. Why so many Laravel? laravel/laravel! The framework structure and boilerplate codes ! laravel/framework! The core of laravel framework or the kernel ! Illuminate The namespace for every laravel framework components!
  • 6. What do we need? • A webserver (Apache2/NGINX) • PHP 5.4 or above • Database engines (MySQL/PostgreSQL/MSSQL) • PHP mcrypt extension • Composer
  • 7. Composer! • Remember PEAR? • Awesome PHP package management • Making developer lives easier • Manage application dependencies • http://getcomposer.org/ • http://packagist.com/
  • 8. How to get Laravel?! via Laravel installer! > composer global require “laravel/installer=~1.1” > laravel new my-application ! via Composer! > composer create-project laravel/laravel my-application
  • 9.
  • 10. Laravel Setup • Make app/storage directory writable • Update public/.htaccess if you are using alias • Update app/config/database.php to connect to your database
  • 11. M V C Eloquent, Blade and Controller
  • 12. Laravel Routes • Handles the HTTP requests • GET, POST, PUT, PATCH, DELETE • All application routes are defined inside app/routes.php • Can accept Closures or controller namespace
  • 13. Laravel Routes Route with Closure! Route::get(‘foobar’, function () { return ‘Welcome to FooBar!’; }); ! Route with Controller! Route::get(‘foobar’, ‘FoobarController@index’);
  • 14. Laravel Controllers • Handles the HTTP requests • GET, POST, PUT, PATCH, DELETE • Controllers are kept under app/controllers • Laravel naming convention: FoobarController • Extends IlluminateRoutingController class
  • 15. Laravel Resourceful Controllers • Handles the HTTP requests • GET, POST, PUT, PATCH, DELETE • Predefine controller methods to handle the HTTP verbs • index, show, create, store, edit, update, and destroy
  • 16. Laravel Resourceful! Controllers Route with Resource Controller! Route::resource(‘foobar’, ‘FoobarController’);
  • 17. Laravel Views • The presentation layer of an application • Can accept either vanilla PHP or Blade files • View files are located under app/views directory • Can accept array arguments
  • 18. Laravel Views Route with view! Route::get(‘foobar’, function () { return View::make(‘foobar’); });
  • 20. Laravel Blade • Laravel default templating engine • Files need to use .blade.php extension • Driven by inheritance and sections • Extensible for adding new custom control structures
  • 21. Laravel Blade Master layout! <!doctype html> … <body> @yield(‘content’) </body> </html> ! Child layout! @extends(‘layout.master’) @section(‘content’) … @stop
  • 22. Laravel Eloquent • Laravel ORM component • Simple ActiveRecord implementation • Each tables can be represented with a “Model” file • Model files are located under app/models directory • Extends IlluminateDatabaseEloquentModel class
  • 23. Laravel Fluent • Laravel SQL query builder component • Write SQL query in a more elegant and readable way
  • 24. Laravel Filters • Control the behaviour of a route • Process request before or after • Filters are located inside app/filters.php • Can be attached directly to route or controller • Can be in either Closure or filter class
  • 25. Laravel Auth • Laravel user authentication component • Provide a basic functionalities to authenticate users • Does not come with ACL / RBAC • Utilizes app/models/User.php • Laravel does not come with a user table by default
  • 27.
  • 28. Laravel Artisan • Laravel CLI • Uses the Symfony Console component • Manage table migrations, seed tables, create resourceful controllers and many more • Developer best friend!
  • 30. SOLID Principles Single Responsibility Principle! a class should have only one responsibility ! Open/Closed Principle! open for extension and closed for modification ! Liskov Substitution Principle Subtypes must be substitutable for their base types!
  • 31. SOLID Principles Interface Segregation Principle! many client-specific interfaces are better ! Dependency Inversion Principle! depends on abstraction ! !
  • 32. Laravel IOC • Inversion Of Control • Manages class dependencies • Based on dependency injection method • Dependencies are injected at run-time • Allowing dependencies to be easily swapped
  • 33. Laravel Service Providers • Act like a component bootstrap • Group related IoC registrations in one place • Can also run other functionalities like artisan commands
  • 34. Laravel Facades • Provide static interfaces to classes • Classes are resolved via IoC containers • Laravel is full with facades such as View, Cache, Config and others
  • 35. Laravel Workbench • A tool to help develop laravel based components • Scaffold the necessary boilerplates • We do not commit/ship workbench directory