Пример #1
0
 function execute(InputInterface $input, OutputInterface $output)
 {
     $parameters = $this->extractArgumentsAndOptions($input);
     //如果当前目录下有配置文件自动加载配置文件
     if (is_file($configFile = getcwd() . DIRECTORY_SEPARATOR . self::CONFIG_FILE)) {
         $data = json_decode(file_get_contents($configFile), true);
         $parameters = array_merge($parameters, $data);
     }
     call_user_func_array([$this, 'initializeCollector'], $parameters);
     $this->collector->getDispatcher()->bind(Collector::EVENT_CAPTURE_URL_REPOSITORY, function (Event $event) use($output) {
         $repository = $event->getArgument('repository');
         $output->writeln(PHP_EOL);
         $output->writeln($repository->getUrl()->getUrlString());
         $progressBar = new ProgressBar($output, 100);
         $progressBar->start();
         $repository->getUrl()->setParameter('progressBar', $progressBar);
     });
     $this->collector->getDispatcher()->bind(Collector::EVENT_CAPTURED_URL_REPOSITORY, function (Event $event) use($output) {
         $repository = $event->getArgument('repository');
         $progressBar = $repository->getUrl()->getParameter('progressBar');
         $progressBar->advance(50);
         $progressBar->finish();
     });
     $this->collector->run();
 }
Пример #2
0
<?php

include __DIR__ . '/../vendor/autoload.php';
use Slince\Collector\Collector;
use Slince\Event\Event;
$collector = new Collector(__DIR__ . '/html', 'http://demo.sc.chinaz.com/Files/DownLoad/moban/201604/moban1178/index.html');
$collector->getDispatcher()->bind(Collector::EVENT_CAPTURE_URL_REPOSITORY, function (Event $event) {
    $repository = $event->getArgument('repository');
    echo 'Begin Capture ', $repository->getUrl()->getUrlString(), "\r\n";
});
$collector->getDispatcher()->bind(Collector::EVENT_CAPTURED_URL_REPOSITORY, function (Event $event) {
    $repository = $event->getArgument('repository');
    echo $repository->getUrl()->getUrlString() . " Captured OK!\r\n";
});
$collector->run();