<?php /** * Provides the response class * * @author Camil Staps * * BusinessAdmin: administrative software for small companies * Copyright (C) 2015 Camil Staps (ViviSoft) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ /** * Provides a standard to base all responses to be called with AJAX on */ class response { /** The variable to keep the response in until output */ private $response; /** The variable to keep the HTTP response code in until output */ private $http_response_code; /** * Create a new instance */ public function __construct() { $this->response = array(); $this->http_response_code = 200; } /** * Set a variable of the response * * @param string $name The name of the variable to set * @param string $value The (new) value for the variable */ public function __set($name, $value) { $this->response[$name] = $value; } /** * Get a variable of the response * * @param string $name The name of the variable to get * * @return mixed The value of the variable */ public function __get($name) { return $this->response[$name]; } /** * Check if a variable of the response is set * * @param string $name The name of the variable to check * * @return bool True if the variable exists, false otherwise */ public function __isset($name) { return isset($this->response[$name]); } /** * Unset a variable of the response * * @param string $name The variable to unset */ public function __unset($name) { unset($this->response[$name]); } /** * Get or set the HTTP response code * * If a parameter is provided, it is used as the new HTTP response code, and a bool is returned for success or failure. Otherwise, the current one is returned. * * @param int $code The new code * * @return int|bool True on successful change, false on unsuccesful change, int when the current code is returned */ public function http_response_code($code = null) { if ($code === null) { return $this->http_response_code; } else { if (http_response_code($code)) { $this->http_response_code = $code; return true; } else { return false; } } } /** * Output the response in json * * @return string The response in json format */ public function getJson() { return json_encode($this->response); } }