Exakat\Analyzer\Classes\PropertyUsedBelow::analyze PHP Method

analyze() public method

public analyze ( )
    public function analyze()
    {
        //////////////////////////////////////////////////////////////////
        // property + $this->property
        //////////////////////////////////////////////////////////////////
        $this->atomIs('Ppp')->hasNoOut('STATIC')->outIs('PPP')->_as('ppp')->savePropertyAs('propertyname', 'propertyname')->goToClass()->raw('where( __.repeat( out("DEFINITION").in("EXTENDS") ).emit().times(' . self::MAX_LOOPING . ')
                             .where( __.out("BLOCK").repeat( __.out()).emit(hasLabel("Property")).times(' . self::MAX_LOOPING . ')
                                       .out("OBJECT").has("code", "\\$this").in("OBJECT")
                                       .out("PROPERTY").has("token", "T_STRING").filter{ it.get().value("code").toLowerCase() == propertyname.toLowerCase()}
                              )
                             .count().is(neq(0)) )')->back('ppp');
        $this->prepareQuery();
        //////////////////////////////////////////////////////////////////
        // static property : inside the self class
        //////////////////////////////////////////////////////////////////
        $this->atomIs('Ppp')->hasOut('STATIC')->outIs('PPP')->_as('ppp')->outIsIE('LEFT')->savePropertyAs('code', 'property')->goToClass()->raw('where( __.repeat( out("DEFINITION").in("EXTENDS") ).emit().times(' . self::MAX_LOOPING . ')
                             .where( __.out("BLOCK").repeat( __.out()).emit(hasLabel("Staticproperty")).times(' . self::MAX_LOOPING . ')
                                       .out("PROPERTY").has("token", "T_VARIABLE").filter{ it.get().value("code").toLowerCase() == property.toLowerCase()}
                              )
                             .count().is(neq(0)) )')->back('ppp');
        $this->prepareQuery();
        // This could be also checking for fnp : it needs to be a 'family' class check.
    }
PropertyUsedBelow