W3docs

Learn object oriented PHP

"I won't lie I've watched a lot of php OOP courses and this is the best!!"

Start course

WHAT'S COVERED IN THIS COURSE?

I combined research with lessons learnt from feedback that I received for my previous OOPHP stuff in order to come up with the best, most-relevant material for today's PHP developer.

Here is a list of the content that I cover. One of the main difference between this course and most others is that you are given the opportunity to practice what you've just been shown, followed by my solution. Students of my previous courses said that this was a very effective way for them to reinforce that knowledge...it just works.

Course content

Section 1Chapter 1

  • Course Introduction
    1:40
  • Creating classes
    5:08
  • Class properties
    6:28
  • Class methods
    8:02
  • Method arguments
    4:50
  • Named arguments
    6:28
  • Constructors
    8:16
  • Constructor promoted properties
    2:28
  • Type hinting
    11:25
  • Class type declarations
    7:59
  • Return type declarations
    4:15
  • Next steps
    0:29

Section 2Chapter 2

  • Introduction to inheritancePremium
    9:19
  • Redundancy and duplicationPremium
    8:57
  • The 'extends' keywordPremium
    6:43
  • Inheritance and constructorsPremium
    6:01
  • Inheritance challengePremium
    4:53
  • Overriding parent methodsPremium
    4:31
  • Introduction to visibilityPremium
    3:10
  • Protected propertiesPremium
    5:19
  • Private propertiesPremium
    4:31
  • Method visibilityPremium
    3:21

Section 3Chapter 3

  • EncapsulationPremium
    9:53
  • Typed propertiesPremium
    5:11
  • Union typesPremium
    7:59
  • Static propertiesPremium
    8:10
  • Static methodsPremium
    4:01
  • Class constantsPremium
    6:03
  • Abstract classesPremium
    4:46
  • Abstract methodsPremium
    5:06
  • InterfacesPremium
    8:30
  • Introduction to traitsPremium
    8:18

Section 4Chapter 4

  • Combining traits and interfacesPremium
    7:36
  • Traits and precedencePremium
    8:07
  • Abstract methods in traitsPremium
    9:14
  • Static methods in traitsPremium
    2:10
  • Late static bindingPremium
    8:52
  • The 'final' keywordPremium
    7:03
  • Introduction to ExceptionsPremium
    7:14
  • Try / catch blocksPremium
    4:51
  • Exception subclassesPremium
    6:49
  • Custom ExceptionsPremium
    6:20
  • finally blocksPremium
    4:46
  • Error classPremium
    7:40

Section 5Chapter 5

  • __get magic methodPremium
    5:27
  • __set magic methodPremium
    9:41
  • __unset magic methodPremium
    5:32
  • __toString magic methodPremium
    5:55
  • __destruct magic methodPremium
    3:50
  • __call magic methodPremium
    8:25
  • __clone magic methodPremium
    8:46
  • __invoke magic methodPremium
    3:15

Section 6Chapter 6

  • Introduction to namespacesPremium
    6:12
  • Organizing using namespacesPremium
    5:59
  • Introduction to autoloadingPremium
    4:50
  • Autoloading namespaced classesPremium
    5:18
  • Introduction to composerPremium
    9:42
  • Autoloading with composerPremium
    8:12
  • Inspecting classesPremium
    13:25
  • Inspecting class attributesPremium
    6:30
  • Reflection API: ReflectionClassPremium
    10:17
  • Reflection API: ReflectionMethodPremium
    9:07

Section 7Chapter 7

  • Single Responsibility PrinciplePremium
    10:35
  • CompositionPremium
    10:43
  • Dependency InjectionPremium
    7:01
  • PolymorphismPremium
    6:29
  • Callables Part OnePremium
    8:19
  • Callables Part TwoPremium
    7:25
  • Anonymous ClassesPremium
    7:23

Section 8Chapter 8

  • Database Section IntroductionPremium
    3:05
  • Creating a MySQL DatabasePremium
    2:55
  • The Singleton PatternPremium
    8:23
  • PHP Data Objects (PDO)Premium
    7:25
  • PDO Queries Part 1Premium
    7:19
  • PDO Queries Part 2Premium
    7:08
  • Introduction to Object Relational MappingPremium
    5:50
  • ORM SetupPremium
    5:25
  • Creating ORM Entity ClassesPremium
    6:08
  • Generating Schema SQLPremium
    2:30
  • Entity Creation PracticePremium
    8:14
  • Many to One RelationshipsPremium
    5:31
  • Many to Many RelationshipsPremium
    7:05
  • Querying using Entity ManagerPremium
    11:09

Section 9Chapter 9

  • Introduction to SerializationPremium
    7:14
  • Serializing ObjectsPremium
    5:07
  • Unserializing ObjectsPremium
    3:26
  • __sleep Magic MethodPremium
    3:38
  • __wakeup Magic MethodPremium
    1:50
  • __serialize Magic MethodPremium
    4:24
  • __unserialize Magic MethodPremium
    6:29
  • DateTime ClassPremium
    6:07
  • Comparing DatesPremium
    5:50
  • Modifying DatesPremium
    3:59

Section 10Chapter 10

  • Array AccessPremium
    9:54
  • Introduction to the Iterator InterfacePremium
    9:11
  • Iterator Interface Part 2Premium
    5:11
  • Countable InterfacePremium
    3:28
  • IteratorAggregatePremium
    5:37
  • ArrayObjectPremium
    6:17
  • Collection Class Part 1Premium
    8:27
  • Collection Class Part 2Premium
    4:11

Section 11Chapter 11

  • Introduction to TestingPremium
    0:23
  • PHPUnit SetupPremium
    7:45
  • Testing ObjectsPremium
    7:22
  • setUp MethodPremium
    3:34
  • Error Handling in TestsPremium
    6:31
  • Introduction to Test DoublesPremium
    5:09
  • Mocking a DependencyPremium
    8:49
  • Introduction to Test Driven DevelopmentPremium
    8:53
  • Improving a TestPremium
    2:10
  • TDD ChallengePremium
    5:15
  • Using Tests to RefactorPremium
    2:17
  • Take Your Testing FurtherPremium
    0:51

Section 12Chapter 12

  • Design Patterns SetupPremium
    2:21
  • CompositePremium
    9:04
  • DecoratorPremium
    15:48
  • AdapterPremium
    8:22
  • StrategyPremium
    13:02
  • ObserverPremium
    16:50
  • Null ObjectPremium
    6:49
  • Dependency InjectionPremium
    14:52
  • Service LocatorPremium
    18:44
  • Factory MethodPremium
    6:49
  • TBCPremium
    0:01

Course instructor

Photo of Gary Clarke

Gary Clarke

Hello and thank you so much for checking out my work. My name is Gary Clarke and I'm a software developer with many years experience, primarily in PHP. I started creating video tutorials during lockdown in 2020 because I wanted the challenge of being able to explain complex / technical subjects to others in a way which is easy to undertsand and remember.

At this moment in time, my videos have been watched nearly half a million times and I intend to keep creating new and improved content and teaching more and more new people. It would be my pleasure to see you on the inside of one of my courses.