コード例 #1
0
ファイル: tr.php プロジェクト: hpuwang/toro_web
 static function info($value)
 {
     if (!tr::config()->get("app.debug")) {
         return;
     }
     tr_log::info($value);
 }
コード例 #2
0
ファイル: db.php プロジェクト: hpuwang/toro_restfull
 static function getAdapter($dnType = 0, $userStatic = 1)
 {
     if (isset(self::$instance[$dnType]) && self::$instance[$dnType] && $userStatic) {
         return self::$instance[$dnType];
     }
     $dbh = null;
     $slaveDBH = null;
     $dbconfig = tr::config()->get("app.db");
     if (isset($dbconfig['master'])) {
         $masterConfig = $dbconfig['master'];
         $dbh = new PDO('mysql:host=' . $masterConfig['host'] . ';port=' . $masterConfig['port'] . ';dbname=' . $masterConfig['db_name'] . '', $masterConfig['user'], $masterConfig['password'], array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''));
     }
     if (isset($dbconfig['slave'])) {
         $masterConfig = $dbconfig['slave'];
         $slaveDBH = new PDO('mysql:host=' . $masterConfig['host'] . ';port=' . $masterConfig['port'] . ';dbname=' . $masterConfig['db_name'] . '', $masterConfig['user'], $masterConfig['password'], array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''));
     }
     if ($dnType == 0) {
         $connection = $dbh;
     } else {
         $connection = $slaveDBH ? $slaveDBH : $dbh;
     }
     $connection->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
     self::$instance[$dnType] = $connection;
     return $connection;
 }
コード例 #3
0
ファイル: minify.php プロジェクト: hpuwang/toro_web
 private static function minifyCSS()
 {
     $sourcePathConfig = tr::config()->get("app.minify");
     $minifier = new Minify\CSS();
     if ($sourcePathConfig['css']) {
         foreach ($sourcePathConfig['css'] as $v) {
             $minifier->add($v);
         }
     }
     $minifier->minify(ROOT_PATH . "/public/asset/global.css");
     return true;
 }
コード例 #4
0
ファイル: cache.php プロジェクト: hpuwang/toro_web
 /**
  * @return tr_cache
  */
 public static function cache()
 {
     $className = get_called_class();
     if (!isset(self::$_instance[$className]) || !self::$_instance[$className]) {
         $cacheConfig = tr::config()->get("cache");
         if (!is_dir(ROOT_PATH . "/" . $cacheConfig['path'])) {
             mkdir(ROOT_PATH . "/" . $cacheConfig['path'], 0777, true);
         }
         self::$_instance[$className] = new $className();
         tr_cache::$storage = $cacheConfig['storage'];
         tr_cache::$securityKey = $cacheConfig['path'];
         tr_cache::$path = ROOT_PATH;
     }
     return self::$_instance[$className];
 }
コード例 #5
0
ファイル: session.php プロジェクト: hpuwang/toro_web
 static function session()
 {
     $className = get_called_class();
     if (isset(self::$_instance[$className]) && self::$_instance[$className]) {
         return self::$_instance[$className];
     }
     $sessionConfig = tr::config()->get("app.session.handle");
     if ($sessionConfig == 'file') {
         $path = ROOT_PATH . "cache/session";
         if (!is_dir($path)) {
             mkdir($path, 0777, true);
         }
         $session = new Session(new FileStore($path));
         self::$_instance[$className] = $session;
         return $session;
     } elseif ($sessionConfig == 'memcache') {
         $param = tr::config()->get("app.session.param");
         if (class_exists("Memcached")) {
             $memcached = new Memcached();
             if (is_array($param)) {
                 foreach ($param as $v) {
                     $memcached->addServer($v['hostname'], $v['port'], $v['weight']);
                 }
             } else {
                 $memcached->addServer($param['hostname'], $param['port'], $param['weight']);
             }
         } else {
             $memcached = new Memcache();
             if (is_array($param)) {
                 foreach ($param as $name => $cache_server) {
                     $memcached->connect($cache_server['hostname'], $cache_server['port'], $cache_server['weight']);
                     break;
                 }
             } else {
                 $memcached->connect($param['hostname'], $param['port'], $param['weight']);
             }
         }
         $session = new Session(new DoctrineCache(new MemcachedCache($memcached)));
         self::$_instance[$className] = $session;
         return $session;
     }
 }
コード例 #6
0
ファイル: mail.php プロジェクト: hpuwang/toro_web
 function send($recevierArr, $subject, $body, $attachment = "")
 {
     $className = get_called_class();
     $obj = self::$_instance[$className];
     $sender = tr::config()->get("app.mail.sender");
     $obj->setFrom($sender);
     if (is_array($recevierArr)) {
         foreach ($recevierArr as $v) {
             $obj->addTo($v);
         }
     } else {
         $obj->addTo($recevierArr);
     }
     $obj->setSubject($subject);
     $obj->setHTMLBody($body);
     if ($attachment) {
         $obj->addAttachment($attachment);
     }
     //        dd($obj);
     return $obj->dosend();
 }
コード例 #7
0
ファイル: init.php プロジェクト: hpuwang/toro_web
 function isdebug()
 {
     return tr::config()->get("app.debug");
 }
コード例 #8
0
ファイル: function.php プロジェクト: hpuwang/toro_web
function style($url)
{
    $url = trim($url, "/");
    $dir = dirname($_SERVER['PHP_SELF']);
    $dirArr = explode("index.php", $dir);
    $dir = array_shift($dirArr);
    $dir = str_replace("\\", "/", $dir);
    $path = $dir . "/asset/" . $url;
    $path = str_replace("//", "/", $path);
    $v = tr::config()->get("app.static_version");
    //    return $path . "?v=" . $v. ".css" ;
    return "<link rel=\"stylesheet\" type='text/css' href=\"" . $path . "?v=" . $v . ".css\"/>" . PHP_EOL;
}
コード例 #9
0
ファイル: route.php プロジェクト: hpuwang/toro_web
 public static function serve($routes)
 {
     if (!isset($_SERVER['REQUEST_METHOD'])) {
         return;
     }
     tr_hook::fire('before_request', compact('routes'));
     $onlyReset = tr::config()->get("app.only_reset");
     $request_method = strtolower($_SERVER['REQUEST_METHOD']);
     $path_info = '/';
     if (!empty($_SERVER['PATH_INFO'])) {
         $path_info = $_SERVER['PATH_INFO'];
     } elseif (!empty($_SERVER['ORIG_PATH_INFO']) && $_SERVER['ORIG_PATH_INFO'] !== '/index.php') {
         $path_info = $_SERVER['ORIG_PATH_INFO'];
     } else {
         if (!empty($_SERVER['REQUEST_URI'])) {
             $path_info = strpos($_SERVER['REQUEST_URI'], '?') > 0 ? strstr($_SERVER['REQUEST_URI'], '?', true) : $_SERVER['REQUEST_URI'];
         }
     }
     $discovered_handler = null;
     $regex_matches = array();
     if (isset($routes[$path_info])) {
         $discovered_handler = $routes[$path_info];
     } elseif ($routes) {
         $tokens = array(':string' => '([a-zA-Z]+)', ':number' => '([0-9]+)', ':alpha' => '([a-zA-Z0-9-_]+)');
         foreach ($routes as $pattern => $handler_name) {
             $pattern = strtr($pattern, $tokens);
             if (preg_match('#^/?' . $pattern . '/?$#', $path_info, $matches)) {
                 $discovered_handler = $handler_name;
                 $regex_matches = $matches;
                 break;
             }
         }
     }
     $result = null;
     $handler_instance = null;
     if ($discovered_handler) {
         if (stristr($discovered_handler, "@")) {
             list($className, $method) = explode("@", $discovered_handler);
             $handler_instance = new $className();
             $request_method = $method;
         } else {
             if (is_string($discovered_handler)) {
                 $handler_instance = new $discovered_handler();
             } elseif (is_callable($discovered_handler)) {
                 $handler_instance = $discovered_handler();
             }
         }
     }
     if ($handler_instance) {
         unset($regex_matches[0]);
         if (self::is_xhr_request() && method_exists($handler_instance, $request_method . '_xhr')) {
             header('Content-type: application/json');
             header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
             header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
             header('Cache-Control: no-store, no-cache, must-revalidate');
             header('Cache-Control: post-check=0, pre-check=0', false);
             header('Pragma: no-cache');
             $request_method .= '_xhr';
         }
         if (method_exists($handler_instance, $request_method)) {
             tr_hook::fire('before_handler', compact('routes', 'discovered_handler', 'request_method', 'regex_matches'));
             $result = call_user_func_array(array($handler_instance, $request_method), $regex_matches);
             tr_hook::fire('after_handler', compact('routes', 'discovered_handler', 'request_method', 'regex_matches', 'result'));
         } else {
             tr_hook::fire('404', compact('routes', 'discovered_handler', 'request_method', 'regex_matches'));
         }
     } else {
         tr_hook::fire('404', compact('routes', 'discovered_handler', 'request_method', 'regex_matches'));
     }
     tr_hook::fire('after_request', compact('routes', 'discovered_handler', 'request_method', 'regex_matches', 'result'));
 }
コード例 #10
0
ファイル: index.php プロジェクト: hpuwang/toro_restfull
 function put()
 {
     print_r(tr::config()->get("app.test"));
     exit;
     echo "put";
 }