/** * Importa dei ddl a partire da un file yaml */ function run_opp_import_ddl_from_yaml($task, $args, $options) { static $loaded; // load application context if (!$loaded) { _loader(); } $dry_run = false; if (array_key_exists('dry-run', $options)) { $dry_run = true; } if (array_key_exists('yaml-file', $options)) { $yaml_file = strtolower($options['yaml-file']); } else { throw new Exception("Specificare il file contenente i dati dei ddl con l'opzione --yaml-file=FILE_COMPLETE_PATH"); } if (array_key_exists('leg', $options)) { $leg = strtolower($options['leg']); } else { throw new Exception("Specificare la legislatura con l'opzione --leg=LEGISLATURA"); } echo "memory usage: " . memory_get_usage() . "\n"; $start_time = time(); $msg = sprintf("import ddl da {$yaml_file}\n"); echo pakeColor::colorize($msg, array('fg' => 'cyan', 'bold' => true)); if (file_exists($yaml_file)) { $ddls = sfYaml::Load($yaml_file); } else { throw new Exception("Impossibile trovare il file {$yaml_file}"); } foreach ($ddls as $key => $ddl) { $atto = new OppAtto(); $atto->setLegislatura($leg); $atto->setParlamentoId($ddl['parlamento_id']); $atto->setRamo(strtoupper($ddl['ramo'])); $atto->setNumfase($ddl['numfase']); $atto->setTipoAttoId(1); $atto->setDataPres($ddl['presentazione_date']); $atto->setDataAgg($ddl['update_date']); $atto->setTitolo($ddl['titolo']); $atto->setIniziativa($ddl['iniziativa']); if ($dry_run) { var_dump($ddl); } else { $atto->save(); $msg = sprintf("atto %s.%s aggiunto - parlamento_id:%d, opp_id:%d\n", $atto->getRamo(), $atto->getNumfase(), $atto->getParlamentoId(), $atto->getId()); echo pakeColor::colorize($msg, array('fg' => 'green', 'bold' => false)); } unset($atto); } $msg = sprintf("%d atti elaborati\n", count($ddls)); echo pakeColor::colorize($msg, array('fg' => 'cyan', 'bold' => true)); $msg = sprintf(" [%4d sec] [%10d bytes]\n", time() - $start_time, memory_get_usage()); echo pakeColor::colorize($msg, array('fg' => 'red', 'bold' => false)); }