PHP started life as a language that was used for embedding simple executable content in a web page, and has grown rapidly into a fully fledged system - by release 4 (PHP4) it had become almost as flexible as as any other language for web based applications while retaining its ability to do simple web page inserts very easily. An Object Oriented model was introduced at PHP4, which sits on top of the other facilities of the language and, whilst it's good, has one or two quirks and limitations. Taking the background from which PHP came, the type of applications run, and the fact that OO was essentially bolted on the side, uptake / use of objects in PHP 4 has not been huge.
Our regular PHP course - a 4 day course introducing PHP for newcomers to the language - briefly mentions Object Orientation in PHP but goes no further - realistically, for most people the OO has been something that haven't wanted to use, and to learn both the principles and practise within a 4 day session in which you learn all the rest of PHP is a bit of a tall order.
With the release of PHP5, we have added a one day
"Object Orientation in PHP" course to our
schedule. It's for experienced existing PHP programmers who are probably NOT familiar with the principles of Object Orientation (or if they are, they've just learnt the theory and never used them fully in a practical application) and it covers:
a) The principles of Object Orientation
b) Object Orientation in PHP version 4
c) Object Orientation in PHP 5 (an extended syntax from PHP4)
d) A discussion of differences between the PHP4 and PHP5 model and how this effects code
If you're using PHP4, you'll find that some 80% to 85% of the material presented will be immediately relevant, and that the remaining section on PHP5 will both prepare you for the future and warn you of those aspects of OO in PHP 4 which might lead to the need for code modifications when you step up to PHP5
(written 2004-09-29, updated 2008-05-10)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
H108 - Objects in PHP [124] PHP v Java - (2004-11-20)
[205] PHP5 lets you say no - (2005-02-07)
[343] Should I use structured or object oriented? - (2005-06-10)
[421] Don't repeat code - use loops or functions - (2005-08-21)
[485] North, Norther and Northest - PHP 5 Objects - (2005-11-04)
[656] Think about your design even if you don't use full UML - (2006-03-24)
[720] Planning a hotel refurb - an example of a Gant chart in PHP - (2006-05-14)
[836] Build on what you already have with OO - (2006-08-17)
[1027] Cue the music, I'm happy. - (2007-01-09)
[1153] Object Oriented Model - a summary of changes from PHP4 to PHP5 - (2007-04-18)
[1217] What are factory and singleton classes? - (2007-06-04)
[1535] OO PHP demonstration - comparing objects and more - (2008-02-08)
[1682] Accounts in PHP - an OO demo - (2008-06-19)
[1819] Calling base class constructors - (2008-10-03)
[1820] Sorting objects in PHP - (2008-10-04)
[1925] Introduction to Object Oriented Programming - (2008-12-06)
[2160] PHP - getclass v instanceof - (2009-05-07)
[2169] When should I use OO techniques? - (2009-05-11)
[2171] Cleaning up redundant objects - (2009-05-11)
[2172] PHP4 v PHP5 - Object Model Difference - (2009-05-11)
[2380] Object Oriented programming - a practical design example - (2009-08-27)
[2434] Abstract classes, Interfaces, PHP and Java - (2009-10-03)
[2435] Serialization - storing and reloading objects - (2009-10-04)
[2632] Shipping a test harness with your class in PHP - (2010-02-12)
[2641] Object Oriented Programming in PHP - (2010-02-19)
[2680] Static class members in PHP - a documented example - (2010-03-16)
[2717] The Multiple Inheritance Conundrum, interfaces and mixins - (2010-04-11)
[2741] What is a factory? - (2010-04-26)
[2774] PHP - Object Oriented Design in use - (2010-05-21)
[2921] Does copying a variable duplicate the contents? - (2010-08-14)
[2922] Getting the OO design write - with PHP a example - (2010-08-14)
[3142] Private and Public - and things between - (2011-01-22)
[3210] Catchable fatal error in PHP ... How to catch, and alternative solutions such as JSON - (2011-03-22)
[3211] Computer Graphics in PHP - World (incoming data) to Pixel (screen) conversion - (2011-03-24)
[3607] Designing your application - using UML techniques - (2012-02-11)
[3608] Design Patterns - what are they? Why use them? - (2012-02-12)
[3609] How do classes relate to each other? Associated Classes - (2012-02-12)
[3840] Autoload in PHP - (2012-08-17)
[3841] Copying, duplicating, cloning an object in PHP - (2012-08-18)
[3843] Caching Design Patterns - (2012-08-20)
[3953] Objects in PHP - Revision - (2012-12-16)
[4057] stdClass in PHP - using an object rather than an associative array - (2013-04-02)
[4073] Learning about Object Orientation in PHP - a new set of examples - (2013-04-28)
[4356] Object factories in C++, Python, PHP and Perl - (2014-12-19)
[4366] Changing what operators do on objects - a comparison across different programming languages - (2014-12-26)
[4626] Singleton design pattern - examples and uses - (2016-01-20)
[4627] Caching results in an object for efficiency - avoiding re-calculation - (2016-01-20)
[4628] Associative objects - one object within another. - (2016-01-20)
Some other Articles
Comparators in Linux and UnixRed Luas - early life and timesJohn TonerGet the strategy worked out and the tactics just fall into place.Object Oriented Programming in PHPA Taste of IrelandIrelandShell Script for CGI on the webAlmost like old timesTechnical Open House