diff --git a/src/Request/AdapterExtension.php b/src/Request/AdapterExtension.php index 1d8aa8e..7bbf955 100644 --- a/src/Request/AdapterExtension.php +++ b/src/Request/AdapterExtension.php @@ -44,31 +44,63 @@ trait AdapterExtension ]; /** + * @param $call * @param $name + * + * @throws \BadFunctionCallException + */ + private function allowMethods($call, $name) + { + if (empty($this->allowMethods[$call])) + { + throw new \BadFunctionCallException('Not found `' . $name . '`'); + } + } + + /** + * @param $call * @param $arguments * * @return mixed + */ + private function unsafeFilter($call, $arguments) + { + $arguments[1] = isset($arguments[1]) ? $arguments[1] : null; + $arguments[2] = false; + + return call_user_func_array([$this, $call], $arguments); + } + + /** + * @param $name * - * @throws \BadFunctionCallException + * @return array */ - public function __call($name, $arguments) + private function parameterInit($name) { $parameters = preg_replace('~([A-Z])~', '_$1', $name, 1); - $parameters = $this->normalizeLow($parameters); - list ($call, $filter) = explode('_', $parameters); - if (empty($this->allowMethods[$call])) - { - throw new \BadFunctionCallException('Not found `' . $name . '`'); - } + return explode('_', $parameters); + } + + /** + * @param $name + * @param $arguments + * + * @return mixed + * + * @throws \BadFunctionCallException + */ + public function __call($name, $arguments) + { + list ($call, $filter) = $this->parameterInit($name); + + $this->allowMethods($call, $name); if ($filter === 'unsafe') { - $arguments[1] = isset($arguments[1]) ? $arguments[1] : null; - $arguments[2] = false; - - return call_user_func_array([$this, $call], $arguments); + return $this->unsafeFilter($call, $arguments); } return $this->filterVariable( diff --git a/src/Request/RequestExtension.php b/src/Request/RequestExtension.php index ebc8bf8..1b7c2d7 100644 --- a/src/Request/RequestExtension.php +++ b/src/Request/RequestExtension.php @@ -87,6 +87,8 @@ public function queryString($url = null) /** * @param array $data * @param int|array $options + * + * @return string */ public function json(array $data = array(), $options = JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) { @@ -98,21 +100,13 @@ public function json(array $data = array(), $options = JSON_PRETTY_PRINT | JSON_ header('Content-type: application/json; charset=utf-8'); } - if (is_array($options)) - { - $this->helper->json()->reset(); - - foreach ($options as $option) - { - $this->helper->json()->addOption($option); - } - } - else - { - $this->helper->json()->setOption($options); - } + /** + * @var \Deimos\Helper\Helpers\Json $json + */ + $json = $this->helper->json(); + $json->setOption((array)$options); - return $this->helper->json()->encode($data); + return $json->encode($data); }