Eloquent\Phony\Mock\Builder\MockBuilder::resolveInternalInterface PHP Метод

resolveInternalInterface() приватный Метод

private resolveInternalInterface ( $interface, $preferred, $alternate )
    private function resolveInternalInterface($interface, $preferred, $alternate)
    {
        $isImplementor = false;
        $isConcrete = false;
        foreach ($this->types as $name => $type) {
            if ($preferred === $name || $alternate === $name || $type->isSubclassOf($preferred) || $type->isSubclassOf($alternate)) {
                $isConcrete = true;
                break;
            }
            if ($type->implementsInterface($interface)) {
                $isImplementor = true;
                if ($interface === $name) {
                    unset($this->types[$name]);
                } elseif ($type->isInternal()) {
                    $isConcrete = true;
                    break;
                }
            }
        }
        if ($isImplementor && !$isConcrete) {
            $this->types = array_merge(array($preferred => new ReflectionClass($preferred)), $this->types);
        }
    }