If you are new to programing in general OR if you started programing in php before Object-Oriented Programming was even available, this presentation is designed to help you get up to speed on Object-Oriented terminology and give you practical skills as well as resources to continue learning.
This PPT gives information about:
Advanced Theories
Inheriting Classes
Inheriting Constructors and Destructors
Overriding Methods
Access Control
Using the Scope Resolution Operator
Creating Static Members
Abstract Classes and Methods
For beginners who want to go to the next level of OOP in PHP, we talk about magic methods, iterators, filters, some parts of the SPL, the subject/observer pattern and how you can build classes that have a lot of power and responsibility by implementing interfaces and then type-hinting and using just methods that are defined in the interface. Prefer composition over inheritance.
This PPT gives information about:
Advanced Theories
Inheriting Classes
Inheriting Constructors and Destructors
Overriding Methods
Access Control
Using the Scope Resolution Operator
Creating Static Members
Abstract Classes and Methods
For beginners who want to go to the next level of OOP in PHP, we talk about magic methods, iterators, filters, some parts of the SPL, the subject/observer pattern and how you can build classes that have a lot of power and responsibility by implementing interfaces and then type-hinting and using just methods that are defined in the interface. Prefer composition over inheritance.
This ppt gives information about:
1. OOPs Theory
2. Defining a Class
3. Creating an Object
4. The $this Attribute
5. Creating Constructors
6. Creating Destructors
This ppt gives information about:
1. OOPs Theory
2. Defining a Class
3. Creating an Object
4. The $this Attribute
5. Creating Constructors
6. Creating Destructors
Did you know you can now create Android, iOS, Windows and OS X apps with Delphi? Whether you know it as Borland Delphi, CodeGear Delphi or Embarcadero Delphi, this presentation shows you new features by version from Delphi 1 through Delphi XE5.
Abstraction, Encapsulation, Polymorphism, and Interfaces: whether you’ve been programming in PHP for years or are just starting your journey, these terms can be overwhelming even on a good day. Variables, conditionals, those all make sense. But this whole Object-Oriented thing is WAY more complicated. Not only that, people that already understand it act like it’s so easy and they talk right over the simple questions and never explain the basic concepts in a way that actually makes sense. In this session we’ll take you through real life examples of Object-Oriented terminology in a way that will make sense of all the mumbo jumbo and allow you to utilizing OOP immediately.
Demystifying Object-Oriented Programming - PHP UK Conference 2017Alena Holligan
Abstraction, Encapsulation, Polymorphism, and Interfaces: whether you’ve been programming in PHP for years or are just starting your journey, these terms can be overwhelming even on a good day. Variables, conditionals, those all make sense. But this whole Object-Oriented thing is WAY more complicated. Not only that, people that already understand it act like it’s so easy and they talk right over the simple questions and never explain the basic concepts in a way that actually makes sense. In this session we’ll take you through real life examples of Object-Oriented terminology in a way that will make sense of all the mumbo jumbo and allow you to utilizing OOP immediately.
Abstraction, encapsulation, polymorphism, and interfaces: whether you've been programming in PHP for years or are just starting your journey, these terms can be overwhelming even on a good day. Variables, conditionals, those all make sense. But this whole object-oriented thing is way more complicated. Not only that, people that already understand it, act like it's so easy and they talk right over the simple questions and never explain the basic concepts in a way that actually makes sense. In this session, we'll take you through real-life examples of object-oriented terminology in a way that will make sense of all the mumbo jumbo and allow you to utilize object-oriented programming (OOP) immediately.
Demystifying Object-Oriented Programming - Lone Star PHPAlena Holligan
Abstraction, Encapsulation, Polymorphism, and Interfaces: whether you’ve been programming in PHP for years or are just starting your journey, these terms can be overwhelming even on a good day. Variables, conditionals, those all make sense. But this whole Object-Oriented thing is WAY more complicated. Not only that, people that already understand it act like it’s so easy and they talk right over the simple questions and never explain the basic concepts in a way that actually makes sense. In this session we’ll take you through real life examples of Object-Oriented terminology in a way that will make sense of all the mumbo jumbo and allow you to utilizing OOP immediately.
Abstraction, Encapsulation, Polymorphism, and Interfaces: whether you’ve been programming in PHP for years or are just starting your journey, these terms can be overwhelming even on a good day. Variables, conditionals, those all make sense. But this whole Object-Oriented thing is WAY more complicated. Not only that, people that already understand it act like it’s so easy and they talk right over the simple questions and never explain the basic concepts in a way that actually makes sense. In this session we’ll take you through real life examples of Object-Oriented terminology in a way that will make sense of all the mumbo jumbo and allow you to utilizing OOP immediately.
Abstraction, Encapsulation, Polymorphism, Interfaces and Scope: whether you’ve been programming in PHP for years or are just starting your journey, these terms can be overwhelming. Not only that, people that already understand it act like it’s so easy and they talk right over the simple questions and never explain the basic concepts in a way that actually makes sense.
Real life examples of Object-Oriented terminology in a way that makes sense and allows you to utilizing OOP immediately.
Abstraction, Encapsulation, Polymorphism, and Interfaces: whether you've been programming in PHP for years or are just starting your journey, these terms can be overwhelming even on a good day. Variables, conditionals, those all make sense. But this whole Object-Oriented thing is WAY more complicated. Not only that, people that already understand it act like it's so easy and they talk right over the simple questions and never explain the basic concepts in a way that actually makes sense. In this session we'll take you through real life examples of Object-Oriented terminology in a way that will make sense of all the mumbo jumbo and allow you to utilizing OOP immediately.
Object-Oriented programming provides a framework for software collaboration. We’ll see how the terminology relates to our code. We’ll see how these techniques provide the framework for collaboration, and we’ll learn to match the strategies to the terminology. Our first key to collaboration is that we all understand this terminology and how it’s expressed in our code. We’ll be examining the code for a specific project that we’ll be building on throughout the conference, beginning with keeping track of file imports.
Abstraction, Encapsulation, Polymorphism, and Interfaces: whether you’ve been programming in PHP for years or are just starting your journey, these terms can be overwhelming even on a good day. Variables, conditionals, those all make sense. But this whole Object-Oriented thing is WAY more complicated. Not only that, people that already understand it act like it’s so easy and they talk right over the simple questions and never explain the basic concepts in a way that actually makes sense. In this session we’ll take you through real life examples of Object-Oriented terminology in a way that will make sense of all the mumbo jumbo and allow you to utilizing OOP immediately.
This presentation deals with pure object oriented concepts and defines basic principles of OOP's like Encapsulation , polymorphism , Inheritance and Abstraction.
"It takes courage to grow up and turn out to be who you really are."
- E. E. Cummings
In this rapidly changing world, what does it mean to achieve success? Is that even possible? How do you stay relevant with the constant barrage of new technology?
1. Define Success
2. The Way Our Brains Learn New Things: Making Connections
3. Healthy Brain = Success
How do you handle the variables specific to the environment you use: Development, QA, Production, etc? Environmental Variables of course. But WHAT are they, WHY should you use them, WHERE do you put them, and HOW are they used. As an added bonus, Environmental Variables are not limited to PHP!
Do you struggle with “work-life balance”? Can you “have it all”? What does that even mean? Is it possible that parenting can make you a better developer? And being a developer can help you to be a better parent? Whether you have children or are considering children, we’ll explore the good, the bad and the wonderful rewards of parenting in tech while sharing real tools to navigate the parenting journey. You don’t have to give up yourself, or the things you really want, you can build a life that works for YOU.
Full-time software engineer, conference speaker, leader of the Portland PHP User group, President of Cascadia PHP and Mom of three young children; Alena shares her own journey and what she has learned along the way, including having nine younger siblings. Find encouragement and tools for your own parenting journey.
Dependency injection is a powerful technique allowing different parts of a system to collaborate with each other. Injection is the passing of a dependency (such as a service or database connection) to an object that would use it. This way, the object need not change because the outside service changed. This often also allows the object to be more easily tested by injecting a mock or stub service as the dependency.
We don’t need to burden modern PHP code with countless “require” or “include” statements. In this talk, we’ll learn how the PHP autoloader works, how to write our own autoloader, and how to work with composer’s autoloading map. We’ll see exactly how to design our namespaces for PSR-4 compatibility so everything “just works.” We’ll learn the PEAR and PECL conventions as well. We’ll finish by learning how to create our own packages for distribution and reuse.
We all want our project to go well. We thus need clearly-defined goals. By structuring our projects around users’ needs we can ensure that the products do their job. We’ll learn to meet users where they are, think through their intuitive experiences, and create products that more effectively meet both stakeholder goals and our end users’ goals. We’ll practice thinking critically through the steps and decisions encountered in interacting with our product.
Refactoring is the art of improving the design of existing code. When we have an application that continues to produce revenue, it’s almost always better to reduce, reuse, and refactor, rather than throwing away the old code and starting anew. We’ll learn specific techniques, approaches, and code smells. We’ll see that our IDE can handle simple refactorings such as Extract Method. We’ll use our test suite to ensure that functionality did not change as a result of the refactoring. We’ll gain the habit of refactoring to make our code more expressive and therefore more easily understood after time has passed. Martin Fowler notes that the code we write today is merely tomorrow’s legacy code. Let’s make it as easy as we can on our future selves.
The Model-View-Controller (MVC) design pattern is heavily used (and misused) in the PHP world. Many PHP frameworks help us – expect us – to organize our web application around this pattern. We’ll examine the intended separation of concerns. We’ll see the middleware, the request-response loop. We’ll configure GET and POST routing. We’ll look at the pattern itself. The model represents the data in our application. The view is the visual component that presents the interface for users to interact with that data, such as clickable links, form fields, and buttons. The controller coordinates it all.
When & Why: Interfaces, abstract classes, traitsAlena Holligan
Naming things is hard but sorting out how your application should be structured shouldn’t be! It’s always frustrating when the boss or client hands you this giant ball of requirements and how everything is interconnected. Half the fun of programming is breaking these down and turning these requirements into code to solve the business needs. We’ll cover several code scenarios and show you the best way to break down complex domains.
Get a quick refresher on all aspects of Objects, as we cover basic inheritance and method/property visibility. We’ll learn these by example. We’ll see magic methods and anonymous functions. We’ll also learn about Exceptions and error handling the PHP way.
You’ve built a WordPress site or two (or 10), your installed plugins and themes to MOSTLY get what you want. Now you’re ready to learn the inner workings of WordPress and take your development to the next level. Jump into WordPress development and PHP by building a Plugin and learn to speak WordPress’ language: PHP.
Scope is a major factor in any application, from programing scope to project scope, and communication is key. We will discuss different application scopes including global, functional, class, and package scope. We'll demonstrate how namespaces fit into the scope and how everything ties together with communication of the project itself.
What is your greatest tool in your toolbox? Your brain! Sure, you could sharpen this tool and promote your project the normal way, with hard work and years of slow, incremental progress. Or you could use some of the brain’s built-in cheat codes and just hack your way to success.
Along with learning, our brains are plagued by a raft of bugs and unwanted features that we have been unable to remove. Use these features to your advantage to teach, learn, and persuade. Join us in a tour of some of the most amusing bugs and exploits that allow you to play with the interface between our brains and the world.
How to handle the variables specific to the environment you use: Development, QA, Production, etc. WHAT are the, WHY should you use them, WHERE do you put them, and HOW are they used. As an added bonus, Environmental Variables are not limited to PHP!
In this rapidly changing world, what does it mean to achieve success? Is that even possible? How do you stay relevant with the constant barrage of new technology? Debunking myths. Finding Truth. Getting Personal.
Exploiting the Brain for Fun & Profit #zendcon2016Alena Holligan
What is your greatest tool in your toolbox? Your brain! Sure, you could sharpen this tool and promote your project the normal way, with hard work and years of slow, incremental progress. Or you could use some of the brain's built-in cheat codes and just hack your way to success.
Along with learning, our brains are plagued by a raft of bugs and unwanted features that we have been unable to remove. Use these features to your advantage to teach, learn, and persuade. Join us in a tour of some of the most amusing bugs and exploits that allow you to play with the interface between our brains and the world.
Sure, you could improve yourself or promote your project the normal way, with hard work and years of slow, incremental progress. Or you could use some of the brain’s built-in cheat codes to level up on your way to success.
Along with learning, our brains are plagued by a raft of bugs and unwanted features that we have been unable to remove. Use these “features” to your advantage to teach, learn and persuade. Join us in a tour of some of the most amusing bugs and exploits that allow you to play with the interface between our brains and the world.
Sure, you could improve yourself or promote your project the normal way, with hard work and years of slow, incremental progress. Or you could use some of the brain's built-in cheat codes and just hack your way to success. Along with learning, our brains are plagued by a raft of bugs and unwanted features that we have been unable to remove. Use these “features” to your advantage to teach, learn and persuade. Join us in a tour of some of the most amusing bugs and exploits that allow you to play with the interface between our brains and the world.
Exploiting the Brain for Fun and Profit - Lone Star 2016Alena Holligan
Sure, you could improve yourself or promote your project the normal way, with hard work and years of slow, incremental progress. Or you could use some of the brain's built-in cheat codes and just hack your way to success.
Along with learning, our brains are plagued by a raft of bugs and unwanted features that we have been unable to remove. Use these "features" to your advantage to teach, learn and persuade. Join us in a tour of some of the most amusing bugs and exploits that allow you to play with the interface between our brains and the world.
Exploiting the Brain for Fun & Profit #ssphp16Alena Holligan
Sure, you could improve yourself or promote your project the normal way, with hard work and years of slow, incremental progress. Or you could use some of the brain's built-in cheat codes and just hack your way to success.
Along with learning, our brains are plagued by a raft of bugs and unwanted features that we have been unable to remove. Use these “features” to your advantage to teach, learn and persuade. Join us in a tour of some of the most amusing bugs and exploits that allow you to play with the interface between our brains and the world.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Accelerate your Kubernetes clusters with Varnish Caching
OOP in PHP
1. 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
2. Intro to OOP with PHP
a basic look into object-oriented programming
3. Basic PHP to make sure your running
<html>
<body>
<?php echo “Hello world!”; ?>
</body>
</html>
4. 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
5. 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
9. 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
10. 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.
11. 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
12. 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
13. 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.
14. 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
15. 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;
}
}
16. $user = new User();
$user->setName("Jane Smith");
$user->setTitle("Ms");
echo $user->getFormattedSalutation();
When the script is run, it will return:
Ms Jane Smith
Creating / Using the object Instance
17. 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
Constructor Method & Magic Methods
18. $user = new User("Jane Smith","Ms");
echo $user;
When the script is run, it will return:
Ms Jane Smith
the same result as before
Creating / Using the object Instance
19. 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
20. 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();
Creating and using a child class
21. When run, the script returns:
Ms Jane Smith
JavasScript, HTML, CSS, PHP
22. Polymorphism
Polymorphism describes a pattern in object
oriented programming in which classes have
different functionality while sharing a common
interface
23. 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
24. interface UserInterface {
public function getFormattedSalutation();
public function getName();
public function setName($name);
public function getTitle();
public function setTitle($title);
}
class User implements UserInterface { … }
25. 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.
26. abstract class User { //class
public $name; //property
public getName() { //method
echo $this->name;
}
abstract public function setName($name);
}
class Developer extends User { … }
27. Type Hinting
Functions are now able to force parameters to
be objects, interfaces, arrays or callable.
However, if NULL is used as the default
parameter value, it will be allowed as an
argument for any later call.
If class or interface is specified as type hint,
all its children/implementations are allowed.
28. class Resume {
public $user;
public function __construct(User $user) {
$this->user = $user;
}
public function formatHTML() {
$string = $this->user->getName();
...
}
}
$resume = new Resume($developer);
29. 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 = "")
30. 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
31. namespace myUser;
class User { //class
public $name; //property
public getName() { //method
echo $this->name;
}
public function setName($name);
}
class Developer extends myUserUser { … }
33. Where to go from here
Resources and other things to look into
34. Strengthen your skills
Code Review
Pair/peer programing
Contribute to open source
Open up a personal project
Continuous learning
Participate in the community, meetups,
conferences, forums, teach
36. Books
Design Patterns: Elements of Reusable Object-Oriented
Software - by Erich Gamma
Mastering Object Oriented PHP - by Brandon Savage
Python 3 Object Oriented Programming - by Dusty Phillips
Practical Object-Oriented Design in Ruby - by Sandi Metz
Clean Code / The Clean Coder - both by Robert Martin
The Pragmatic Programmer – by Andrew Hunt/David Thomas
Refactoring: Improving the Design of Existing Code
- by Martin Fowler
37. Podcasts, Videos and People
Listing: phppodcasts.com
Voices of the Elephpant
PHP Roundtable
YouTube: PHPUserGroup
NomadPHP
People: @CalEvans, @LornaJane, @adamculp
https://twitter.com/sketchings/lists/php
38. 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
Help me improve:
Survey: http://goo.gl/forms/4Huh9uCSGD
Joind.in: https://joind.in/event/php-oop1
Contact Info:
www.sketchings.com
@sketchings
alena@holligan.us