private static function registerMember(MultitonInterface $member)
    {
        $reflector = new ReflectionObject($member);
        $parentClass = $reflector->getParentClass();

        if (!$parentClass->isAbstract()) {
            throw new ExtendsConcreteException(
                get_class($member),
                $parentClass->getName()
            );
        }

        self::$members[get_called_class()][$member->key()] = $member;
    }
private static function registerMember(MultitonInterface $member)
    {
        $reflector = new ReflectionObject($member);
        $parentClass = $reflector->getParentClass();

        if (!$parentClass->isAbstract()) {
            throw new ExtendsConcreteException(
                get_class($member),
                $parentClass->getName()
            );
        }

        self::$members[get_called_class()][$member->key()] = $member;
    }
private static function registerMember ( MultitonInterface $ member ) { $ reflector = new ReflectionObject ( $ member ) ; $ parentClass = $ reflector -> getParentClass ( ) ; if ( ! $ parentClass -> isAbstract ( ) ) { throw new ExtendsConcreteException ( get_class ( $ member ) , $ parentClass -> getName ( ) ) ; } self :: $ members [ get_called_class ( ) ] [ $ member -> key ( ) ] = $ member ; }
Registers the supplied member.

Do not attempt to call this method directly. Instead, ensure that
AbstractMultiton::__construct() is called from any child classes, as this
will also handle registration of the member.

@param  MultitonInterface        $member The member to register.
@throws ExtendsConcreteException If the supplied member has an invalid inheritance hierarchy.
Registers the supplied member .