|  | Posted by Jason Barnett on 01/20/05 16:37 
Dustin Krysak wrote:> Hi there, I am pretty new to writing classes (and pretty new to PHP
 > itself), but I was wondering what was the best format for constructing
 
 There are a few general patterns that show up time after time.  They
 happen so often that there are formal names for them.  This isn't really
 a PHP question per se, but a good site for exploring object design in
 PHP is http://phppatterns.com/
 
 > classes. Now for example, i have written 2 versions of a class that
 > accomplish the exact same thing. And I was just wondering if there are
 > any advantages to either, or even if one was formatted more so to
 > standards. Just wanting to learn it the proper way from the get go. My
 > classes are formatted for use in flash remoting (hence the methodTable
 > stuff - you can ignore it). I guess my question refers more towards the
 > declaration of properties, etc.
 
 Think of declaration of properties and methods as a "contract".  When
 something is public it is available to all of PHP.  When it is private
 it is only usable by the class that you define it in.  When it is
 protected it is a hybrid; it is usable to the class that defined it and
 it can be "inherited" by classes that extend that class.
 
 So, decide what level of access you really *need* for that property /
 method.  If a property is only supposed to be modified by class methods
 (for example, a password string) then make it private or possibly
 protected.  If everything is public access then there is temptation to
 do something like:
 
 <?php
 
 class myObject {
 public $pubprop = 'I am the starting value.  Trust me, even though I
 am public access';
 }
 
 function all_hell_breaks_loose($obj) {
 $obj->pubprop = 'ANARCHY LIVES!  PHEAR DA WRAFF OF DA PUBIC PROPS!';
 }
 
 $obj = new myObject();
 
 /** ... 1000's of lines of code ... */
 
 all_hell_breaks_loose($obj);
 print_r($obj);
 
 ?>
 
 
 --
 Teach a man to fish...
 
 NEW? | http://www.catb.org/~esr/faqs/smart-questions.html
 STFA | http://marc.theaimsgroup.com/?l=php-general&w=2
 STFM | http://www.php.net/manual/en/index.php
 STFW | http://www.google.com/search?q=php
 LAZY |
 http://mycroft.mozdev.org/download.html?name=PHP&submitform=Find+search+plugins
 [Back to original message] |