bolt/bolt — pull request #1777 by tobias2k (2014-09-24 08:22:49+00:00)
Title: Renamed BaseExtensionInterface to IsExtension

Making this a pull request, because I'm totally open for discussion here.

My reasoning is that in the name "BaseExtensionInterface", the "Base" part is a lie (it's an interface, not a base-anything), and the "Interface" part is an implementation detail, and mentioning it in the identifier name is redundant (we're not writing `$foobarVariable`, `SomethingClass` or `$instanceOfSomethingClassFoo->methodBar($argumentBaz)` either, after all...).

I went with `IsExtension`, because:
- Interfaces are conceptually *predicates*, not nouns, so they should take the grammatical form of a noun-less sentence fragment or an adjective (typically "-able" stuff like "Foobarable"), not a proper noun.
- `CanBeUsedAsAnExtension` is... uhm... no.
- I couldn't come up with a valid adjective - `Extensionable` is not a word, `Extensible` or `Extendable` or any such have the roles reversed and are thus wrong.
- `Extension` is the class name for individual extensions already; `class Extension implements \Bolt\Extensions\Extension` looks confusing to me.

Further; if we do change the name at all, I guess it's best to do it *right now*, certainly not after the 2.0 release.

Discuss.