Exakat\Analyzer\Functions\EmptyFunction::analyze PHP Метод

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

public analyze ( )
    public function analyze()
    {
        // standalone function : empty is empty. Same for closure.
        $this->atomIs('Function')->hasNoClassInterfaceTrait()->outIs('BLOCK')->outIs('ELEMENT')->atomIs('Void')->back('first');
        $this->prepareQuery();
        // method : then, it should not overwrite a parent's method
        $this->atomIs('Function')->hasClassTrait()->hasNoOut('ABSTRACT')->outIs('NAME')->savePropertyAs('code', 'name')->inIs('NAME')->outIs('BLOCK')->is('count', 1)->outIs('ELEMENT')->atomIs('Void')->goToClass()->raw('where( __.out("EXTENDS").repeat( __.coalesce(__.in("DEFINITION"), __.filter{true}).out("EXTENDS") ).emit().times(' . self::MAX_LOOPING . ')
                             .where( __.in("ANALYZED").has("analyzer", "Composer/IsComposerNsname") )
                             .count().is(eq(0)) )')->raw('where( __.repeat( out("EXTENDS").in("DEFINITION") ).emit(hasLabel("Class") ).times(' . self::MAX_LOOPING . ')
                             .out("BLOCK").out("ELEMENT").hasLabel("Function")
                             .where( __.out("ABSTRACT", "PRIVATE").count().is(eq(0)) ) 
                             .out("NAME").filter{ it.get().value("code").toLowerCase() == name.toLowerCase()}
                             .count().is(eq(0)) )')->back('first');
        $this->prepareQuery();
    }