Interfaces should only give the form of the class that implements it, not its implementation. This is the role of abstract classes.
At least once a week, I throw away an array_map because it ended up looking too bloated and go with a classic foreach instead. Short Closures 2.0 without the use(...) block would've solved this problem, just 2 votes...