コード例 #1
0
ファイル: Error.php プロジェクト: laiello/oops-project
 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);
 }
コード例 #2
0
ファイル: Controller.php プロジェクト: laiello/oops-project
 /**
  *
  * @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();
 }
コード例 #3
0
ファイル: ServerTests.php プロジェクト: laiello/oops-project
 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);
 }
コード例 #4
0
ファイル: None.php プロジェクト: laiello/oops-project
 function getContentType()
 {
     $ret = 'text/plain';
     $cfg = Oops_Server::getConfig();
     if (strlen($charset = $cfg->oops->charset)) {
         $ret .= "; charset={$charset}";
     }
     return $ret;
 }
コード例 #5
0
ファイル: Cache.php プロジェクト: laiello/oops-project
 /**
  *
  * @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;
 }
コード例 #6
0
ファイル: Php.php プロジェクト: laiello/oops-project
 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;
 }
コード例 #7
0
ファイル: Session.php プロジェクト: laiello/oops-project
 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);
 }
コード例 #8
0
ファイル: Controller.php プロジェクト: laiello/oops-project
 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;
 }
コード例 #9
0
ファイル: Template.php プロジェクト: laiello/oops-project
 /**
  * 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];
 }
コード例 #10
0
ファイル: Curl.php プロジェクト: laiello/oops-project
 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);
     }
 }
コード例 #11
0
ファイル: Helper.php プロジェクト: laiello/oops-project
 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);
         }
     }
 }
コード例 #12
0
ファイル: Debug.php プロジェクト: laiello/oops-project
 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;
 }
コード例 #13
0
ファイル: index.php プロジェクト: laiello/oops-project
<?php

error_reporting(E_ALL ^ E_NOTICE);
require_once "../../library/Oops/_Import.php";
require_once "Oops/Server.php";
Oops_Server::RunHttpDefault();
コード例 #14
0
ファイル: Wrapper.php プロジェクト: laiello/oops-project
 /**
  * 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;
 }
コード例 #15
0
ファイル: Sql.php プロジェクト: laiello/oops-project
 public static function getConfig()
 {
     return Oops_Server::getConfig()->MySQL;
 }
コード例 #16
0
ファイル: Server.php プロジェクト: laiello/oops-project
 /**
  * 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();
 }