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

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

public analyze ( )
    public function analyze()
    {
        // static::method() 1rst level
        $this->atomIs('Staticmethodcall')->outIs('CLASS')->codeIs(array('static', 'self'))->back('first')->outIs('METHOD')->savePropertyAs('code', 'name')->goToClass()->raw('where( __.out("BLOCK").out("ELEMENT").out("NAME").filter{ it.get().value("code") == name}.count().is(eq(1)) )')->back('first');
        $this->prepareQuery();
        // static::method() parents and beyond
        $this->atomIs('Staticmethodcall')->outIs('CLASS')->codeIs(array('static', 'self'))->back('first')->outIs('METHOD')->savePropertyAs('code', 'name')->goToClass()->goToAllParents()->raw('where( __.out("BLOCK").out("ELEMENT").out("NAME").filter{ it.get().value("code") == name}.count().is(eq(1)) )')->back('first');
        $this->prepareQuery();
        // static::$property the current class
        $this->atomIs('Staticproperty')->outIs('CLASS')->codeIs(array('static', 'self'))->back('first')->outIs('PROPERTY')->outIsIE('VARIABLE')->savePropertyAs('code', 'name')->goToClass()->outIs('BLOCK')->outIs('ELEMENT')->atomIs('Ppp')->outIs('PPP')->outIsIE('LEFT')->samePropertyAs('code', 'name')->back('first');
        $this->prepareQuery();
        // static::$property Parents
        $this->atomIs('Staticproperty')->outIs('CLASS')->codeIs(array('static', 'self'))->back('first')->outIs('PROPERTY')->outIsIE('VARIABLE')->savePropertyAs('code', 'name')->goToClass()->goToAllParents()->outIs('BLOCK')->outIs('ELEMENT')->atomIs('Ppp')->outIs('PPP')->outIsIE('LEFT')->samePropertyAs('code', 'name')->back('first');
        $this->prepareQuery();
    }
DefinedStaticMP