source: spip-zone/_plugins_/indexer/trunk/spip-cli/IndexerIndexer.php @ 93613

Last change on this file since 93613 was 93613, checked in by fil@…, 5 years ago

une option --format=mysql qui permet de faire :
spip indexer:dump --format=mysql | mysql sphinxclone
où sphinxclone est une base de données où l'on veut cloner les contenus du sphinx

File size: 2.0 KB
Line 
1<?php
2
3use Symfony\Component\Console\Command\Command;
4use Symfony\Component\Console\Input\InputArgument;
5use Symfony\Component\Console\Input\InputInterface;
6use Symfony\Component\Console\Input\InputOption;
7use Symfony\Component\Console\Output\OutputInterface;
8use Symfony\Component\Console\Helper\ProgressHelper;
9
10class IndexerIndexer extends Command {
11        protected function configure() {
12                $this
13                        ->setName('indexer:indexer')
14                        ->setDescription('Lancer l’indexation des contenus SPIP configurés.')
15                ;
16        }
17
18        protected function execute(InputInterface $input, OutputInterface $output) {
19                include_spip('inc/indexer');
20                global $spip_racine;
21                global $spip_loaded;
22               
23                // Appeler la fonction qui donne l'indexeur configuré pour ce SPIP
24                $indexer = indexer_indexer();
25                // Appeler la fonction qui liste les sources et qui comporte un pipeline pour étendre
26                $sources = indexer_sources();
27               
28                $SpipSourcesIndexer = new Spip\Indexer\Sources\SpipSourcesIndexer($indexer, $sources);
29                $SpipSourcesIndexer->resetIndexesStats();
30               
31                $res = $SpipSourcesIndexer->indexAll();
32               
33                //~ $progress = $this->getHelperSet()->get('progress');
34                //~ $progress->setFormat(ProgressHelper::FORMAT_VERBOSE);
35                //~ $progress->setBarWidth(100);
36                //~ $progress->setRedrawFrequency(100);
37                //~ $progress->start($output, count($produits));
38                //~
39                //~ $progress->advance();
40                //~ $output->writeln("\n<info>{$message}</info>");
41        }
42}
43
44class IndexerDump extends Command {
45        protected function configure() {
46                $this
47                        ->setName('indexer:dump')
48                        ->setDescription('Récupérer les contenus indexés.')
49                        ->addOption(
50                                'index',
51                                'i',
52                                InputOption::VALUE_OPTIONAL,
53                                'nom de l’index sphinx',
54                                null
55                        )
56                        ->addOption(
57                                'format',
58                                'f',
59                                InputOption::VALUE_OPTIONAL,
60                                'format de sortie : sphinx ou mysql',
61                                'sphinx'
62                        )
63                ;
64        }
65
66        protected function execute(InputInterface $input, OutputInterface $output) {
67                include_spip('inc/indexer');
68
69                $index = $input->getOption('index');
70                $format = $input->getOption('format');
71
72                indexer_dumpsql($index, $format);
73        }
74}
75
Note: See TracBrowser for help on using the repository browser.