DNotes LLC

DNotes LLC

Drupal development, hosting, and consulting

Object Oriented Rose Bush

$rosie = new RoseBush;
$rosie->plant();
$rosie->shred_flesh();
$rosie->fertilize();
$rosie->weed();
$rosie->water();
 
class RoseBush extends Plant {
  function shred_flesh() {
    return "OW, dammit!";
  }
}
 
class Plant extends EverythingIOwn {
  var $planted = FALSE;
  function plant() {                           // the verb, that is.
    $this->planted = TRUE;
    if (rand(1, 10) > 7) { die(); }
  }
  function water() {
    return '...';
  }
  function weed() {
    return '...';
  }
  function fertilize() {
    return '...';
  }
}
 
abstract class EverythingIOwn {
  var $safe_from_puppy = FALSE;
  function puppy() {
    if (!$this->safe_from_puppy) { die(); }
  }
}
 
$rosie->puppy();
 
// :(

(I wrote this "code poem" a year and a half ago, when we first moved up to Washington and got the puppy. I was reminded of it today while discussing PHP 5.3 objects, and I decided to migrate it from a Facebook note.)

Technologies: