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(); }
function testRun() { $this->collector->setRawEntranceUrl('http://minimal.ondrejsvestka.cz/1-3-3/index.html'); $this->collector->run(); $this->assertNotEmpty('1'); }
<?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();