Command/CreateFullTextIndexesCommand.php
author ymh <ymh.work@gmail.com>
Fri, 04 Nov 2011 11:56:59 +0100
changeset 23 b435f8055cb4
parent 19 7051e55a3131
permissions -rw-r--r--
improve dynamic docs. create and lad class dynamically
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
19
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
/*
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
 * This file is part of the WikiTagBundle package.
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
 *
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
 * (c) IRI <http://www.iri.centrepompidou.fr/>
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
 *
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
 * For the full copyright and license information, please view the LICENSE
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
 * file that was distributed with this source code.
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
 */
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
namespace IRI\Bundle\WikiTagBundle\Command;
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
use Symfony\Component\Console\Input\InputArgument;
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
use Symfony\Component\Console\Input\InputInterface;
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
use Symfony\Component\Console\Input\InputOption;
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
use Symfony\Component\Console\Output\OutputInterface;
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
use Mandango\Mondator\Definition\Definition;
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
use Mandango\Mondator\Definition\Property;
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
use Mandango\Mondator\Definition\Method;
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
use Mandango\Mondator\Dumper;
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
class CreateFullTextIndexesCommand extends ContainerAwareCommand
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
{
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
    protected function configure()
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
    {
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
        parent::configure();
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
        
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
        $this
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
            ->setName('wikitag:create-fulltext-indexes')
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
            ->setDescription('Generate the full text indexes for the document table')
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
            ->addArgument('path', InputArgument::OPTIONAL, 'The generation path')
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
            ->addOption("simulate","S",InputOption::VALUE_NONE, "Simulate generation");
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
    }
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
    protected function execute(InputInterface $input, OutputInterface $output)
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
    {
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
        $file = $input->getArgument('path');
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
        $simulate = $input->getOption('simulate');
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
        if(is_null($file) || strlen($file) == 0)
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
        {
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
            $simulate = true;
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
        }
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
        
23
b435f8055cb4 improve dynamic docs. create and lad class dynamically
ymh <ymh.work@gmail.com>
parents: 19
diff changeset
    46
b435f8055cb4 improve dynamic docs. create and lad class dynamically
ymh <ymh.work@gmail.com>
parents: 19
diff changeset
    47
        $schema_utils = $this->getContainer()->get("wikitag.shema_utils");
19
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
        
23
b435f8055cb4 improve dynamic docs. create and lad class dynamically
ymh <ymh.work@gmail.com>
parents: 19
diff changeset
    49
        $sql_code = implode(";".PHP_EOL, $schema_utils->createFullTextIndexes());
19
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
        
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
        if($simulate)
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
        {
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
            $output->writeln($sql_code);
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
        }
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
        else
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
        {
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
            $output->writeln("Creating Indexes in $file");
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
            
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
            if(!file_exists(dirname($file)) && !mkdir(dirname($file),0777,true))
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
            {
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
                $output->writeln("Impossible to create folder exitiing.");
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
                die;
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
            }
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
            file_put_contents($file, $sql_code);
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
        }
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
    }
7051e55a3131 add missing file, dynamic implementation...
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
}