<?php
interface FindByNameInterface
{
public function getFindAllByNameSelect();
}
interface FetchableInterface
{
public function fetchAll(Zend_Db_Select $select);
}
interface FetchableByNameInterface extends FetchableInterface, FindByNameInterface
{
}
class OurGateway
implements FetchableByNameInterface
{
public function fetchAll(Zend_Db_Select $select)
{}
public function getFindAllByNameSelect()
{}
}
class SomeMapper
{
protected $gateway;
public function __construct(FetchableByNameInterface $someGateway)
{
$this->gateway = $someGateway;
}
}
new SomeMapper(new OurGateway);