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 size | Methodology | Web language |
|---|
| Small | Not OO | PHP - any version |
| Medium | Trusted OO | PHP4 or PHP5 |
| Large | Policed OO | PHP5 |
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 12:39:51)
Associated topics are indexed under
G906 - Well House Consultants - Programming Standards [2364] Getting it right from the start - new programmers - (2009-08-17)
[2363] Alpaca Case or Camel Case - (2009-08-16)
[2322] Looking for a practical standards course - (2009-08-05)
[1852] Perl and Blackberries - (2008-10-23)
[1679] PHP - Sanitised application principles for security and useability - (2008-06-16)
[1596] Selling curry to the chinese takeaway - (2008-03-31)
[945] Code quality counts - (2006-11-26)
[356] Sudoku helper or sudoku cheat - (2005-06-23)
[272] More to programming than just programming - (2005-04-08)
[148] Programming in isolation - (2004-12-11)
H108 - Objects in PHP [2680] Static class members in PHP - a documented example - (2010-03-16)
[2641] Object Oriented Programming in PHP - (2010-02-19)
[2632] Shipping a test harness with your class in PHP - (2010-02-12)
[2435] Serialization - storing and reloading objects - (2009-10-04)
[2434] Abstract classes, Interfaces, PHP and Java - (2009-10-03)
[2380] Object Oriented programming - a practical design example - (2009-08-27)
[2172] PHP4 v PHP5 - Object Model Difference - (2009-05-11)
[2171] Cleaning up redundant objects - (2009-05-11)
[2169] When should I use OO techniques? - (2009-05-11)
[2160] PHP - getclass v instanceof - (2009-05-07)
[1925] Introduction to Object Oriented Programming - (2008-12-06)
[1820] Sorting objects in PHP - (2008-10-04)
[1819] Calling base class constructors - (2008-10-03)
[1682] Accounts in PHP - an OO demo - (2008-06-19)
[1535] OO PHP demonstration - comparing objects and more - (2008-02-08)
[1217] What are factory and singleton classes? - (2007-06-04)
[1153] Object Oriented Model - a summary of changes from PHP4 to PHP5 - (2007-04-18)
[1027] Cue the music, I'm happy. - (2007-01-09)
[836] Build on what you already have with OO - (2006-08-17)
[720] Planning a hotel refurb - an example of a Gant chart in PHP - (2006-05-14)
[656] Think about your design even if you don't use full UML - (2006-03-24)
[485] North, Norther and Northest - PHP 5 Objects - (2005-11-04)
[421] Don't repeat code - use loops or functions - (2005-08-21)
[205] PHP5 lets you say no - (2005-02-07)
[124] PHP v Java - (2004-11-20)
[67] Object Oriented Programming in PHP - (2004-09-29)
A401 - Web Application Deployment - Structured Code and Object Orientation [1717] Q - Should I use Perl or Python? - (2008-07-23)
Some other Articles
Frightening and from-friend viruses and spamsNo Smoking PubsSpotting a denial of service attackWalk in BathShould I use structured or object oriented?The evening after the courseHappy Birthday, PHPCode and code maintainance efficiencyPassing information into and out of PHP functionsOO techniques are hard to teach