WELCOME TO ‘INTRO TO OOP WITH PHP’
Thank you for your interest. Files can be found at https://
github.com/sketchings/oop-basics
Contact Info:
www.sketchings.com
@sketchings
alena@holligan.us
INTRO TO OOP WITH PHP (INTRODUCTION)
A BASIC LOOK INTO OBJECT-ORIENTED PROGRAMMING
WHAT IS OOP?
➔Object-Oriented Programing
➔A programming concept that treats functions and
data as objects.
➔A programming methodology based on objects,
instead of functions and procedures
OOP VS PROCEDURAL OR FUNCTIONAL
• OOP is built around the "nouns", the things in the
system, and what they are capable of
• Whereas procedural or functional programming
is built around the "verbs" of the system, the
things you want the system to do
LET’S GET INTO SOME EXAMPLES
Files can be found at https://github.com/
sketchings/oop-basics
Contact Info:
www.sketchings.com
@sketchings
alena@holligan.us
WELCOME TO ‘INTRO TO OOP WITH PHP’
PART 1
Thank you for your interest. Files can be found at https://
github.com/sketchings/oop-basics
Contact Info:
www.sketchings.com
@sketchings
alena@holligan.us
INTRO TO OOP WITH PHP (PART 1)
A BASIC LOOK INTO OBJECT-ORIENTED PROGRAMMING
TERMINOLOGY
THE SINGLE MOST IMPORTANT PART
TERMS
• Class (properties, methods)
• Object
• Instance
• Abstraction
• Encapsulation
• Inheritance
CLASS
• A template/blueprint that facilitates creation of objects.
A set of program statements to do a certain task. Usually
represents a noun, such as a person, place or thing.
• Includes properties and methods — which are class
functions
OBJECT
• Instance of a class.
• In the real world object is a material thing that
can be seen and touched.
• In OOP, object is a self-contained entity that
consists of both data and procedures.
INSTANCE
• Single occurrence/copy of an object
• There might be one or several objects, but an
instance is a specific copy, to which you can have
a reference
class User { //class
private $name; //property
public getName() { //method
echo $this->name;
}
}
$user1 = new User(); //first instance of object
$user2 = new User(); //second instance of object
ABSTRACTION
• “An abstraction denotes the essential characteristics
of an object that distinguish it from all other kinds of
object and thus provide crisply defined conceptual
boundaries, relative to the perspective of the viewer.”

— G. Booch
• This is the class architecture itself.
ENCAPSULATION
• Scope. Controls who can access what. Restricting
access to some of the object’s components (properties
and methods), preventing unauthorized access.
• Public - everyone
• Protected - inherited classes
• Private - class itself, not children
• class User {

protected $name;

protected $title;

public function getFormattedSalutation() {

return $this->getSalutation();

}

protected function getSalutation() {

return $this->title . " " . $this->name;

}

public function getName() {

return $this->name;

}

public function setName($name) {

$this->name = $name;

}

public function getTitle() {

return $this->title;

}

public function setTitle($title) {

$this->title = $title;

}

}
CREATING / USING THE OBJECT INSTANCE
$user = new User();

$user->setName("Jane Smith");

$user->setTitle("Ms");

echo $user->getFormattedSalutation();
When the script is run, it will return:
Ms Jane Smith
CONSTRUCTOR METHOD & MAGIC METHODS
class User {

protected $name;

protected $title;



public function __construct($name, $title) {

$this->name = $name;

$this->title = $title;

}



public function __toString() {

return $this->getFormattedSalutation();

}

...

}
For more see http://php.net/manual/en/language.oop5.magic.php
CREATING / USING THE OBJECT INSTANCE
$user = new User("Jane Smith","Ms");

echo $user;
When the script is run, it will return the same result as before:
Ms Jane Smith
INHERITANCE: PASSES KNOWLEDGE DOWN
• Subclass, parent and a child relationship, allows for
reusability, extensibility.
• Additional code to an existing class without modifying it.
Uses keyword “extends”
• NUTSHELL: create a new class based on an existing class
with more data, create new objects based on this class
CREATING AND USING A CHILD CLASS
class Developer extends User {

public $skills = array();

public function getSalutation() {

return $this->title . " " . $this->name. ", Developer";

}

public function getSkillsString() {

echo implode(", ",$this->skills);

}

}
$developer = new Developer("Jane Smith", "Ms");

echo $developer;

echo "<br />";

$developer->skills = array("JavasScript", "HTML", "CSS");

$developer->skills[] = "PHP";

$developer->getSkillsString();
WHEN RUN, THE SCRIPT RETURNS:
Ms Jane Smith
JavasScript, HTML, CSS, PHP
FINISHED
QUESTION AND ANSWER TIME
THANK YOU FROM ALENA HOLLIGAN
Files at https://github.com/sketchings/oop-basics
Contact Info:
www.sketchings.com
@sketchings
alena@holligan.us
WELCOME TO ‘INTRO TO OOP WITH
PHP’ PART 2
Thank you for your interest. Files can be found at https://github.com/
sketchings/oop-basics
Contact Info:
www.sketchings.com
@sketchings
alena@holligan.us
INTRO TO OOP WITH PHP (PART 2)
A BASIC LOOK INTO OBJECT-ORIENTED PROGRAMMING
TERMINOLOGY
THE SINGLE MOST IMPORTANT PART
TERMS
• Class (properties, methods)
• Object
• Instance
• Abstraction
• Encapsulation
• Inheritance
TERMS CONTINUED
• Polymorphism
• Interface
• Abstract
• Type Hinting
• Namespaces
POLYMORPHISM
Polymorphism describes a pattern in object oriented programming in
which classes have different functionality while sharing a common
interface
INTERFACE
• Interface, specifies which methods a class must implement.
• All methods in interface must be public.
• Multiple interfaces can be implemented by using comma separation
• Interface may contain a CONSTANT, but may not be overridden by
implementing class
interface UserInterface {
public function getFormattedSalutation();
public function getName();
public function setName($name);
public function getTitle();
public function setTitle($title);
}
class User implements UserInterface { … }
ABSTRACT
An abstract class is a mix between an interface and a class. It can define
functionality as well as interface (in the form of abstract methods).
Classes extending an abstract class must implement all of the abstract
methods defined in the abstract class.
abstract class User { //class
public $name; //property
public getName() { //method
echo $this->name;
}
abstract public function setName($name);
}
class Developer extends User { … }
NAMESPACES
• Help create a new layer of code encapsulation
• Keep properties from colliding between areas of your code
• Only classes, interfaces, functions and constants are
affected
• Anything that does not have a namespace is considered in
the Global namespace (namespace = "")
NAMESPACES
• must be declared first (except 'declare)
• Can define multiple in the same file
• You can define that something be used in the "Global" namespace by
enclosing a non-labeled namespace in {} brackets.
• Use namespaces from within other namespaces, along with aliasing
• namespace myUser;
• class User { //class
• public $name; //property
• public getName() { //method
• echo $this->name;
• }
• public function setName($name);
• }
• class Developer extends myUserUser { … }
EXPLANATION COMPLETE
QUESTION AND ANSWER TIME
CHALLENGES
1. Change to User class to an abstract class.
2. Throw an error because your access is too restricted.
3. Extend the User class for another type of user, such as our
Developer example
4. Define 2 “User” classes in one file using namespacing
THANK YOU FROM ALENA HOLLIGAN
I hope you enjoyed this presentation and learned a lot in the
short time we had. Please stay tuned for more and fill out the
survey to help improve the training.
Contact Info:
www.sketchings.com
@sketchings
alena@holligan.us
RESOURCES
• LeanPub: The essentials of Object Oriented PHP

More Related Content

PDF
Take the Plunge with OOP from #pnwphp
PPT
PHP- Introduction to Object Oriented PHP
PDF
OOP in PHP
PDF
Object Oriented Programming in PHP
PDF
Intermediate OOP in PHP
PDF
09 Object Oriented Programming in PHP #burningkeyboards
PDF
A Gentle Introduction To Object Oriented Php
PPT
Oops in PHP
Take the Plunge with OOP from #pnwphp
PHP- Introduction to Object Oriented PHP
OOP in PHP
Object Oriented Programming in PHP
Intermediate OOP in PHP
09 Object Oriented Programming in PHP #burningkeyboards
A Gentle Introduction To Object Oriented Php
Oops in PHP

What's hot (20)

PDF
Demystifying Object-Oriented Programming - PHP[tek] 2017
PPTX
Intro to OOP PHP and Github
PPT
Synapseindia object oriented programming in php
PPT
Introduction to OOP with PHP
PPT
PHP - Introduction to Object Oriented Programming with PHP
PPT
Php Oop
PPTX
Ch8(oop)
PPTX
Oop in-php
PDF
Object Oriented Programming with PHP 5 - More OOP
PPT
Class 7 - PHP Object Oriented Programming
PPTX
FFW Gabrovo PMG - PHP OOP Part 3
PPT
Advanced php
ZIP
Object Oriented PHP5
PPTX
Anonymous Classes: Behind the Mask
PPT
Class and Objects in PHP
PPTX
Oops in php
PPTX
Object oreinted php | OOPs
PPT
Oops concepts in php
Demystifying Object-Oriented Programming - PHP[tek] 2017
Intro to OOP PHP and Github
Synapseindia object oriented programming in php
Introduction to OOP with PHP
PHP - Introduction to Object Oriented Programming with PHP
Php Oop
Ch8(oop)
Oop in-php
Object Oriented Programming with PHP 5 - More OOP
Class 7 - PHP Object Oriented Programming
FFW Gabrovo PMG - PHP OOP Part 3
Advanced php
Object Oriented PHP5
Anonymous Classes: Behind the Mask
Class and Objects in PHP
Oops in php
Object oreinted php | OOPs
Oops concepts in php
Ad

Similar to Demystifying Object-Oriented Programming #ssphp16 (20)

PDF
Demystifying Object-Oriented Programming - PHP UK Conference 2017
PDF
Demystifying Object-Oriented Programming - ZendCon 2016
PDF
Demystifying Object-Oriented Programming - Lone Star PHP
PDF
Demystifying Object-Oriented Programming - Midwest PHP
PPTX
UNIT III (8).pptx
PPTX
UNIT III (8).pptx
PPTX
Object Oriented PHP by Dr.C.R.Dhivyaa Kongu Engineering College
PDF
Demystifying Object-Oriented Programming #phpbnl18
PDF
OOP in PHP
PDF
Object_oriented_programming_OOP_with_PHP.pdf
DOCX
Oops concept in php
PDF
tutorial54
PDF
tutorial54
PPTX
Php oop (1)
PPTX
OOP in PHP
PPTX
Lecture-10_PHP-OOP.pptx
PDF
Demystifying oop
PDF
PHP OOP
PPT
PPTX
OOPS Characteristics (With Examples in PHP)
Demystifying Object-Oriented Programming - PHP UK Conference 2017
Demystifying Object-Oriented Programming - ZendCon 2016
Demystifying Object-Oriented Programming - Lone Star PHP
Demystifying Object-Oriented Programming - Midwest PHP
UNIT III (8).pptx
UNIT III (8).pptx
Object Oriented PHP by Dr.C.R.Dhivyaa Kongu Engineering College
Demystifying Object-Oriented Programming #phpbnl18
OOP in PHP
Object_oriented_programming_OOP_with_PHP.pdf
Oops concept in php
tutorial54
tutorial54
Php oop (1)
OOP in PHP
Lecture-10_PHP-OOP.pptx
Demystifying oop
PHP OOP
OOPS Characteristics (With Examples in PHP)
Ad

More from Alena Holligan (20)

PDF
2023 Longhorn PHP - Learn to Succeed .pdf
PDF
Environmental variables
PDF
Dev parent
PDF
Dependency Injection
PDF
Dependency Management
PDF
Experiential Project Design
PDF
Reduce Reuse Refactor
PDF
Organization Patterns: MVC
PDF
When & Why: Interfaces, abstract classes, traits
PDF
Object Features
PDF
Obect-Oriented Collaboration
PDF
WordCamp Portland 2018: PHP for WordPress
PDF
Let's Talk Scope
PDF
Exploiting the Brain for Fun and Profit
PDF
Environmental Variables
PDF
Learn to succeed
PDF
Exploiting the Brain for Fun & Profit #zendcon2016
PDF
Presentation Bulgaria PHP
PDF
Presentation pnwphp
PDF
Exploiting the Brain for Fun and Profit - Lone Star 2016
2023 Longhorn PHP - Learn to Succeed .pdf
Environmental variables
Dev parent
Dependency Injection
Dependency Management
Experiential Project Design
Reduce Reuse Refactor
Organization Patterns: MVC
When & Why: Interfaces, abstract classes, traits
Object Features
Obect-Oriented Collaboration
WordCamp Portland 2018: PHP for WordPress
Let's Talk Scope
Exploiting the Brain for Fun and Profit
Environmental Variables
Learn to succeed
Exploiting the Brain for Fun & Profit #zendcon2016
Presentation Bulgaria PHP
Presentation pnwphp
Exploiting the Brain for Fun and Profit - Lone Star 2016

Recently uploaded (20)

PDF
A review of recent deep learning applications in wood surface defect identifi...
PDF
Five Habits of High-Impact Board Members
PPTX
Chapter 5: Probability Theory and Statistics
PDF
sbt 2.0: go big (Scala Days 2025 edition)
PPT
Geologic Time for studying geology for geologist
PDF
UiPath Agentic Automation session 1: RPA to Agents
PDF
Consumable AI The What, Why & How for Small Teams.pdf
PDF
Two-dimensional Klein-Gordon and Sine-Gordon numerical solutions based on dee...
PDF
The influence of sentiment analysis in enhancing early warning system model f...
PDF
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
PPTX
The various Industrial Revolutions .pptx
PDF
Abstractive summarization using multilingual text-to-text transfer transforme...
PPT
Module 1.ppt Iot fundamentals and Architecture
PDF
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
PPTX
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
PPT
What is a Computer? Input Devices /output devices
PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PPTX
Microsoft Excel 365/2024 Beginner's training
PDF
Credit Without Borders: AI and Financial Inclusion in Bangladesh
A review of recent deep learning applications in wood surface defect identifi...
Five Habits of High-Impact Board Members
Chapter 5: Probability Theory and Statistics
sbt 2.0: go big (Scala Days 2025 edition)
Geologic Time for studying geology for geologist
UiPath Agentic Automation session 1: RPA to Agents
Consumable AI The What, Why & How for Small Teams.pdf
Two-dimensional Klein-Gordon and Sine-Gordon numerical solutions based on dee...
The influence of sentiment analysis in enhancing early warning system model f...
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
The various Industrial Revolutions .pptx
Abstractive summarization using multilingual text-to-text transfer transforme...
Module 1.ppt Iot fundamentals and Architecture
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
What is a Computer? Input Devices /output devices
Final SEM Unit 1 for mit wpu at pune .pptx
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Microsoft Excel 365/2024 Beginner's training
Credit Without Borders: AI and Financial Inclusion in Bangladesh

Demystifying Object-Oriented Programming #ssphp16

  • 1. WELCOME TO ‘INTRO TO OOP WITH PHP’ Thank you for your interest. Files can be found at https:// github.com/sketchings/oop-basics Contact Info: www.sketchings.com @sketchings [email protected]
  • 2. INTRO TO OOP WITH PHP (INTRODUCTION) A BASIC LOOK INTO OBJECT-ORIENTED PROGRAMMING
  • 3. WHAT IS OOP? ➔Object-Oriented Programing ➔A programming concept that treats functions and data as objects. ➔A programming methodology based on objects, instead of functions and procedures
  • 4. OOP VS PROCEDURAL OR FUNCTIONAL • OOP is built around the "nouns", the things in the system, and what they are capable of • Whereas procedural or functional programming is built around the "verbs" of the system, the things you want the system to do
  • 5. LET’S GET INTO SOME EXAMPLES Files can be found at https://github.com/ sketchings/oop-basics Contact Info: www.sketchings.com @sketchings [email protected]
  • 6. WELCOME TO ‘INTRO TO OOP WITH PHP’ PART 1 Thank you for your interest. Files can be found at https:// github.com/sketchings/oop-basics Contact Info: www.sketchings.com @sketchings [email protected]
  • 7. INTRO TO OOP WITH PHP (PART 1) A BASIC LOOK INTO OBJECT-ORIENTED PROGRAMMING
  • 9. TERMS • Class (properties, methods) • Object • Instance • Abstraction • Encapsulation • Inheritance
  • 10. CLASS • A template/blueprint that facilitates creation of objects. A set of program statements to do a certain task. Usually represents a noun, such as a person, place or thing. • Includes properties and methods — which are class functions
  • 11. OBJECT • Instance of a class. • In the real world object is a material thing that can be seen and touched. • In OOP, object is a self-contained entity that consists of both data and procedures.
  • 12. INSTANCE • Single occurrence/copy of an object • There might be one or several objects, but an instance is a specific copy, to which you can have a reference
  • 13. class User { //class private $name; //property public getName() { //method echo $this->name; } } $user1 = new User(); //first instance of object $user2 = new User(); //second instance of object
  • 14. ABSTRACTION • “An abstraction denotes the essential characteristics of an object that distinguish it from all other kinds of object and thus provide crisply defined conceptual boundaries, relative to the perspective of the viewer.”
 — G. Booch • This is the class architecture itself.
  • 15. ENCAPSULATION • Scope. Controls who can access what. Restricting access to some of the object’s components (properties and methods), preventing unauthorized access. • Public - everyone • Protected - inherited classes • Private - class itself, not children
  • 16. • class User {
 protected $name;
 protected $title;
 public function getFormattedSalutation() {
 return $this->getSalutation();
 }
 protected function getSalutation() {
 return $this->title . " " . $this->name;
 }
 public function getName() {
 return $this->name;
 }
 public function setName($name) {
 $this->name = $name;
 }
 public function getTitle() {
 return $this->title;
 }
 public function setTitle($title) {
 $this->title = $title;
 }
 }
  • 17. CREATING / USING THE OBJECT INSTANCE $user = new User();
 $user->setName("Jane Smith");
 $user->setTitle("Ms");
 echo $user->getFormattedSalutation(); When the script is run, it will return: Ms Jane Smith
  • 18. CONSTRUCTOR METHOD & MAGIC METHODS class User {
 protected $name;
 protected $title;
 
 public function __construct($name, $title) {
 $this->name = $name;
 $this->title = $title;
 }
 
 public function __toString() {
 return $this->getFormattedSalutation();
 }
 ...
 } For more see http://php.net/manual/en/language.oop5.magic.php
  • 19. CREATING / USING THE OBJECT INSTANCE $user = new User("Jane Smith","Ms");
 echo $user; When the script is run, it will return the same result as before: Ms Jane Smith
  • 20. INHERITANCE: PASSES KNOWLEDGE DOWN • Subclass, parent and a child relationship, allows for reusability, extensibility. • Additional code to an existing class without modifying it. Uses keyword “extends” • NUTSHELL: create a new class based on an existing class with more data, create new objects based on this class
  • 21. CREATING AND USING A CHILD CLASS class Developer extends User {
 public $skills = array();
 public function getSalutation() {
 return $this->title . " " . $this->name. ", Developer";
 }
 public function getSkillsString() {
 echo implode(", ",$this->skills);
 }
 } $developer = new Developer("Jane Smith", "Ms");
 echo $developer;
 echo "<br />";
 $developer->skills = array("JavasScript", "HTML", "CSS");
 $developer->skills[] = "PHP";
 $developer->getSkillsString();
  • 22. WHEN RUN, THE SCRIPT RETURNS: Ms Jane Smith JavasScript, HTML, CSS, PHP
  • 24. THANK YOU FROM ALENA HOLLIGAN Files at https://github.com/sketchings/oop-basics Contact Info: www.sketchings.com @sketchings [email protected]
  • 25. WELCOME TO ‘INTRO TO OOP WITH PHP’ PART 2 Thank you for your interest. Files can be found at https://github.com/ sketchings/oop-basics Contact Info: www.sketchings.com @sketchings [email protected]
  • 26. INTRO TO OOP WITH PHP (PART 2) A BASIC LOOK INTO OBJECT-ORIENTED PROGRAMMING
  • 27. TERMINOLOGY THE SINGLE MOST IMPORTANT PART
  • 28. TERMS • Class (properties, methods) • Object • Instance • Abstraction • Encapsulation • Inheritance
  • 29. TERMS CONTINUED • Polymorphism • Interface • Abstract • Type Hinting • Namespaces
  • 30. POLYMORPHISM Polymorphism describes a pattern in object oriented programming in which classes have different functionality while sharing a common interface
  • 31. INTERFACE • Interface, specifies which methods a class must implement. • All methods in interface must be public. • Multiple interfaces can be implemented by using comma separation • Interface may contain a CONSTANT, but may not be overridden by implementing class
  • 32. interface UserInterface { public function getFormattedSalutation(); public function getName(); public function setName($name); public function getTitle(); public function setTitle($title); } class User implements UserInterface { … }
  • 33. ABSTRACT An abstract class is a mix between an interface and a class. It can define functionality as well as interface (in the form of abstract methods). Classes extending an abstract class must implement all of the abstract methods defined in the abstract class.
  • 34. abstract class User { //class public $name; //property public getName() { //method echo $this->name; } abstract public function setName($name); } class Developer extends User { … }
  • 35. NAMESPACES • Help create a new layer of code encapsulation • Keep properties from colliding between areas of your code • Only classes, interfaces, functions and constants are affected • Anything that does not have a namespace is considered in the Global namespace (namespace = "")
  • 36. NAMESPACES • must be declared first (except 'declare) • Can define multiple in the same file • You can define that something be used in the "Global" namespace by enclosing a non-labeled namespace in {} brackets. • Use namespaces from within other namespaces, along with aliasing
  • 37. • namespace myUser; • class User { //class • public $name; //property • public getName() { //method • echo $this->name; • } • public function setName($name); • } • class Developer extends myUserUser { … }
  • 39. CHALLENGES 1. Change to User class to an abstract class. 2. Throw an error because your access is too restricted. 3. Extend the User class for another type of user, such as our Developer example 4. Define 2 “User” classes in one file using namespacing
  • 40. THANK YOU FROM ALENA HOLLIGAN I hope you enjoyed this presentation and learned a lot in the short time we had. Please stay tuned for more and fill out the survey to help improve the training. Contact Info: www.sketchings.com @sketchings [email protected]
  • 41. RESOURCES • LeanPub: The essentials of Object Oriented PHP