Exakat\Analyzer\Composer\IsComposerNsname::analyze PHP Метод

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

public analyze ( )
    public function analyze()
    {
        $data = new Composer();
        $packagistNamespaces = $data->getComposerNamespaces();
        $packagistNamespacesFullNS = $this->makeFullNSPath($packagistNamespaces);
        $packagistClasses = $data->getComposerClasses();
        $packagistClassesFullNS = $this->makeFullNSPath($packagistClasses);
        // Chunks is made to shorten the queries
        $packagistClassesFullNSChunks = array_chunk($packagistClassesFullNS, 5000);
        $packagistInterfaces = $data->getComposerInterfaces();
        $packagistInterfacesFullNs = $this->makeFullNSPath($packagistInterfaces);
        ////////////////////////////////////////////////
        // Use
        // namespaces in Composer
        $this->atomIs('Use')->outIs('USE')->is('originpath', $packagistNamespacesFullNS);
        $this->prepareQuery();
        // classes in Composer
        foreach ($packagistClassesFullNSChunks as $id => $p) {
            $this->atomIs('Use')->outIs('USE')->is('originpath', $p);
            $this->prepareQuery();
        }
        // interfaces in Composer
        $this->atomIs('Use')->outIs('USE')->is('originpath', $packagistInterfaces);
        $this->prepareQuery();
        // traits in Composer
        $packagistTraits = $data->getComposerTraits();
        $this->atomIs('Use')->outIs('USE')->is('originpath', $packagistTraits);
        $this->prepareQuery();
        ////////////////////////////////////////////////
        // Classes extends or implements
        // Classes in Composer
        foreach ($packagistClassesFullNSChunks as $id => $p) {
            $this->atomIs('Class')->outIs(array('IMPLEMENTS', 'EXTENDS'))->fullnspathIs($p);
            $this->prepareQuery();
        }
        $this->atomIs('Class')->outIs(array('IMPLEMENTS', 'EXTENDS'))->fullnspathIs($packagistInterfacesFullNs);
        $this->prepareQuery();
        ////////////////////////////////////////////////
        // Instanceof
        // Classes or interfaces in Composer
        foreach ($packagistClassesFullNSChunks as $id => $p) {
            $this->atomIs('Instanceof')->outIs('CLASS')->atomIs(array('Nsname', 'Identifier'))->fullnspathIs($p);
            $this->prepareQuery();
        }
        $this->atomIs('Instanceof')->outIs('CLASS')->atomIs(array('Nsname', 'Identifier'))->fullnspathIs($packagistInterfacesFullNs);
        $this->prepareQuery();
    }
IsComposerNsname