On 04.06.2016 at 16:37, Bob Weinand wrote:

>> Am 4.6.2016 um 16:17 schrieb Christoph Becker <cmbecke...@gmx.de>:
>>
>> On 04.06.2016 at 14:15, Bob Weinand wrote:
>>
>>>> Am 04.06.2016 um 13:45 schrieb Niklas Keller <m...@kelunik.com>:
>>>>
>>>> For Aerys\Host it could also be solved with an interface that just doesn't 
>>>> have any methods. With the disadvantage of callable not being in the same 
>>>> signature anymore.
>>>
>>> Additionally, this is only possible if you are actually in control on these 
>>> classes and can change them. If you pull them from a library, no chance.
>>
>> In which case it might make sense anyway to use adapters.
> 
> For which you then need an adapter for each and every combination of 
> interface (power set without empty set; 2^n - 1 - 15 adapter classes for 4 
> interfaces).
> That’s not a practical solution here.

After having a closer look at the referenced code[1], I agree.  However,
in this case it would still be possible to avoid overloading the
function by having a dedicated function for each type (i.e.
useCallable(), useMiddleware() etc.)  That doesn't appear bad to me.

[1]
<https://github.com/amphp/aerys/blob/2a4d626fb1b8b8ac9d91711085c04eaabdec7768/lib/Host.php#L87>

-- 
Christoph M. Becker


-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to