diff --git a/flight/Flight.php b/flight/Flight.php index 6657d5e..4d4fe32 100644 --- a/flight/Flight.php +++ b/flight/Flight.php @@ -45,7 +45,7 @@ class Flight { * Handles calls to static methods. * * @param string $name Method name - * @param array $args Method parameters + * @param array $params Method parameters */ public static function __callStatic($name, $params) { $callback = self::$dispatcher->get($name); @@ -137,7 +137,7 @@ class Flight { /** * Custom exception handler. Logs exceptions. * - * @param object $e Exception + * @param Exception $e Thrown exception */ public static function handleException(Exception $e) { if (self::get('flight.log_errors')) { @@ -151,6 +151,7 @@ class Flight { * * @param string $name Method name * @param callback $callback Callback function + * @throws Exception If trying to map over a framework method */ public static function map($name, $callback) { if (method_exists(__CLASS__, $name)) { @@ -167,6 +168,7 @@ class Flight { * @param string $class Class name * @param array $params Class initialization parameters * @param callback $callback Function to call after object instantiation + * @throws Exception If trying to map over a framework method */ public static function register($name, $class, array $params = array(), $callback = null) { if (method_exists(__CLASS__, $name)) { @@ -301,7 +303,7 @@ class Flight { * Stops processing and returns a given response. * * @param int $code HTTP status code - * @param int $message Response message + * @param string $message Response message */ public static function _halt($code = 200, $message = '') { self::response(false) @@ -314,7 +316,7 @@ class Flight { /** * Sends an HTTP 500 response for any errors. * - * @param object $e Exception + * @param \Exception Thrown exception */ public static function _error(Exception $e) { $msg = sprintf('

500 Internal Server Error

'. @@ -364,6 +366,7 @@ class Flight { * Redirects the current request to another URL. * * @param string $url URL + * @param int $code HTTP status code */ public static function _redirect($url, $code = 303) { $base = self::request()->base; @@ -418,8 +421,7 @@ class Flight { self::response()->header('ETag', $id); - if (isset($_SERVER['HTTP_IF_NONE_MATCH']) && - $_SERVER['HTTP_IF_NONE_MATCH'] === $id) { + if ($id === getenv('HTTP_IF_NONE_MATCH')) { self::halt(304); } } @@ -432,8 +434,7 @@ class Flight { public static function _lastModified($time) { self::response()->header('Last-Modified', date(DATE_RFC1123, $time)); - if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && - strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) === $time) { + if ($time === strtotime(getenv('HTTP_IF_MODIFIED_SINCE'))) { self::halt(304); } } diff --git a/flight/core/Dispatcher.php b/flight/core/Dispatcher.php index 0d5eb32..d73b58e 100644 --- a/flight/core/Dispatcher.php +++ b/flight/core/Dispatcher.php @@ -34,6 +34,7 @@ class Dispatcher { * * @param string $name Event name * @param array $params Callback parameters + * @return string Output of callback */ public function run($name, $params) { $output = ''; @@ -68,7 +69,7 @@ class Dispatcher { * Gets an assigned callback. * * @param string $name Event name - * @param callback $callback Callback function + * @return callback $callback Callback function */ public function get($name) { return isset($this->events[$name]) ? $this->events[$name] : null; @@ -104,7 +105,7 @@ class Dispatcher { /** * Hooks a callback to an event. * - * @param string $event Event name + * @param string $name Event name * @param string $type Filter type * @param callback $callback Callback function */ @@ -116,8 +117,8 @@ class Dispatcher { * Executes a chain of method filters. * * @param array $filters Chain of filters - * @param reference $params Method parameters - * @param reference $output Method output + * @param object $params Method parameters + * @param object $output Method output */ public function filter($filters, &$params, &$output) { $args = array(&$params, &$output); @@ -146,7 +147,8 @@ class Dispatcher { * Calls a function. * * @param string $func Name of function to call - * @param array $params Function parameters + * @param array $params Function parameters + * @return mixed Function results */ public static function callFunction($func, array &$params = array()) { switch (count($params)) { @@ -172,6 +174,7 @@ class Dispatcher { * * @param mixed $func Class method * @param array $params Class method parameters + * @return mixed Function results */ public static function invokeMethod($func, array &$params = array()) { list($class, $method) = $func; @@ -180,17 +183,29 @@ class Dispatcher { switch (count($params)) { case 0: - return ($instance) ? $class->$method() : $class::$method(); + return ($instance) ? + $class->$method() : + $class::$method(); case 1: - return ($instance) ? $class->$method($params[0]) : $class::$method($params[0]); + return ($instance) ? + $class->$method($params[0]) : + $class::$method($params[0]); case 2: - return ($instance) ? $class->$method($params[0], $params[1]) : $class::$method($params[0], $params[1]); + return ($instance) ? + $class->$method($params[0], $params[1]) : + $class::$method($params[0], $params[1]); case 3: - return ($instance) ? $class->$method($params[0], $params[1], $params[2]) : $class::$method($params[0], $params[1], $params[2]); + return ($instance) ? + $class->$method($params[0], $params[1], $params[2]) : + $class::$method($params[0], $params[1], $params[2]); case 4: - return ($instance) ? $class->$method($params[0], $params[1], $params[2], $params[3]) : $class::$method($params[0], $params[1], $params[2], $params[3]); + return ($instance) ? + $class->$method($params[0], $params[1], $params[2], $params[3]) : + $class::$method($params[0], $params[1], $params[2], $params[3]); case 5: - return ($instance) ? $class->$method($params[0], $params[1], $params[2], $params[3], $params[4]) : $class::$method($params[0], $params[1], $params[2], $params[3], $params[4]); + return ($instance) ? + $class->$method($params[0], $params[1], $params[2], $params[3], $params[4]) : + $class::$method($params[0], $params[1], $params[2], $params[3], $params[4]); default: return call_user_func_array($func, $params); } diff --git a/flight/core/Loader.php b/flight/core/Loader.php index 32de4c5..cf90714 100644 --- a/flight/core/Loader.php +++ b/flight/core/Loader.php @@ -64,6 +64,7 @@ class Loader { * * @param string $name Method name * @param bool $shared Shared instance + * @return object Class instance */ public function load($name, $shared = true) { if (isset($this->classes[$name])) { @@ -107,6 +108,7 @@ class Loader { * * @param string $class Class name * @param array $params Class initialization parameters + * @return object Class instance */ public function newInstance($class, array $params = array()) { switch (count($params)) { @@ -123,7 +125,7 @@ class Loader { case 5: return new $class($params[0], $params[1], $params[2], $params[3], $params[4]); default: - $refClass = new ReflectionClass($class); + $refClass = new \ReflectionClass($class); return $refClass->newInstanceArgs($params); } } @@ -161,6 +163,7 @@ class Loader { * Autoloads classes. * * @param string $class Class name + * @throws \Exception If class not found */ public function autoload($class) { $class_file = str_replace('\\', '/', str_replace('_', '/', $class)).'.php'; @@ -177,7 +180,7 @@ class Loader { $loaders = spl_autoload_functions(); $loader = array_pop($loaders); if (is_array($loader) && $loader[0] == __CLASS__ && $loader[1] == __FUNCTION__) { - throw new Exception('Unable to load file: '.$class_file); + throw new \Exception('Unable to load file: '.$class_file); } } } diff --git a/flight/net/Request.php b/flight/net/Request.php index a8eca09..c698806 100644 --- a/flight/net/Request.php +++ b/flight/net/Request.php @@ -42,17 +42,17 @@ class Request { // Default properties if (empty($config)) { $config = array( - 'url' => $_SERVER['REQUEST_URI'], - 'base' => str_replace('\\', '/', dirname($_SERVER['SCRIPT_NAME'])), - 'method' => $_SERVER['REQUEST_METHOD'], - 'referrer' => isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '', + 'url' => getenv('REQUEST_URI') ?: '/', + 'base' => str_replace('\\', '/', dirname(getenv('SCRIPT_NAME'))), + 'method' => getenv('REQUEST_METHOD') ?: 'GET', + 'referrer' => getenv('HTTP_REFERER') ?: '', 'ip' => $this->getIpAddress(), - 'ajax' => isset($_SERVER['HTTP_X_REQUESTED_WITH']) ? ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') : false, - 'scheme' => $_SERVER['SERVER_PROTOCOL'], - 'user_agent' => $_SERVER['HTTP_USER_AGENT'], + 'ajax' => getenv('HTTP_X_REQUESTED_WITH') == 'XMLHttpRequest', + 'scheme' => getenv('SERVER_PROTOCOL') ?: 'HTTP/1.1', + 'user_agent' => getenv('HTTP_USER_AGENT') ?: '', 'body' => file_get_contents('php://input'), - 'type' => isset($_SERVER['CONTENT_TYPE']) ? $_SERVER['CONTENT_TYPE'] : '', - 'length' => isset($_SERVER['CONTENT_LENGTH']) ? $_SERVER['CONTENT_LENGTH'] : 0, + 'type' => getenv('CONTENT_TYPE') ?: '', + 'length' => getenv('CONTENT_LENGTH') ?: 0, 'query' => new Collection($_GET), 'data' => new Collection($_POST), 'cookies' => new Collection($_COOKIE), @@ -129,6 +129,8 @@ class Request { } } } + + return $_SERVER['REMOTE_ADDR']; } } ?> diff --git a/flight/net/Response.php b/flight/net/Response.php index df2c333..400757b 100644 --- a/flight/net/Response.php +++ b/flight/net/Response.php @@ -65,6 +65,8 @@ class Response { * Sets the HTTP status of the response. * * @param int $code HTTP status code. + * @return object Self reference + * @throws \Exception If invalid status code */ public function status($code) { if (array_key_exists($code, self::$codes)) { @@ -82,7 +84,7 @@ class Response { header( sprintf( '%s %d %s', - (isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.1'), + getenv('SERVER_PROTOCOL') ?: 'HTTP/1.1', $code, self::$codes[$code]), true, @@ -100,8 +102,9 @@ class Response { /** * Adds a header to the response. * - * @param string|array $key Header name or array of names and values + * @param string|array $name Header name or array of names and values * @param string $value Header value + * @return object Self reference */ public function header($name, $value = null) { if (is_array($name)) { @@ -120,6 +123,7 @@ class Response { * Writes content to the response body. * * @param string $str Response content + * @return object Self reference */ public function write($str) { $this->body .= $str; @@ -129,6 +133,8 @@ class Response { /** * Clears the response. + * + * @return object Self reference */ public function clear() { $this->headers = array(); @@ -142,6 +148,7 @@ class Response { * Sets caching headers for the response. * * @param int|string $expires Expiration time + * @return object Self reference */ public function cache($expires) { if ($expires === false) { diff --git a/flight/net/Router.php b/flight/net/Router.php index 014b0a9..d6e7519 100644 --- a/flight/net/Router.php +++ b/flight/net/Router.php @@ -75,6 +75,7 @@ class Router { * * @param string $pattern URL pattern * @param string $url Requested URL + * @return boolean Match status */ public function match($pattern, $url) { $ids = array(); @@ -116,8 +117,8 @@ class Router { /** * Routes the current request. * - * @param object $request Request object - * @return callable Matched callback function + * @param Request $request Request object + * @return callable|boolean Matched callback function or false if not found */ public function route(Request $request) { $this->matched = null; diff --git a/flight/template/View.php b/flight/template/View.php index df10078..362b432 100644 --- a/flight/template/View.php +++ b/flight/template/View.php @@ -68,6 +68,7 @@ class View { * Checks if a template variable is set. * * @param string $key Key + * @return boolean If key exists */ public function has($key) { return isset($this->vars[$key]); @@ -92,6 +93,7 @@ class View { * * @param string $file Template file * @param array $data Template data + * @throws \Exception If template not found */ public function render($file, $data = null) { $template = $this->getTemplate($file); @@ -114,6 +116,7 @@ class View { * * @param string $file Template file * @param array $data Template data + * @return string Output of template */ public function fetch($file, $data = null) { ob_start();