У меня есть этот код из какой-то статьи на habrahabr.ru: abstract class Singleton { protected static $_instances = array(); protected function __construct() { } public static function getInstance() { $class = \get_called_class(); if ( !isset( static::$_instances[$class] ) ) static::$_instances[$class] = new static; return static::$_instances[$class]; } } Auhtor использует его, например, class B extends Singleton { […]
Представьте себе следующую гипотетическую структуру классов, а не слишком необычный сценарий, когда все намеки PHPdoc настроены правильно: class BaseFilter { /** …base methods… */ } class TextFilter extends BaseFilter { public function setMinLength($len) { /** …irrelevant */ } } class SomethingWithFilters { /** * @param BaseFilter $filter A valid filter to be added. * @return […]