public static function data($pathKey = NULL, $pathDefault = NULL, $order = NULL, $forced = FALSE) { $order = Helpers_Text::trimAsNULL(NULL === $order ? $order = static::config('request.data.order') : $order); $data = []; if (NULL !== $order) { isset(static::$cachedData) or static::$cachedData = []; if ($forced || !isset(static::$cachedData[$order])) { for ($idx = 0; $idx < strlen($order); $idx++) { switch (strtoupper($order[$idx])) { case 'G': $data = Kohana_Helpers_Arr::merge($data, static::current()->query()); break; case 'P': $data = Kohana_Helpers_Arr::merge($data, static::getBodyData()); break; case 'H': $data = Kohana_Helpers_Arr::merge($data, static::current()->headers()); break; } } static::$cachedData[$order] = $data; } } if (is_array($pathKey)) { $result = []; foreach ($pathKey as $key) { $result[$key] = Kohana_Helpers_Arr::path($data, $pathKey, $pathDefault); } } elseif (is_scalar($pathKey)) { $result = Kohana_Helpers_Arr::path($data, $pathKey, $pathDefault); } else { $result = $data; } return $result; }