public static function report(Oops_Error_Handler $errorHandler, $path) { $errors = ''; foreach ($errorHandler->getErrors() as $err) { $errors .= "Oops-Error: {$err}\n"; } foreach ($errorHandler->getWarnings() as $err) { $errors .= "Oops-Warning: {$err}\n"; } foreach ($errorHandler->getNotices() as $err) { $errors .= "Oops-Notice: {$err}\n"; } foreach ($errorHandler->getPhps() as $err) { $errors .= "Php-errors: {$err}\n"; } if (!strlen($errors)) { return; } $logFile = new Oops_File($path . "/error.log"); if ($logFile->size > 50 * 1024) { if (file_exists($logFile->filename . ".1")) { unlink($logFile->filename . ".1"); } $logFile->rename($logFile->filename . ".1"); $logFile = new Oops_File($path . "/error.log"); } $logFile->makeWriteable(); $ft = fopen($logFile->filename, "a"); $request = Oops_Server::getRequest(); fputs($ft, "\n" . date("r") . "\n " . $request->getUrl() . "\n" . $errors); fclose($ft); }
/** * * @todo Move controller params and controller_ident to the request object * (fill 'em woth router) */ public function getControllerParams() { if (is_object($this->_server)) { return $this->_server->get('controller_params'); } return array(); }
function test_ServerDefaultConfiguration() { $server = Oops_Server::newInstance(); $this->assertNotEquals('', (string) $server->config->oops->default_action); $this->assertNotEquals('', (string) $server->config->oops->default_extension); $this->assertNotEquals('', (string) $server->config->router->class); }
function getContentType() { $ret = 'text/plain'; $cfg = Oops_Server::getConfig(); if (strlen($charset = $cfg->oops->charset)) { $ret .= "; charset={$charset}"; } return $ret; }
/** * * @return Oops_Cache_Manager_Interface */ public static function getInstance() { if (!isset(self::$_instance)) { $cfg = new Oops_Cache_Defconf(); $cfg->mergeConfig(Oops_Server::getConfig()->cache); self::$_instance = $cfg->manager == 'cascade' ? new Oops_Cache_Manager_Cascade($cfg) : new Oops_Cache_Manager_Plain($cfg); } return self::$_instance; }
function getContentType() { // @todo Consider moving this into Oops_Server $ret = 'text/html'; $cfg = Oops_Server::getConfig(); if (strlen($charset = $cfg->oops->charset)) { $ret .= "; charset={$charset}"; } return $ret; }
private static function _initHandler() { // @todo merge given config to the default one to avoid missing fields $sessCfg = Oops_Server::getConfig()->session; $handlerClass = 'Oops_Session_' . $sessCfg->handler; if (!class_exists($handlerClass)) { $handlerClass = 'Oops_Session_Native'; } self::$session = new Oops_Session_Native($sessCfg); }
function Run() { $this->Data['request'] = array(); $keys = $this->getRequestKeys(); foreach ($keys as $k) { $this->Data['request'][$k] = $this->Request($k); } $server =& Oops_Server::getInstance(); $this->Data['server'] = array('controller_params' => $server->get('controller_params'), 'controller_ident' => $server->get('controller_ident')); return $this->Data; }
/** * Singleton pattern implementaion * * @static * @param string template name * @return Oops_Template */ public static function getInstance($tplname) { $tplname = strtolower($tplname); static $a = array(); if (!isset($a[$tplname])) { $a[$tplname] = new Oops_Template($tplname); } $a[$tplname]->_request = Oops_Server::getRequest(); $a[$tplname]->_response = Oops_Server::getResponse(); return $a[$tplname]; }
public function __construct($url = null) { $this->_curl = curl_init($url); $this->_url = $url; curl_setopt($this->_curl, CURLOPT_FAILONERROR, 1); curl_setopt($this->_curl, CURLOPT_FOLLOWLOCATION, true); curl_setopt($this->_curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($this->_curl, CURLOPT_TIMEOUT, self::TIMEOUT); curl_setopt($this->_curl, CURLOPT_CONNECTTIMEOUT, self::CONNECTTIMEOUT); curl_setopt($this->_curl, CURLOPT_POST, 0); $cfg = Oops_Server::getConfig(); if (is_string($cfg->oops->proxy)) { curl_setopt($this->_curl, CURLOPT_PROXY, $cfg->oops->proxy); } }
protected static function _initTemplatesPath() { if (!isset(self::$templatesPath)) { $config = Oops_Server::getConfig(); $oopsConfig = $config->get('oops'); if (is_object($oopsConfig)) { self::$templatesPath = $oopsConfig->get('templates_path'); } if (!strlen(self::$templatesPath)) { self::$templatesPath = './application/templates'; } if (!is_dir(self::$templatesPath)) { throw new Exception("Template_Helper/Invalid templates path :: " . self::$templatesPath); } } }
public static function allow() { if (!isset(self::$_allow)) { self::$_allow = false; $requestKeyValue = (string) Oops_Server::getConfig()->oops->debug_key; if (strlen($requestKeyValue) && isset($_REQUEST['debug']) && $_REQUEST['debug'] == $requestKeyValue) { return self::$_allow = true; } $debug_ip = (string) Oops_Server::getConfig()->oops->debug_ip; if (!strlen($debug_ip)) { $debug_ip = '127.0.0.1/24'; } $remote = ip2long($_SERVER['REMOTE_ADDR']); if ($remote === false) { return self::$_allow = false; } $ips = explode(',', $debug_ip); foreach ($ips as $ip) { list($ip, $mask) = explode('/', trim($ip)); $mask = (int) $mask; if ($mask > 32 || $mask < 0) { // Invalid mask continue; } $allowed = ip2long($ip); if ($allowed === false) { // Invalid IP continue; } $push = 32 - $mask; if ($remote >> $push == $allowed >> $push) { self::$_allow = true; break; } } } return self::$_allow; }
<?php error_reporting(E_ALL ^ E_NOTICE); require_once "../../library/Oops/_Import.php"; require_once "Oops/Server.php"; Oops_Server::RunHttpDefault();
/** * Handle the request * * @todo proceed 301, 302, 404 and other statuses. Current response object should be used for this, or Oops_Server::Run should return a response object instead of text * * @return void */ function _handle() { if ($this->_isHandled) { return; } $server = Oops_Server::newInstance(); $response = $server->Run($this->_request); while ($response->isRedirect() && $this->_redirectLimit--) { /** * @todo do something, use Location header */ $this->_request = new Oops_Server_Request_Custom($response->getHeader("Location")); $response = $server->Run($this->_request); } Oops_Server::popInstance(); $server = null; if (!$response->isRedirect()) { $this->_content = $response->body; /* translate headers in order to deliver control headers like 'X-Accel-Expires' */ $childHeaders = $response->getHeaders(); if (count($childHeaders)) { $parentHeaders = Oops_Server::getResponse()->getHeaders(); foreach ($childHeaders as $k => $v) { if (!isset($parentHeaders[$k])) { Oops_Server::getResponse()->setHeader($k, $v); } elseif (is_array($parentHeaders[$k])) { Oops_Utils::ToArray($v); foreach ($v as $vv) { Oops_Server::getResponse()->setHeader($k, $vv, false); } } } } } $this->_isHandled = true; $this->_position = 0; }
public static function getConfig() { return Oops_Server::getConfig()->MySQL; }
/** * Initial server run using http request and processing http response * Uses default config location of application/config/oops.ini * Outputs the response * * @return void */ public static function RunHttpDefault() { $server = Oops_Server::newInstance(new Oops_Config_Ini('./application/config/oops.ini')); $response = $server->Run(); echo $response->toString(); }