I have the following code

```
class Model_MyAbstractClass {
}

class Model_MyClass extends Model_MyAbstractClass {

}
interface doStuff {

    function update(Model_MyAbstractClass $model);

}
class Mapper_MyClass implements doStuff{
     function update(Model_MyClass $model){
      }
}

```

So why doesn't this work in PHP? Model\_MyClass is still a Model\_MyAbstractClass.
I have 5 classes (maybe I'll have more) with similar methods. The whole difference is that each mapper has some model, all of them extend Model\_MyAbstractClass.  

If indeed there is no way of doing this, the only solutions left are: make an interface for each of them, with the only differences being the params (not DRY at all).  

Check in each of the functions if the Model\_MyAbstractClass is instance of Model\_MyClass needed and throw an error - which seems like a silly strategy since I should be requiring explicitly the needed type of parameter.