Newscoop\NewscoopBundle\Controller\PluginsController::searchOnPackagistAction PHP Метод

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

public searchOnPackagistAction ( Request $request )
$request Symfony\Component\HttpFoundation\Request
    public function searchOnPackagistAction(Request $request)
    {
        $response = new JsonResponse();
        $query = $request->get('q', '');
        $client = new \Buzz\Client\Curl();
        $client->setTimeout(3600);
        $browser = new \Buzz\Browser($client);
        $packagistResponse = $browser->get('https://packagist.org/search.json?type=newscoop-plugin&q=' . $query);
        $packages = json_decode($packagistResponse->getContent(), true);
        $results = $packages['results'];
        $this->aasort($results, 'downloads');
        // hide already installed plugins
        $cleanResults = array();
        $pluginService = $this->container->get('newscoop.plugins.service');
        foreach ($results as $resultKey => $package) {
            $installed = false;
            foreach ($pluginService->getAllAvailablePlugins() as $key => $plugin) {
                if ($package['name'] == $plugin->getName()) {
                    $installed = true;
                    $packages['total'] = $packages['total'] - 1;
                }
            }
            if (!$installed) {
                $cleanResults[] = $package;
            }
        }
        $packages['results'] = $cleanResults;
        return $response->setData($packages);
    }