<?php
interface FindByNameInterface
{
public function getFindAllByNameSelect();
}
interface FetchableInterface
{
public function fetchAll(Zend_Db_Select $select);
}
interface FetchableByNameInterface extends FetchableInterface, FindByNameInterface
{
}
class OurGateway
implements FetchableInterface, FindByNameInterface
{
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);
Fatal error: Uncaught TypeError: SomeMapper::__construct(): Argument #1 ($someGateway) must be of type FetchableByNameInterface, OurGateway given, called in /in/Fo1UF on line 37 and defined in /in/Fo1UF:31
Stack trace:
#0 /in/Fo1UF(37): SomeMapper->__construct(Object(OurGateway))
#1 {main}
thrown in /in/Fo1UF on line 31
Process exited with code 255.
Fatal error: Uncaught TypeError: Argument 1 passed to SomeMapper::__construct() must implement interface FetchableByNameInterface, instance of OurGateway given, called in /in/Fo1UF on line 37 and defined in /in/Fo1UF:31
Stack trace:
#0 /in/Fo1UF(37): SomeMapper->__construct(Object(OurGateway))
#1 {main}
thrown in /in/Fo1UF on line 31
Process exited with code 255.
Catchable fatal error: Argument 1 passed to SomeMapper::__construct() must implement interface FetchableByNameInterface, instance of OurGateway given, called in /in/Fo1UF on line 37 and defined in /in/Fo1UF on line 31
Process exited with code 255.
Output for 5.1.0 - 5.1.6
Fatal error: Argument 1 passed to SomeMapper::__construct() must implement interface FetchableByNameInterface, called in /in/Fo1UF on line 37 and defined in /in/Fo1UF on line 31
Process exited with code 255.
Output for 5.0.5
Fatal error: Argument 1 must implement interface FetchableByNameInterface in /in/Fo1UF on line 31
Process exited with code 255.
Output for 5.0.0 - 5.0.4
Process exited with code 139.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING in /in/Fo1UF on line 2
Process exited with code 255.