/** * Execute command * @param InputInterface $input Input * @param OutputInterface $output Output * @return void */ protected function execute(InputInterface $input, OutputInterface $output) { $result = Infogreffe::search($input->getArgument('query')); if (empty($result)) { $output->writeln('<error>No result :/</error>'); } else { foreach ($result as $org) { if ($input->getOption('url')) { $output->writeln($org->getURL()); } else { $org->address['lines'] = implode(', ', $org->address['lines']); $output->writeln($org->name . ' | ' . $org->siret . ' | ' . implode(', ', $org->address)); } } } }
public static function company($request, $response, $params) { global $container; $types = Yaml::parse(file_get_contents(__DIR__ . '/../types.yml')); $results = Infogreffe::search($params['siret']); $client = new \Goutte\Client(); if (empty($results)) { throw new \Exception('Numéro SIRET introuvable'); } $crawler = $client->request('GET', $results[0]->getURL()); $category = $crawler->filter('.first .identTitreValeur p:nth-of-type(5) .data'); if ($category->count() == 0) { $category = $crawler->filter('[datapath="entreprise.personneMorale.identification.formeJuridique.libelle"] p'); } $activity = $crawler->filter('.first .identTitreValeur p:nth-of-type(6) .data'); if ($activity->count() == 0) { $activity = $crawler->filter('[datapath="activite.codeNAF"] p:first-of-type a'); } if (count($category) > 0) { $categoryName = trim($category->text()); } else { $categoryName = 'Forme juridique inconnue'; } if ($categoryName == 'null') { $categoryName = 'Forme juridique inconnue'; } if (count($activity) > 0) { $activityName = trim($activity->text()); } else { $activityName = 'Inconnue'; } if ($activityName == 'null') { $activityName = 'Inconnue'; } $description = 'Informations sur ' . $results[0]->name; if ($categoryName != 'Forme juridique inconnue') { $description .= ', ' . $categoryName; } $container->view->render($response, 'company.tpl', array('info' => $results[0], 'types' => $types, 'category' => $categoryName, 'activity' => $activityName, 'url' => $results[0]->getURL(), 'title' => $results[0]->name, 'description' => $description)); }
/** * Test search * @param string $query Search query * @param Infogreffe $result Search result * @return void * @dataProvider searchProvider * */ public function testSearch($query, $result) { $results = Infogreffe::search($query); $this->assertEquals($result, $results[0]); }