Re: Design by Contract

From: Date: Tue, 10 Feb 2015 07:36:24 +0000
Subject: Re: Design by Contract
References: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17  Groups: php.internals 
Request: Send a blank email to [email protected] to get a copy of this message
Hi Joe,

On Tue, Feb 10, 2015 at 4:31 PM, Joe Watkins <[email protected]> wrote:

> Actually I'm not sure it's at all sane to try to override contracts, I'd
> actually avoid that completely, so no need to name contracts and no need
> for magic __invariant.


For example,

class Animal {
   protected $legs;
   require($legs >= 0);
}

class Snake extends Animal {
  // Snake is fine, no leg
}

class Human extends Animal {
  // 2 legs. $this->leg === 2
}

Overriding makes sense for many cases.

Regards,

--
Yasuo Ohgaki
[email protected]


Thread (220 messages)

« previous php.internals (#82346) next »