Exakat\Analyzer\Classes\IsInterfaceMethod::analyze PHP Метод

analyze() публичный Метод

public analyze ( )
    public function analyze()
    {
        // interface extended in the local class
        $this->atomIs('Function')->outIs('NAME')->savePropertyAs('code', 'name')->goToClass()->outIs('IMPLEMENTS')->interfaceDefinition()->outIs('BLOCK')->outIs('ELEMENT')->atomIs('Function')->outIs('NAME')->samePropertyAs('code', 'name')->back('first');
        $this->prepareQuery();
        // interface extended in the parent interface
        $this->atomIs('Function')->outIs('NAME')->savePropertyAs('code', 'name')->goToClass()->outIs('IMPLEMENTS')->interfaceDefinition()->outIs('EXTENDS')->interfaceDefinition()->outIs('BLOCK')->outIs('ELEMENT')->atomIs('Function')->outIs('NAME')->samePropertyAs('code', 'name')->back('first');
        $this->prepareQuery();
        // interface defined in the parents
        $this->atomIs('Function')->outIs('NAME')->savePropertyAs('code', 'name')->goToClass()->goToAllParents()->outIs('IMPLEMENTS')->interfaceDefinition()->outIs('BLOCK')->outIs('ELEMENT')->atomIs('Function')->outIs('NAME')->samePropertyAs('code', 'name')->back('first');
        $this->prepareQuery();
        // PHP or extension defined interface
        $interfaces = $this->loadIni('php_interfaces_methods.ini', 'interface');
        foreach ($interfaces as $interface => $methods) {
            if (empty($methods)) {
                // may be the case for Traversable : interface without methods
                continue;
            }
            $methods = explode(',', $methods);
            // interface locally implemented
            $this->atomIs('Function')->outIs('NAME')->codeIs($methods)->inIs('NAME')->inIs('ELEMENT')->inIs('BLOCK')->atomIs('Class')->outIs('IMPLEMENTS')->fullnspathIs('\\' . $interface)->back('first');
            $this->prepareQuery();
            // interface implemented by parents
            $this->atomIs('Function')->outIs('NAME')->codeIs($methods)->inIs('NAME')->inIs('ELEMENT')->inIs('BLOCK')->atomIs('Class')->goToAllParents()->outIs('IMPLEMENTS')->fullnspathIs('\\' . $interface)->back('first');
            $this->prepareQuery();
        }
    }
IsInterfaceMethod