A web server access log file contains a whole series of hit records ... each of which is logically turned into an object as different fields have different characteristics. These hit objects can then be logically arranged into visit objects.
Today, I gave a
Object Oriented Programming in PHP training course in which the practical application of OO techniques featured heavily (design, UML, patterns, etc). And during the afternoon, I took the web server log example and wrote a proof-of-concept demo from scratch - a "spike solution" through which we created very simple objects in hit and visit classes.
Have a look at the source code -
[here] and you'll see a static factory method which creates the hit objects, the use of associated objects withing other objects, and much more.
The application could / should be extended. It's an OO framework in which a major log analysis resource could be developed. Not that I have much (any?) time for that - in fact I'm off for my 4th evening meeting in 5 evenings this week.
(written 2010-05-21)
Associated topics are indexed under
H108 - Objects in PHP [3211] Computer Graphics in PHP - World (incoming data) to Pixel (screen) conversion - (2011-03-24)
[3210] Catchable fatal error in PHP ... How to catch, and alternative solutions such as JSON - (2011-03-22)
[3142] Private and Public - and things between - (2011-01-22)
[2922] Getting the OO design write - with PHP a example - (2010-08-14)
[2921] Does copying a variable duplicate the contents? - (2010-08-14)
[2741] What is a factory? - (2010-04-26)
[2717] The Multiple Inheritance Conundrum, interfaces and mixins - (2010-04-11)
[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)
[343] Should I use structured or object oriented? - (2005-06-10)
[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)
H305 - PHP - Web server configuration [3143] On time - (2011-01-23)
[2981] How to set up short and meaningfull alternative URLs - (2010-10-02)
[2773] Dynamically watching your web site via a PHP wrapper - (2010-05-21)
[2478] How did I do THAT? - (2009-10-26)
[1938] Predictive Load Balancing - PHP and / or Java - (2008-12-13)
[1778] Pointing all the web pages in a directory at a database - (2008-08-30)
Some other Articles
Learning to program in Python 2 ... and / or in Python 3Blowing our own trumpetRegional Spatial Strategy and the next 20 years - Whence Wiltshire under the new government?Declarations of interest - knowing where you stand with peoplePHP - Object Oriented Design in useGraham Ellis - Summary of Training RecordMelksham to Calne by public transportMelksham Chamber of Commerce - Presidents report to AGMEasy - but for whom?