/** * static task getter * * @param string $_type * @param array $_requestOptions * @param array $_taskOptions * @return Tinebase_Scheduler_Task */ public static function getPreparedTask($_type, array $_requestOptions, array $_taskOptions = array()) { $request = new Zend_Controller_Request_Simple(); $request->setControllerName($_requestOptions['controller']); $request->setActionName($_requestOptions['action']); if (isset($_requestOptions['params']) || array_key_exists('params', $_requestOptions)) { foreach ($_requestOptions['params'] as $key => $value) { $request->setParam($key, $value); } } $task = new Tinebase_Scheduler_Task($_taskOptions); $task->setMonths("Jan-Dec"); $task->setWeekdays("Sun-Sat"); $task->setDays("1-31"); $task->setRequest($request); switch ($_type) { case self::TASK_TYPE_MINUTELY: $task->setHours("0-23"); $task->setMinutes("0/1"); break; case self::TASK_TYPE_HOURLY: $task->setHours("0-23"); $task->setMinutes("0"); break; case self::TASK_TYPE_DAILY: $task->setHours("0"); $task->setMinutes("0"); break; } return $task; }
/** * Tests if a task can be saved. */ public function testSaveTask() { $this->testClearQueue(); $request = new Zend_Controller_Request_Simple(); $request->setControllerName('Tinebase_Alarm'); $request->setActionName('sendPendingAlarms'); $request->setParam('eventName', 'Tinebase_Event_Async_Minutely'); $task = Zend_Scheduler_Task::getTask()->setMonths("Jan-Dec")->setWeekdays("Sun-Sat")->setDays("1-31")->setHours("0-23")->setMinutes("0/1")->setRequest($request); $this->_scheduler->addTask('Tinebase_Alarm_Test', $task); $this->_scheduler->saveTask(); $tasks = $this->_scheduler->getBackend()->loadQueue(); $this->assertEquals(1, count($tasks)); }
public function testPopStackPopulatesControllerAndModuleFromRequestIfEmpty() { $plugin = new Zend_Controller_Plugin_ActionStack(); $request = $this->getNewRequest(); $plugin->setRequest($request); $request1 = new Zend_Controller_Request_Simple(); $request1->setActionName('blah'); $plugin->pushStack($request1); $next = $plugin->popStack(); $this->assertTrue($next instanceof Zend_Controller_Request_Simple); $this->assertEquals($request1->getActionName(), $next->getActionName()); $this->assertEquals($request->getControllerName(), $next->getControllerName()); $this->assertEquals($request->getModuleName(), $next->getModuleName()); }
{ } public function route(Zend_Controller_Request_Abstract $dispatcher) { } } try { $opts = new Zend_Console_Getopt(array('help|h' => 'Displays usage information.', 'action|a=s' => 'Action to perform in format of module.controller.action', 'verbose|v' => 'Verbose messages will be dumped to the default output.', 'development|d' => 'Enables development mode.')); $opts->parse(); } catch (Zend_Console_Getopt_Exception $e) { exit($e->getMessage() . "\n\n" . $e->getUsageMessage()); } if (isset($opts->h)) { echo $opts->getUsageMessage(); exit; } if (isset($opts->a)) { $reqRoute = array_reverse(explode('::', $opts->a)); @(list($action, $controller) = $reqRoute); $request = new Zend_Controller_Request_Simple(); $request->setControllerName($controller); $request->setActionName($action); $request->setModuleName('default'); $front = Zend_Controller_Front::getInstance(); $front->setRequest($request); $front->setRouter(new RouterCli()); $front->setResponse(new Zend_Controller_Response_Cli()); $front->throwExceptions(true); $front->addModuleDirectory(APPLICATION_PATH . '/modules/'); $front->dispatch(); }
/** * update to 3.8 * - schedulers */ public function update_7() { $declaration = new Setup_Backend_Schema_Table_Xml(' <table> <name>scheduler</name> <version>1</version> <declaration> <field> <name>id</name> <type>integer</type> <length>11</length> <autoincrement>true</autoincrement> <notnull>true</notnull> </field> <field> <name>name</name> <type>text</type> <length>255</length> <notnull>true</notnull> </field> <field> <name>data</name> <type>text</type> <notnull>true</notnull> </field> <index> <name>id</name> <primary>true</primary> <field> <name>id</name> </field> </index> </declaration> </table>'); try { $this->_backend->createTable($declaration); Tinebase_Application::getInstance()->addApplicationTable(Tinebase_Application::getInstance()->getApplicationByName('Tinebase'), 'scheduler', 1); } catch (Zend_Db_Statement_Exception $zdse) { // do nothing } $request = new Zend_Controller_Request_Simple(); $request->setControllerName('Tinebase_Alarm'); $request->setActionName('sendPendingAlarms'); $request->setParam('eventName', 'Tinebase_Event_Async_Minutely'); $task = new Tinebase_Scheduler_Task(); $task->setMonths("Jan-Dec"); $task->setWeekdays("Sun-Sat"); $task->setDays("1-31"); $task->setHours("0-23"); $task->setMinutes("0/1"); $task->setRequest($request); $scheduler = Tinebase_Core::getScheduler(); $scheduler->addTask('Tinebase_Alarm', $task); $scheduler->saveTask(); $this->setApplicationVersion('Tinebase', '3.8'); }