PHP Classes


Recommend this page to a friend!
  Classes of Pierre FAUQUE  >  Biometrics Class  >  README-FIRST.txt  >  Download  
Role: Auxiliary data
Content type: text/plain
Description: Notes about the class rewriting
Class: Biometrics Class
Compute several biometric indexes
Author: By
Last change:
Date: 9 years ago
Size: 4,013 bytes


Class file image Download
Hello to downloaders of this class,

I've written this class and put it available for downloads from
my web site ( and from PHP Classes (
I'm not and expert in PHP and I'm glad to see that my rough work have been
properly rewritten by Yiannis VAVOURANAKIS for PHP4 and PHP5 and I would
thanks him for his interest in this class and for his important work about it.

The classes provided :
- The original class is named     : class.biometrics.php       (version 1.0)
- The rewriting for PHP4 is named : class.biometrics.php4.php  (version 1.1)
- The rewriting for PHP5 is named : class.biometrics.php5.php  (version 1.2)

You can find below all the improvements he have provided for this class.
Once again, thanks to him.

Pierre FAUQUE.
26/01/2008, 20:38

From: "Yiannis Vavouranakis" <>
To: "Pierre FAUQUE" <>
Subject: RE: Signalisation d'un bug (Classe Biometrics v-1.0)
Date: Sat, 26 Jan 2008 02:47:56 +0200


After a long time (3 months) I've finally sat down to clear up the code in
the php5 version of cbiometrics. I'm sending over a zip file, containing
quite a few things. Make sure you read my comments in the demos, the French
one needs proof-reading.

A small list of what I did:

a) Changed the constructor so that it takes an array as argument
b) Removed all the calculated variables and used the corresponding methods
   in the demos
c) Changed all the short tags into long tags.
d) Changed the way internationalization works. Now you only need to
   translate a file, and simply include it along side with the main class
   file (see the demo)
e) Altered the functions that return a textual representation of the data
   (t_sex, t_work, t_bmistatus). The original class variables have been either
   deleted or moved as variables local to the methods. Moreover, in the
   methods, I've made sure that something is always returned, even if the user
   doesn't include() a language file.
f) Added accessor functions, to have a more object-oriented appearance
   (actually, this is necessary in php5, where I've declared all members as
   protected or private).

I tested the class with both demos under apache 2.2 and php5.0.27 (but I
tested both the php4 and the php5 version). They seem to work ok.

Now, regarding your reply on my comments, I have to say the following:

a) Instead of using explicit variables for the data in the constructor, it's
   easier to use an array and search for the relevant keys. 

b) I know it's a pain to write something like $_POST['myVariable'] instead
   of just $myVariable, but trust me, it's a lot safer - besides, PHP
   developers actually advise that you turn register_globals off...

c) The extensive use of variables makes use of extra memory, which is a very
   limited resource in php scripts (8Mb or less is the default). Moreover, the
   way you have it (with variables), you are forcing the server to calculate
   everything, regardless of whether it is needed by the calling script or not.
   So, it may actually be better both memory-wise and in terms of number of
   actions, if you go with the methods and not the variables. Oh, and an extra
   thing: This class could easily be used in a larger project, where the
   instance would have to be serialized and deserialized. With the variables
   method, the resulting serialized object would be substantially larger, as
   all the calculated information would be serialized. However, with the
   methods method (:-)), you only serialize the initial data (age, weight, etc)
   and so the serialized object is quite smaller.

d) An extra thing I forgot to mention is that you used short tags (<? and
   ?>) instead of <?php and ?>. Although it is still legal to do so, the
   default in PHP is not to accept short tags anymore. So I've also changed
   that in the files I'm sending over.

For more information send a message to info at phpclasses dot org.