/** * @param bool $override * * @return string */ public static function method($override = FALSE) { $request = static::current(); if (is_bool($override)) { $method = Kohana_Arr::get($_SERVER, 'HTTP_X_HTTP_METHOD_OVERRIDE', $request->method()); } else { $method = $override; } FALSE === $override or $request->method($method); return $method; }
/** * @param null $key * @param null $default * @param null $removeKeyPrefix * * @return array|mixed */ public function data($key = NULL, $default = NULL, $removeKeyPrefix = NULL) { $data = parent::data(); if (NULL !== $key && !Kohana_Arr::is_array($key)) { return Kohana_Arr::get($data, $key, $default); } if (NULL === $key) { $key = array_keys($data); } $result = []; foreach ($key as $_key) { $newKey = NULL !== $removeKeyPrefix && strpos($_key, $removeKeyPrefix) === 0 ? substr($_key, strlen($removeKeyPrefix)) : $_key; $result[$newKey] = Kohana_Arr::get($data, $_key, $default); } return $result; }
/** * Возвращает слово во множестевенном/единственном числе на основании $n * * @param int $n * @param string $one * @param null|string $two * @param null|string $five * * @return string */ public static function plural($n, $one, $two = NULL, $five = NULL) { if (is_array($one)) { $values = [Kohana_Arr::get($one, 0)]; $values[1] = Kohana_Arr::get($one, 1, $values[0]); $values[2] = Kohana_Arr::get($one, 2, $values[1]); } else { $values = [$one]; $values[1] = NULL !== $two ? $two : $one; $values[2] = NULL !== $five ? $five : $values[1]; } $idx = $n % 10 == 1 && $n % 100 != 11 ? 0 : ($n % 10 >= 2 && $n % 10 <= 4 && ($n % 100 < 10 || $n % 100 >= 20) ? 1 : 2); return $values[$idx]; }
function __construct($name, $data = NULL, $defaults = NULL) { $this->initial_value_is_set = FALSE; $this->defaults_is_set = FALSE; if (is_array($name)) { $data = $name; $name = Kohana_Arr::get($data, self::KEY_NAME); if (!$name) { throw new Kohana_Exception('Field :name not defined', [':name' => self::KEY_NAME]); } } $this->_name = $name; $this->_strict_hidden = TRUE; $this->setDefaults($defaults); $this->fillData($data); }
/** * @param mixed $value * @param array $validationRules * @param string $file Validation errors file (default: validation) * * @return mixed * @throws Validation_Exception */ protected function validateValue($value, array $validationRules = NULL, $file = NULL) { $validationRules = Helpers_Arr::merge([['not_empty']], NULL === $validationRules ? [] : $validationRules); $validation = Validation::factory(['key' => $value])->rules('key', $validationRules); if (!$validation->check()) { if (NULL === $file) { $file = 'validation'; } $errors = Kohana_Arr::flatten($validation->errors($file)); throw new Validation_Exception($validation, Kohana_Arr::get($errors, 'key', 'Undefined validation error')); } return $value; }