/** * Конструктор */ protected function __construct() { parent::__construct(); if (DEBUG) { Open_Benchmark::getInstance()->mark(__CLASS__ . '_start'); } $this->config = Open_Config::getInstance(); $this->input = Open_Input::getInstance(); $this->router = Open_Router::getInstance(); $this->text = Open_Text::getInstance(); $this->view = Open_View::getInstance(); $this->setArguments($this->router->getArguments()); }
function getArguments() { $arguments = array(); if ($this->columns) { $arguments = array_merge($arguments, $this->columns->getArguments()); } if ($this->action == 'insert-select') { $arguments = array_merge($arguments, $this->subquery->getArguments()); } $arguments = array_merge($arguments, $this->tables->getArguments()); $arguments = array_merge($arguments, $this->conditions->getArguments()); $arguments = array_merge($arguments, $this->navigation->getArguments()); return $arguments; }
/** * Return select query string * @param object $query * @param boolean $with_values * @return string */ function getSelectSql($query, $with_values = TRUE, $connection = NULL) { $with_values = false; //$limitOffset = $query->getLimit()->getOffset(); //if($limitOffset) // TODO Implement Limit with offset with subquery $limit = ''; $limitCount = ''; $limitQueryPart = $query->getLimit(); if ($limitQueryPart) { $limitCount = $limitQueryPart->getLimit(); } if ($limitCount != '') { $limit = 'SELECT TOP ' . $limitCount; } $select = $query->getSelectString($with_values); if ($select == '') { return new Object(-1, "Invalid query"); } if ($limit != '') { $select = $limit . ' ' . $select; } else { $select = 'SELECT ' . $select; } $from = $query->getFromString($with_values); if ($from == '') { return new Object(-1, "Invalid query"); } $from = ' FROM ' . $from; $where = $query->getWhereString($with_values); if ($where != '') { $where = ' WHERE ' . $where; } $groupBy = $query->getGroupByString(); if ($groupBy != '') { $groupBy = ' GROUP BY ' . $groupBy; } $orderBy = $query->getOrderByString(); if ($orderBy != '') { $orderBy = ' ORDER BY ' . $orderBy; } if ($limitCount != '' && $query->limit->start > 0) { $order = $query->getOrder(); $first_columns = array(); foreach ($order as $val) { $tmpColumnName = $val->getPureColumnName(); $first_columns[] = sprintf('%s(%s) as %s', $val->getPureSortOrder() == 'asc' ? 'max' : 'min', $tmpColumnName, $tmpColumnName); $first_sub_columns[] = $tmpColumnName; } $first_query = sprintf("select %s from (select top %d %s %s %s %s %s) xet", implode(',', $first_columns), $query->limit->start, implode(',', $first_sub_columns), $from, $where, $groupBy, $orderBy); $this->param = $query->getArguments(); $result = $this->__query($first_query, $connection); $tmp = $this->_fetch($result); $sub_cond = array(); foreach ($order as $k => $v) { //for example... use Document if (get_class($v->sort_order) == 'SortArgument') { $sort_order = $v->sort_order->value; } else { $sort_order = $v->sort_order; } $sub_cond[] = sprintf("%s %s '%s'", $v->getPureColumnName(), $sort_order == 'asc' ? '>' : '<', $tmp->{$v->getPureColumnName()}); } if (!$where) { $sub_condition = ' WHERE ( ' . implode(' and ', $sub_cond) . ' )'; } else { $sub_condition = ' and ( ' . implode(' and ', $sub_cond) . ' )'; } } return $select . ' ' . $from . ' ' . $where . $sub_condition . ' ' . $groupBy . ' ' . $orderBy; }
/** * A warning pushed on stack * * @param object $event The event * * @return array */ public function pushWarning($event) { list($warn) = $event->getArguments(); return array('timestamp' => time(), 'level' => 'warning', 'message' => $warn); }
/** * A file scan ended * * @param object $event The event * * @return array */ public function endScanFile($event) { list($file, $currentIndex, $maxIndex) = $event->getArguments(); $results = $this->subject->toArray($file); $progress = '.'; foreach ($results['conditions'] as $condition => $value) { if ($value > 0) { $progress = 'C'; // conditional code found in $file break; } } print $progress; if ($currentIndex % $this->maxColumn === 0) { printf(' %' . strlen($maxIndex) . 'd / %' . strlen($maxIndex) . 'd (%3s%%)', $currentIndex, $maxIndex, floor($currentIndex / $maxIndex * 100)); echo PHP_EOL; } }
/** * Listen for aws command event * * @param object $event The event object */ public function onCommand($event) { $this->data['commands'][] = array('command' => $event->getCommand(), 'arguments' => $event->getArguments(), 'executiontime' => $event->getExecutionTime()); }
/** * A warning pushed on stack * * @param object $event The event * * @return array */ public function pushWarning($event) { list($warn) = $event->getArguments(); return array('name' => self::GROWL_NOTIFY_WARN, 'title' => 'Warning', 'description' => $warn, 'options' => array('priority' => Net_Growl::PRIORITY_HIGH)); }