Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
 
For 2021 - online Python 3 training - see ((here)).

Our plans were to retire in summer 2020 and see the world, but Coronavirus has lead us into a lot of lockdown programming in Python 3 and PHP 7.
We can now offer tailored online training - small groups, real tutors - works really well for groups of 4 to 14 delegates. Anywhere in the world; course language English.

Please ask about private 'maintenance' training for Python 2, Tcl, Perl, PHP, Lua, etc.
Should I use structured or object oriented?

There's no "one size fits all" answer to "what's the best way for me to meet this application requirement", and if you're writing code there will be a number of different approached / methodologies you can use. I'm going to have a look at some of the possible choices and relate it to PHP today ... it's rather on my mind as I'm teaching an Object Oriented PHP course.

If your application is tiny, you can just write a single block of code. Let's face it, if you've just got a regular HTML web page on which you want to include today's date, a simple PHP print(date( ... is all you need. If the application is not tiny (but remains small), you would be well advised to split out the logically separate elements into functions. Taken to the extreme, you're looking at structured programming design where everything's in a function and each function performs a single logical task.

As applications grow, structured programming gets unwieldy too and you'll be best advised to use an Object Oriented approach. That's a great way to compartmentalise your code, allowing for easy extensability and code testing unit by unit.

As applications grow still further, from medium size to "large" or "huge", another trend may become apparent. While the development team is a tight little community, all the members know and share knowledge and will only call up pieces of code through appropriate ways - what I describe as a Trusted Object Oriented system, where the programmers are trusted to know what they're doing. But grow the thing massively, and there will be times that team members call up a piece of code in a way that the team leader would really rather they didn't. At this stage, you'll want to be using what I call a "Policed Object Oriented" system where externally visible components are marked with words such as "private", "public" and "protected".

PHP in various versions supports single code blocks, trusted OO and policed OO:

Application sizeMethodologyWeb language
SmallNot OOPHP - any version
MediumTrusted OOPHP4 or PHP5
LargePoliced OOPHP5


Bear in mind that if you want a policeman at the end of each street to protect you from the villains, you're going to have to pay for it in your taxes. The same thing applies with OO in PHP - a policed OO system may slightly extend development time, but you may feel that it's worth it. Certainly, when you're doing your initial coding practise you should use the trusted approach so that you're not hauled over the coals for every tiny error while you learn.
(written 2005-06-10, updated 2006-06-05)

 
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
H108 - Objects in PHP
  [67] Object Oriented Programming in PHP - (2004-09-29)
  [124] PHP v Java - (2004-11-20)
  [205] PHP5 lets you say no - (2005-02-07)
  [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)

G906 - Well House Consultants - Programming Standards
  [148] Programming in isolation - (2004-12-11)
  [272] More to programming than just programming - (2005-04-08)
  [356] Sudoku helper or sudoku cheat - (2005-06-23)
  [945] Code quality counts - (2006-11-26)
  [1596] Selling curry to the chinese takeaway - (2008-03-31)
  [1679] PHP - Sanitised application principles for security and useability - (2008-06-16)
  [1852] Perl and Blackberries - (2008-10-23)
  [2322] Looking for a practical standards course - (2009-08-05)
  [2363] Alpaca Case or Camel Case - (2009-08-16)
  [2364] Getting it right from the start - new programmers - (2009-08-17)
  [3685] Programming Standards in Lua - (2012-04-06)

A401 - Web Application Deployment - Structured Code and Object Orientation
  [1717] Q - Should I use Perl or Python? - (2008-07-23)
  [3085] Object Oriented Programming for Structured Programmers - conversion training - (2010-12-14)


Back to
The evening after the course
Previous and next
or
Horse's mouth home
Forward to
Walk in Bath
Some other Articles
Frightening and from-friend viruses and spams
No Smoking Pubs
Spotting a denial of service attack
Walk in Bath
Should I use structured or object oriented?
The evening after the course
Happy Birthday, PHP
Code and code maintainance efficiency
Passing information into and out of PHP functions
OO techniques are hard to teach
4759 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 at 50 posts per page


This is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - the diary and writings of Graham Ellis. Every attempt was made to provide current information at the time the page was written, but things do move forward in our business - new software releases, price changes, new techniques. Please check back via our main site for current courses, prices, versions, etc - any mention of a price in "The Horse's Mouth" cannot be taken as an offer to supply at that price.

Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2021: 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/343_Shou ... nted-.html • PAGE BUILT: Sun Oct 11 16:07:41 2020 • BUILD SYSTEM: JelliaJamb