SlideShare uma empresa Scribd logo
1 de 21
Introduction to Object-
Oriented PHP
2
• Topics:
o OOP concepts – overview, throughout the chapter
o Defining and using objects
• Defining and instantiating classes
• Defining and using variables, constants, and operations
• Getters and setters
o Defining and using inheritance and polymorphism
• Building subclasses and overriding operations
• Using interfaces
o Advanced object-oriented functionality in PHP
• Comparing objects, Printing objects,
• Type hinting, Cloning objects,
• Overloading methods, (some sections WILL NOT BE
COVERED!!!)
3
Developing Object-Oriented PHP
• Object-oriented programming (OOP) refers to the creation of reusable
software object-types / classes that can be efficiently developed and
easily incorporated into multiple programs.
• In OOP an object represents an entity in the real world (a student, a desk,
a button, a file, a text input area, a loan, a web page, a shopping cart).
• An OOP program = a collection of objects that interact to solve a task /
problem.
4
Object-Oriented Programming
• Objects are self-contained, with data and operations that pertain to them
assembled into a single entity.
o In procedural programming data and operations are separate → this
methodology requires sending data to methods!
• Objects have:
o Identity; ex: 2 “OK” buttons, same attributes → separate handle vars
o State → a set of attributes (aka member variables, properties, data
fields) = properties or variables that relate to / describe the object, with
their current values.
o Behavior → a set of operations (aka methods) = actions or functions
that the object can perform to modify itself – its state, or perform for
some external effect / result.
5
Object-Oriented Programming
• Encapsulation (aka data hiding) central in OOP
o = access to data within an object is available only via the object’s
operations (= known as the interface of the object)
o = internal aspects of objects are hidden, wrapped as a birthday
present is wrapped by colorful paper 
• Advantages:
o objects can be used as black-boxes, if their interface is known;
o implementation of an interface can be changed without a cascading
effect to other parts of the project → if the interface doesn’t change
6
Object-Oriented Programming
• Classes are constructs that define objects of the same type.
A class is a template or blueprint that defines what an object’s data and
methods will be.
Objects of a class have:
o Same operations, behaving the same way
o Same attributes representing the same features, but values of those
attributes (= state) can vary from object to object
• An object is an instance of a class.
(terms objects and instances are used interchangeably)
• Any number of instances of a class can be created.
7
Object-Oriented Programming
• Small Web projects
o Consist of web scripts designed and written using an ad-hoc approach; a
function-oriented, procedural methodology
• Large Web software projects
o Need a properly thought-out development methodology – OOP →
o OO approach can help manage project complexity, increase code
reusability, reduce costs.
o OO analysis and design process = decide what object types, what hidden
data/operations and wrapper operations for each object type
o UML – as tool in OO design, to allow to describe classes and class
relationships
8
OOP in Web Programming
• A minimal class definition:
class classname { // classname is a PHP identifier!
// the class body = data & function member definitions
}
• Attributes
o are declared as variables within the class definition using keywords that
match their visibility: public, private, or protected.
(Recall that PHP doesn't otherwise have declarations of variables →
data member declarations against the nature of PHP?)
• Operations
o are created by declaring functions within the class definition.
9
Creating Classes in PHP
• Constructor = function used to create an object of the
class
o Declared as a function with a special name:
function __construct (param_list) { … }
o Usually performs initialization tasks: e.g. sets attributes to appropriate
starting values
o Called automatically when an object is created
o A default no-argument constructor is provided by the compiler only if a
constructor function is not explicitly declared in the class
o Cannot be overloaded (= 2+ constructors for a class); if you need a
variable # of parameters, use flexible parameter lists…
10
Creating Classes in PHP
• Destructor = opposite of constructor
o Declared as a function with a special name, cannot take parameters
function __destruct () { … }
o Allows some functionality that will be automatically executed just before
an object is destroyed
 An object is removed when there is no reference variable/handle left
to it
 Usually during the "script shutdown phase", which is typically right
before the execution of the PHP script finishes
o A default destructor provided by the compiler only if a destructor
function is not explicitly declared in the class
11
Creating Classes in PHP
• Create an object of a class = a particular individual that is a member of the
class by using the new keyword:
$newClassVariable = new ClassName(actual_param_list);
• Notes:
o Scope for PHP classes is global (program script level), as it is for functions
o Class names are case insensitive as are functions
o PHP 5 allows you to define multiple classes in a single program script
o The PHP parser reads classes into memory immediately after functions ⇒
class construction does not fail because a class is not previously defined in
the program scope.
12
Instantiating Classes
• From operations within the class, class’s data / methods can be
accessed / called by using:
o $this = a variable that refers to the current instance of the class,
and can be used only in the definition of the class, including the
constructor & destructor
o The pointer operator -> (similar to Java’s object member access operator
“.” )
o class Test {
public $attribute;
function f ($val) {
$this -> attribute = $val; // $this is mandatory!
} // if omitted, $attribute is
treated
} // as a local var in the function
13
Using Data/Method Members
No $ sign here
• From outside the class, accessible (as determined by access modifiers) data
and methods are accessed through a variable holding an instance of the
class, by using the same pointer operator.
class Test {
public $attribute;
}
$t = new Test();
$t->attribute = “value”;
echo $t->attribute;
14
Using Data/Method Members
• Three access / visibility modifiers introduced in PHP 5, which affect the scope
of access to class variables and functions:
o public : public class variables and functions can be accessed from inside
and outside the class
o protected : hides a variable or function from direct external class access
+ protected members are available in subclasses
o private : hides a variable or function from direct external class access +
protected members are hidden (NOT available) from all subclasses
• An access modifier has to be provided for each class instance variable
• Static class variables and functions can be declared without an access
modifier → default is public
15
Defining and Using Variables, Constants
and Functions
• Encapsulation : hide attributes from direct access from outside a class and
provide controlled access through accessor and mutator functions
o You can write custom getVariable() / setVariable($var) functions or
o Overload the functionality with the __get() and __set() functions in PHP
• __get() and __set()
o Prototype:
mixed __get($var);
// param represents the name of an attribute, __get returns the value of
that attribute
void __set($var, $value);
// params are the name of an attribute and the value to set it to
16
Getters and Setters
• __get() and __set()
o Can only be used for non-static attributes!
o You do not directly call these functions;
For an instance $acc of the BankAccount class:
$acc->Balance = 1000;
implicitly calls the __set() function with the value of
$name set to ‘Balance’, and the value of $value set to
1000.
(__get() works in a similar way)
17
Getters and Setters
• __get() and __set() functions’ value: a single access
point to an attribute ensures complete control over:
o attribute’s values
function __set($name, $value) {
echo "<p>Setter for $name called!</p>";
if (strcasecmp($name, "Balance")==0 && ($value>=0))
$this->$name = $value;
...
}
o underlying implementation: as a variable, retrieved from a
db when needed, a value inferred based on the values of
other attributes
→ transparent for clients as long as the accessor / mutator18
Getters and Setters
• Classes in Web development:
o Pages
o User-interface components
o Shopping carts
o Product categories
o Customers
• TLA Consulting example revisited - a Page class, goals:
o A consistent look and feel across the pages of the website
o Limit the amount of HTML needed to create a new page: easily
generate common parts, describe only uncommon parts
o Easy maintainable when changes in the common parts
o Flexible enough: ex. allow proper navigation elements in each page
19
Designing Classes
• Attributes:
o $content → content of the page, a combination of HTML and text
o $title → page’s title, with a default title to avoid blank titles
o $keywords → a list of keywords, to be used by search engines
o $navigation → an associative array with keys the text for the buttons
and the value the URL of the target page
• Operations:
o __set()
o Display() → to display a page of HTML, calls other functions to display
parts of the page:
o DisplayTitle(), DisplayKeywords(), DisplayStyles(), DisplayHeader(),
DisplayMenu(), DisplayFooter() → can be overridden in a possible
subclass
20
Class Page
ThankThank You !!!You !!!
For More Information click below link:
Follow Us on:
http://vibranttechnologies.co.in/php-classes-in-
mumbai.html

Mais conteúdo relacionado

Mais procurados (20)

Oops concepts in php
Oops concepts in phpOops concepts in php
Oops concepts in php
 
Php Oop
Php OopPhp Oop
Php Oop
 
Oop in-php
Oop in-phpOop in-php
Oop in-php
 
Object Oriented Programming with PHP 5 - More OOP
Object Oriented Programming with PHP 5 - More OOPObject Oriented Programming with PHP 5 - More OOP
Object Oriented Programming with PHP 5 - More OOP
 
Object oriented programming in php 5
Object oriented programming in php 5Object oriented programming in php 5
Object oriented programming in php 5
 
Introduction to OOP with PHP
Introduction to OOP with PHPIntroduction to OOP with PHP
Introduction to OOP with PHP
 
PHP Classes and OOPS Concept
PHP Classes and OOPS ConceptPHP Classes and OOPS Concept
PHP Classes and OOPS Concept
 
Object Oriented PHP5
Object Oriented PHP5Object Oriented PHP5
Object Oriented PHP5
 
Synapseindia object oriented programming in php
Synapseindia object oriented programming in phpSynapseindia object oriented programming in php
Synapseindia object oriented programming in php
 
Intermediate OOP in PHP
Intermediate OOP in PHPIntermediate OOP in PHP
Intermediate OOP in PHP
 
Class and Objects in PHP
Class and Objects in PHPClass and Objects in PHP
Class and Objects in PHP
 
FFW Gabrovo PMG - PHP OOP Part 3
FFW Gabrovo PMG - PHP OOP Part 3FFW Gabrovo PMG - PHP OOP Part 3
FFW Gabrovo PMG - PHP OOP Part 3
 
Introduction to PHP OOP
Introduction to PHP OOPIntroduction to PHP OOP
Introduction to PHP OOP
 
Oops in PHP By Nyros Developer
Oops in PHP By Nyros DeveloperOops in PHP By Nyros Developer
Oops in PHP By Nyros Developer
 
Introduction to php oop
Introduction to php oopIntroduction to php oop
Introduction to php oop
 
Advanced php
Advanced phpAdvanced php
Advanced php
 
Intro to OOP PHP and Github
Intro to OOP PHP and GithubIntro to OOP PHP and Github
Intro to OOP PHP and Github
 
Php oop presentation
Php   oop presentationPhp   oop presentation
Php oop presentation
 
Only oop
Only oopOnly oop
Only oop
 
Oops in php
Oops in phpOops in php
Oops in php
 

Destaque

O que esperar do Zend Framework 2
O que esperar do Zend Framework 2O que esperar do Zend Framework 2
O que esperar do Zend Framework 2Flávio Lisboa
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPSérgio Vilar
 
Workshop: WebSockets com HTML 5 & PHP - Gustavo Ciello
Workshop: WebSockets com HTML 5 & PHP - Gustavo CielloWorkshop: WebSockets com HTML 5 & PHP - Gustavo Ciello
Workshop: WebSockets com HTML 5 & PHP - Gustavo CielloTchelinux
 
PHP 5.3 - Estruturas de Controle
PHP 5.3 - Estruturas de ControlePHP 5.3 - Estruturas de Controle
PHP 5.3 - Estruturas de ControleGeorge Mendonça
 
HTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPCHTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPCMayflower GmbH
 
Classroom Objects: PowerPoint Activities
Classroom Objects: PowerPoint ActivitiesClassroom Objects: PowerPoint Activities
Classroom Objects: PowerPoint ActivitiesA. Simoes
 
PHP Powerpoint -- Teach PHP with this
PHP Powerpoint -- Teach PHP with thisPHP Powerpoint -- Teach PHP with this
PHP Powerpoint -- Teach PHP with thisIan Macali
 

Destaque (10)

O que esperar do Zend Framework 2
O que esperar do Zend Framework 2O que esperar do Zend Framework 2
O que esperar do Zend Framework 2
 
SQL Devlopment for 10 ppt
SQL Devlopment for 10 pptSQL Devlopment for 10 ppt
SQL Devlopment for 10 ppt
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHP
 
Workshop: WebSockets com HTML 5 & PHP - Gustavo Ciello
Workshop: WebSockets com HTML 5 & PHP - Gustavo CielloWorkshop: WebSockets com HTML 5 & PHP - Gustavo Ciello
Workshop: WebSockets com HTML 5 & PHP - Gustavo Ciello
 
PHP 5.3 - Estruturas de Controle
PHP 5.3 - Estruturas de ControlePHP 5.3 - Estruturas de Controle
PHP 5.3 - Estruturas de Controle
 
Css Ppt
Css PptCss Ppt
Css Ppt
 
HTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPCHTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPC
 
Classroom Objects: PowerPoint Activities
Classroom Objects: PowerPoint ActivitiesClassroom Objects: PowerPoint Activities
Classroom Objects: PowerPoint Activities
 
Php mysql ppt
Php mysql pptPhp mysql ppt
Php mysql ppt
 
PHP Powerpoint -- Teach PHP with this
PHP Powerpoint -- Teach PHP with thisPHP Powerpoint -- Teach PHP with this
PHP Powerpoint -- Teach PHP with this
 

Semelhante a PHP- Introduction to Object Oriented PHP

Lecture-10_PHP-OOP.pptx
Lecture-10_PHP-OOP.pptxLecture-10_PHP-OOP.pptx
Lecture-10_PHP-OOP.pptxShaownRoy1
 
UNIT-IV WT web technology for 1st year cs
UNIT-IV WT web technology for 1st year csUNIT-IV WT web technology for 1st year cs
UNIT-IV WT web technology for 1st year csjaved75
 
PHP OOP Lecture - 01.pptx
PHP OOP Lecture - 01.pptxPHP OOP Lecture - 01.pptx
PHP OOP Lecture - 01.pptxAtikur Rahman
 
Object Oriented PHP - PART-1
Object Oriented PHP - PART-1Object Oriented PHP - PART-1
Object Oriented PHP - PART-1Jalpesh Vasa
 
Object Oriented Programming Constructors & Destructors
Object Oriented Programming  Constructors &  DestructorsObject Oriented Programming  Constructors &  Destructors
Object Oriented Programming Constructors & Destructorsanitashinde33
 
object oriented programing lecture 1
object oriented programing lecture 1object oriented programing lecture 1
object oriented programing lecture 1Geophery sanga
 
Oop in php lecture 2
Oop in  php lecture 2Oop in  php lecture 2
Oop in php lecture 2Mudasir Syed
 
Object oriented programming
Object oriented programmingObject oriented programming
Object oriented programmingMH Abid
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented Programmingsharmisivarajah
 
Object oriented programming in java
Object oriented programming in javaObject oriented programming in java
Object oriented programming in javaElizabeth alexander
 
Ccourse 140618093931-phpapp02
Ccourse 140618093931-phpapp02Ccourse 140618093931-phpapp02
Ccourse 140618093931-phpapp02Getachew Ganfur
 
C++ Programming Course
C++ Programming CourseC++ Programming Course
C++ Programming CourseDennis Chang
 
JavaScript OOPS Implimentation
JavaScript OOPS ImplimentationJavaScript OOPS Implimentation
JavaScript OOPS ImplimentationUsman Mehmood
 
Concept of Object-Oriented in C++
Concept of Object-Oriented in C++Concept of Object-Oriented in C++
Concept of Object-Oriented in C++Abdullah Jan
 

Semelhante a PHP- Introduction to Object Oriented PHP (20)

Lecture-10_PHP-OOP.pptx
Lecture-10_PHP-OOP.pptxLecture-10_PHP-OOP.pptx
Lecture-10_PHP-OOP.pptx
 
UNIT-IV WT web technology for 1st year cs
UNIT-IV WT web technology for 1st year csUNIT-IV WT web technology for 1st year cs
UNIT-IV WT web technology for 1st year cs
 
Php oop (1)
Php oop (1)Php oop (1)
Php oop (1)
 
PHP OOP Lecture - 01.pptx
PHP OOP Lecture - 01.pptxPHP OOP Lecture - 01.pptx
PHP OOP Lecture - 01.pptx
 
Object Oriented PHP - PART-1
Object Oriented PHP - PART-1Object Oriented PHP - PART-1
Object Oriented PHP - PART-1
 
oopm 2.pdf
oopm 2.pdfoopm 2.pdf
oopm 2.pdf
 
Oopsinphp
OopsinphpOopsinphp
Oopsinphp
 
My c++
My c++My c++
My c++
 
Object oriented programming
Object oriented programmingObject oriented programming
Object oriented programming
 
Object Oriented Programming Constructors & Destructors
Object Oriented Programming  Constructors &  DestructorsObject Oriented Programming  Constructors &  Destructors
Object Oriented Programming Constructors & Destructors
 
Oops
OopsOops
Oops
 
object oriented programing lecture 1
object oriented programing lecture 1object oriented programing lecture 1
object oriented programing lecture 1
 
Oop in php lecture 2
Oop in  php lecture 2Oop in  php lecture 2
Oop in php lecture 2
 
Object oriented programming
Object oriented programmingObject oriented programming
Object oriented programming
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented Programming
 
Object oriented programming in java
Object oriented programming in javaObject oriented programming in java
Object oriented programming in java
 
Ccourse 140618093931-phpapp02
Ccourse 140618093931-phpapp02Ccourse 140618093931-phpapp02
Ccourse 140618093931-phpapp02
 
C++ Programming Course
C++ Programming CourseC++ Programming Course
C++ Programming Course
 
JavaScript OOPS Implimentation
JavaScript OOPS ImplimentationJavaScript OOPS Implimentation
JavaScript OOPS Implimentation
 
Concept of Object-Oriented in C++
Concept of Object-Oriented in C++Concept of Object-Oriented in C++
Concept of Object-Oriented in C++
 

Mais de Vibrant Technologies & Computers

Data ware housing - Introduction to data ware housing process.
Data ware housing - Introduction to data ware housing process.Data ware housing - Introduction to data ware housing process.
Data ware housing - Introduction to data ware housing process.Vibrant Technologies & Computers
 

Mais de Vibrant Technologies & Computers (20)

Buisness analyst business analysis overview ppt 5
Buisness analyst business analysis overview ppt 5Buisness analyst business analysis overview ppt 5
Buisness analyst business analysis overview ppt 5
 
SQL Introduction to displaying data from multiple tables
SQL Introduction to displaying data from multiple tables  SQL Introduction to displaying data from multiple tables
SQL Introduction to displaying data from multiple tables
 
SQL- Introduction to MySQL
SQL- Introduction to MySQLSQL- Introduction to MySQL
SQL- Introduction to MySQL
 
SQL- Introduction to SQL database
SQL- Introduction to SQL database SQL- Introduction to SQL database
SQL- Introduction to SQL database
 
ITIL - introduction to ITIL
ITIL - introduction to ITILITIL - introduction to ITIL
ITIL - introduction to ITIL
 
Salesforce - Introduction to Security & Access
Salesforce -  Introduction to Security & Access Salesforce -  Introduction to Security & Access
Salesforce - Introduction to Security & Access
 
Data ware housing- Introduction to olap .
Data ware housing- Introduction to  olap .Data ware housing- Introduction to  olap .
Data ware housing- Introduction to olap .
 
Data ware housing - Introduction to data ware housing process.
Data ware housing - Introduction to data ware housing process.Data ware housing - Introduction to data ware housing process.
Data ware housing - Introduction to data ware housing process.
 
Data ware housing- Introduction to data ware housing
Data ware housing- Introduction to data ware housingData ware housing- Introduction to data ware housing
Data ware housing- Introduction to data ware housing
 
Salesforce - classification of cloud computing
Salesforce - classification of cloud computingSalesforce - classification of cloud computing
Salesforce - classification of cloud computing
 
Salesforce - cloud computing fundamental
Salesforce - cloud computing fundamentalSalesforce - cloud computing fundamental
Salesforce - cloud computing fundamental
 
SQL- Introduction to PL/SQL
SQL- Introduction to  PL/SQLSQL- Introduction to  PL/SQL
SQL- Introduction to PL/SQL
 
SQL- Introduction to advanced sql concepts
SQL- Introduction to  advanced sql conceptsSQL- Introduction to  advanced sql concepts
SQL- Introduction to advanced sql concepts
 
SQL Inteoduction to SQL manipulating of data
SQL Inteoduction to SQL manipulating of data   SQL Inteoduction to SQL manipulating of data
SQL Inteoduction to SQL manipulating of data
 
SQL- Introduction to SQL Set Operations
SQL- Introduction to SQL Set OperationsSQL- Introduction to SQL Set Operations
SQL- Introduction to SQL Set Operations
 
Sas - Introduction to designing the data mart
Sas - Introduction to designing the data martSas - Introduction to designing the data mart
Sas - Introduction to designing the data mart
 
Sas - Introduction to working under change management
Sas - Introduction to working under change managementSas - Introduction to working under change management
Sas - Introduction to working under change management
 
SAS - overview of SAS
SAS - overview of SASSAS - overview of SAS
SAS - overview of SAS
 
Teradata - Architecture of Teradata
Teradata - Architecture of TeradataTeradata - Architecture of Teradata
Teradata - Architecture of Teradata
 
Teradata - Restoring Data
Teradata - Restoring Data Teradata - Restoring Data
Teradata - Restoring Data
 

Último

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 

Último (20)

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 

PHP- Introduction to Object Oriented PHP

  • 1.
  • 3. • Topics: o OOP concepts – overview, throughout the chapter o Defining and using objects • Defining and instantiating classes • Defining and using variables, constants, and operations • Getters and setters o Defining and using inheritance and polymorphism • Building subclasses and overriding operations • Using interfaces o Advanced object-oriented functionality in PHP • Comparing objects, Printing objects, • Type hinting, Cloning objects, • Overloading methods, (some sections WILL NOT BE COVERED!!!) 3 Developing Object-Oriented PHP
  • 4. • Object-oriented programming (OOP) refers to the creation of reusable software object-types / classes that can be efficiently developed and easily incorporated into multiple programs. • In OOP an object represents an entity in the real world (a student, a desk, a button, a file, a text input area, a loan, a web page, a shopping cart). • An OOP program = a collection of objects that interact to solve a task / problem. 4 Object-Oriented Programming
  • 5. • Objects are self-contained, with data and operations that pertain to them assembled into a single entity. o In procedural programming data and operations are separate → this methodology requires sending data to methods! • Objects have: o Identity; ex: 2 “OK” buttons, same attributes → separate handle vars o State → a set of attributes (aka member variables, properties, data fields) = properties or variables that relate to / describe the object, with their current values. o Behavior → a set of operations (aka methods) = actions or functions that the object can perform to modify itself – its state, or perform for some external effect / result. 5 Object-Oriented Programming
  • 6. • Encapsulation (aka data hiding) central in OOP o = access to data within an object is available only via the object’s operations (= known as the interface of the object) o = internal aspects of objects are hidden, wrapped as a birthday present is wrapped by colorful paper  • Advantages: o objects can be used as black-boxes, if their interface is known; o implementation of an interface can be changed without a cascading effect to other parts of the project → if the interface doesn’t change 6 Object-Oriented Programming
  • 7. • Classes are constructs that define objects of the same type. A class is a template or blueprint that defines what an object’s data and methods will be. Objects of a class have: o Same operations, behaving the same way o Same attributes representing the same features, but values of those attributes (= state) can vary from object to object • An object is an instance of a class. (terms objects and instances are used interchangeably) • Any number of instances of a class can be created. 7 Object-Oriented Programming
  • 8. • Small Web projects o Consist of web scripts designed and written using an ad-hoc approach; a function-oriented, procedural methodology • Large Web software projects o Need a properly thought-out development methodology – OOP → o OO approach can help manage project complexity, increase code reusability, reduce costs. o OO analysis and design process = decide what object types, what hidden data/operations and wrapper operations for each object type o UML – as tool in OO design, to allow to describe classes and class relationships 8 OOP in Web Programming
  • 9. • A minimal class definition: class classname { // classname is a PHP identifier! // the class body = data & function member definitions } • Attributes o are declared as variables within the class definition using keywords that match their visibility: public, private, or protected. (Recall that PHP doesn't otherwise have declarations of variables → data member declarations against the nature of PHP?) • Operations o are created by declaring functions within the class definition. 9 Creating Classes in PHP
  • 10. • Constructor = function used to create an object of the class o Declared as a function with a special name: function __construct (param_list) { … } o Usually performs initialization tasks: e.g. sets attributes to appropriate starting values o Called automatically when an object is created o A default no-argument constructor is provided by the compiler only if a constructor function is not explicitly declared in the class o Cannot be overloaded (= 2+ constructors for a class); if you need a variable # of parameters, use flexible parameter lists… 10 Creating Classes in PHP
  • 11. • Destructor = opposite of constructor o Declared as a function with a special name, cannot take parameters function __destruct () { … } o Allows some functionality that will be automatically executed just before an object is destroyed  An object is removed when there is no reference variable/handle left to it  Usually during the "script shutdown phase", which is typically right before the execution of the PHP script finishes o A default destructor provided by the compiler only if a destructor function is not explicitly declared in the class 11 Creating Classes in PHP
  • 12. • Create an object of a class = a particular individual that is a member of the class by using the new keyword: $newClassVariable = new ClassName(actual_param_list); • Notes: o Scope for PHP classes is global (program script level), as it is for functions o Class names are case insensitive as are functions o PHP 5 allows you to define multiple classes in a single program script o The PHP parser reads classes into memory immediately after functions ⇒ class construction does not fail because a class is not previously defined in the program scope. 12 Instantiating Classes
  • 13. • From operations within the class, class’s data / methods can be accessed / called by using: o $this = a variable that refers to the current instance of the class, and can be used only in the definition of the class, including the constructor & destructor o The pointer operator -> (similar to Java’s object member access operator “.” ) o class Test { public $attribute; function f ($val) { $this -> attribute = $val; // $this is mandatory! } // if omitted, $attribute is treated } // as a local var in the function 13 Using Data/Method Members No $ sign here
  • 14. • From outside the class, accessible (as determined by access modifiers) data and methods are accessed through a variable holding an instance of the class, by using the same pointer operator. class Test { public $attribute; } $t = new Test(); $t->attribute = “value”; echo $t->attribute; 14 Using Data/Method Members
  • 15. • Three access / visibility modifiers introduced in PHP 5, which affect the scope of access to class variables and functions: o public : public class variables and functions can be accessed from inside and outside the class o protected : hides a variable or function from direct external class access + protected members are available in subclasses o private : hides a variable or function from direct external class access + protected members are hidden (NOT available) from all subclasses • An access modifier has to be provided for each class instance variable • Static class variables and functions can be declared without an access modifier → default is public 15 Defining and Using Variables, Constants and Functions
  • 16. • Encapsulation : hide attributes from direct access from outside a class and provide controlled access through accessor and mutator functions o You can write custom getVariable() / setVariable($var) functions or o Overload the functionality with the __get() and __set() functions in PHP • __get() and __set() o Prototype: mixed __get($var); // param represents the name of an attribute, __get returns the value of that attribute void __set($var, $value); // params are the name of an attribute and the value to set it to 16 Getters and Setters
  • 17. • __get() and __set() o Can only be used for non-static attributes! o You do not directly call these functions; For an instance $acc of the BankAccount class: $acc->Balance = 1000; implicitly calls the __set() function with the value of $name set to ‘Balance’, and the value of $value set to 1000. (__get() works in a similar way) 17 Getters and Setters
  • 18. • __get() and __set() functions’ value: a single access point to an attribute ensures complete control over: o attribute’s values function __set($name, $value) { echo "<p>Setter for $name called!</p>"; if (strcasecmp($name, "Balance")==0 && ($value>=0)) $this->$name = $value; ... } o underlying implementation: as a variable, retrieved from a db when needed, a value inferred based on the values of other attributes → transparent for clients as long as the accessor / mutator18 Getters and Setters
  • 19. • Classes in Web development: o Pages o User-interface components o Shopping carts o Product categories o Customers • TLA Consulting example revisited - a Page class, goals: o A consistent look and feel across the pages of the website o Limit the amount of HTML needed to create a new page: easily generate common parts, describe only uncommon parts o Easy maintainable when changes in the common parts o Flexible enough: ex. allow proper navigation elements in each page 19 Designing Classes
  • 20. • Attributes: o $content → content of the page, a combination of HTML and text o $title → page’s title, with a default title to avoid blank titles o $keywords → a list of keywords, to be used by search engines o $navigation → an associative array with keys the text for the buttons and the value the URL of the target page • Operations: o __set() o Display() → to display a page of HTML, calls other functions to display parts of the page: o DisplayTitle(), DisplayKeywords(), DisplayStyles(), DisplayHeader(), DisplayMenu(), DisplayFooter() → can be overridden in a possible subclass 20 Class Page
  • 21. ThankThank You !!!You !!! For More Information click below link: Follow Us on: http://vibranttechnologies.co.in/php-classes-in- mumbai.html

Notas do Editor

  1. Public can be replaced with var -&amp;gt; public visibility by default!
  2. If ref var is assigned null -&amp;gt; destructor called if no other ref var left to that object!