przewiń do treści

Symfony w przykładach

Włodzimierz Gajda

<?php

class propelImportdanychTask extends sfBaseTask
{
  protected function configure()
  {
    $this->addOptions(array(
      new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED, 'The application name'),
      new sfCommandOption('env', null, sfCommandOption::PARAMETER_REQUIRED, 'The environment', 'dev'),
      new sfCommandOption('connection', null, sfCommandOption::PARAMETER_REQUIRED, 'The connection name', 'propel'),
    ));

    $this->namespace        = 'propel';
    $this->name             = 'import-danych';
    $this->briefDescription = 'wypelnianie bazy danych plikami .html';
    $this->detailedDescription = <<<EOF
Zadanie [propel:import-danych|INFO] wypełnia bazę danych plikami .html
zawartymi w folderze data/artykuly/.
Wywolanie:

  [php symfony propel:import-danych|INFO]
EOF;
  }

  protected function execute($arguments = array(), $options = array())
  {
    // initialize the database connection
    $databaseManager = new sfDatabaseManager($this->configuration);
    $connection = $databaseManager->getDatabase($options['connection'])->getConnection();

    ArtykulPeer::doDeleteAll();
    $plks = glob('data/artykuly/*.html');
    foreach ($plks as $plk) {
        echo $plk . "\n";
        $dane = myParser::parseArticle($plk);
        ArtykulPeer::insert($dane);
    }

  }
}

Listing 12.6. Kod zadania Symfony propel:import-danych

Rozdział 12. Identyfikacja rekordów na podstawie wartości slug

listing-12-06.txt