Following this discussion
http://www.linkedin.com/groupAnswers?viewQuestionAndAnswers=&discussionID=130090944&gid=42193
enlight me on use of static methods and relation with TDD, what I learned so far is that is better to define a collection class implementing a collection interface, which has method that operate on collection of object, if this is the intend of the use of static methods. Example:
Interface iEntityCollection { /** * @param int * @return Entity */ public function loadById($id); /** * @return string */ public function asHtml(); } Class EntityCollection implements iEntityCollection { private $instance = null; private function __construct(); public static function getInstance() { // the usual singleton } private $_entities = array(); // ... implement interface method // ... }
The advances is that an eventual consumer class can accept a iEntityCollection, thus having type checking via type hint, not rely on class name, and make it possible to compare performance of differrent implementations.
Discuss it in: http://www.linkedin.com/groupAnswers?viewQuestionAndAnswers=&discussionID=130090944&gid=42193