static function info($value) { if (!tr::config()->get("app.debug")) { return; } tr_log::info($value); }
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; }
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; }
/** * @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]; }
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; } }
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(); }
function isdebug() { return tr::config()->get("app.debug"); }
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; }
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')); }
function put() { print_r(tr::config()->get("app.test")); exit; echo "put"; }