mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-01 12:42:48 +08:00
类库别名和调用修正
增加sae日志驱动 改进Hook类的exec方法 行为扩展优先检测标签方法 不存在则调用run方法 NOW_TIME改用REQUEST_TIME_FLOAT 变量命名规范
This commit is contained in:
@@ -27,7 +27,7 @@ class Cache {
|
||||
*/
|
||||
static public function connect($options=[]) {
|
||||
$type = !empty($options['type'])?$options['type']:'File';
|
||||
$class = 'Think\\Cache\\Driver\\'.ucwords($type);
|
||||
$class = 'think\\cache\\driver\\'.ucwords($type);
|
||||
self::$handler = new $class($options);
|
||||
return self::$handler;
|
||||
}
|
||||
|
||||
@@ -12,12 +12,12 @@
|
||||
namespace think;
|
||||
|
||||
class Config {
|
||||
static private $_config = []; // 配置参数
|
||||
static private $_range = '_sys_'; // 参数作用域
|
||||
static private $config = []; // 配置参数
|
||||
static private $range = '_sys_'; // 参数作用域
|
||||
|
||||
// 设定配置参数的作用域
|
||||
static public function range($range){
|
||||
self::$_range = $range;
|
||||
self::$range = $range;
|
||||
}
|
||||
|
||||
// 解析其他格式的配置参数
|
||||
@@ -36,55 +36,55 @@ class Config {
|
||||
|
||||
// 检测配置是否存在
|
||||
static public function has($name,$range=''){
|
||||
$range = $range ? $range : self::$_range;
|
||||
$range = $range ? $range : self::$range;
|
||||
$name = strtolower($name);
|
||||
|
||||
if (!strpos($name, '.')) {
|
||||
return isset(self::$_config[$range][$name]);
|
||||
return isset(self::$config[$range][$name]);
|
||||
}else{
|
||||
// 二维数组设置和获取支持
|
||||
$name = explode('.', $name);
|
||||
return isset(self::$_config[$range][$name[0]][$name[1]]);
|
||||
return isset(self::$config[$range][$name[0]][$name[1]]);
|
||||
}
|
||||
}
|
||||
|
||||
// 获取配置参数 为空则获取所有配置
|
||||
static public function get($name=null,$range='') {
|
||||
$range = $range ? $range : self::$_range;
|
||||
$range = $range ? $range : self::$range;
|
||||
// 无参数时获取所有
|
||||
if (empty($name)) {
|
||||
return self::$_config[$range];
|
||||
return self::$config[$range];
|
||||
}
|
||||
$name = strtolower($name);
|
||||
if (!strpos($name, '.')) {
|
||||
return isset(self::$_config[$range][$name]) ? self::$_config[$range][$name] : null;
|
||||
return isset(self::$config[$range][$name]) ? self::$config[$range][$name] : null;
|
||||
}else{
|
||||
// 二维数组设置和获取支持
|
||||
$name = explode('.', $name);
|
||||
return isset(self::$_config[$range][$name[0]][$name[1]]) ? self::$_config[$range][$name[0]][$name[1]] : null;
|
||||
return isset(self::$config[$range][$name[0]][$name[1]]) ? self::$config[$range][$name[0]][$name[1]] : null;
|
||||
}
|
||||
}
|
||||
|
||||
// 设置配置参数 name为数组则为批量设置
|
||||
static public function set($name, $value=null,$range='') {
|
||||
$range = $range ? $range : self::$_range;
|
||||
if(!isset(self::$_config[$range])) {
|
||||
self::$_config[$range] = [];
|
||||
$range = $range ? $range : self::$range;
|
||||
if(!isset(self::$config[$range])) {
|
||||
self::$config[$range] = [];
|
||||
}
|
||||
if (is_string($name)) {
|
||||
$name = strtolower($name);
|
||||
if (!strpos($name, '.')) {
|
||||
self::$_config[$range][$name] = $value;
|
||||
self::$config[$range][$name] = $value;
|
||||
}else{
|
||||
// 二维数组设置和获取支持
|
||||
$name = explode('.', $name);
|
||||
self::$_config[$range][$name[0]][$name[1]] = $value;
|
||||
self::$config[$range][$name[0]][$name[1]] = $value;
|
||||
}
|
||||
return;
|
||||
}elseif (is_array($name)){
|
||||
// 批量设置
|
||||
self::$_config[$range] = array_merge(self::$_config[$range], array_change_key_case($name));
|
||||
return self::$_config[$range];
|
||||
self::$config[$range] = array_merge(self::$config[$range], array_change_key_case($name));
|
||||
return self::$config[$range];
|
||||
}else{
|
||||
return null; // 避免非法参数
|
||||
}
|
||||
|
||||
@@ -13,8 +13,8 @@ namespace think;
|
||||
|
||||
class Debug {
|
||||
|
||||
static protected $_info = [];
|
||||
static protected $_mem = [];
|
||||
static protected $info = [];
|
||||
static protected $mem = [];
|
||||
|
||||
/**
|
||||
* 记录时间(微秒)和内存使用情况
|
||||
@@ -24,10 +24,10 @@ class Debug {
|
||||
*/
|
||||
static public function remark($name,$value='') {
|
||||
// 记录时间和内存使用
|
||||
self::$_info[$name] = is_float($value) ? $value : microtime(true);
|
||||
self::$info[$name] = is_float($value) ? $value : microtime(true);
|
||||
if('time' != $value ) {
|
||||
self::$_mem['mem'][$name] = is_float($value) ? $value : memory_get_usage();
|
||||
self::$_mem['peak'][$name] = function_exists('memory_get_peak_usage') ? memory_get_peak_usage() : self::$_mem['mem'][$name];
|
||||
self::$mem['mem'][$name] = is_float($value) ? $value : memory_get_usage();
|
||||
self::$mem['peak'][$name] = memory_get_peak_usage();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,9 +39,10 @@ class Debug {
|
||||
* @return mixed
|
||||
*/
|
||||
static public function getUseTime($start,$end,$dec=6) {
|
||||
if(!isset(self::$_info[$end]))
|
||||
self::$_info[$end] = microtime(true);
|
||||
return number_format((self::$_info[$end]-self::$_info[$start]),$dec);
|
||||
if(!isset(self::$info[$end])) {
|
||||
self::$info[$end] = microtime(true);
|
||||
}
|
||||
return number_format((self::$info[$end]-self::$info[$start]),$dec);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -52,9 +53,10 @@ class Debug {
|
||||
* @return mixed
|
||||
*/
|
||||
static public function getUseMem($start,$end,$dec=2) {
|
||||
if(!isset(self::$_mem['mem'][$end]))
|
||||
self::$_mem['mem'][$end] = memory_get_usage();
|
||||
$size = self::$_mem['mem'][$end]-self::$_mem['mem'][$start];
|
||||
if(!isset(self::$mem['mem'][$end])) {
|
||||
self::$mem['mem'][$end] = memory_get_usage();
|
||||
}
|
||||
$size = self::$mem['mem'][$end]-self::$mem['mem'][$start];
|
||||
$a = ['B', 'KB', 'MB', 'GB', 'TB'];
|
||||
$pos = 0;
|
||||
while ($size >= 1024) {
|
||||
@@ -72,9 +74,10 @@ class Debug {
|
||||
* @return mixed
|
||||
*/
|
||||
static public function getMemPeak($start,$end,$dec=2) {
|
||||
if(!isset(self::$_mem['peak'][$end]))
|
||||
self::$_mem['peak'][$end] = function_exists('memory_get_peak_usage') ? memory_get_peak_usage() : memory_get_usage();
|
||||
$size = self::$_mem['peak'][$end]-self::$_mem['peak'][$start];
|
||||
if(!isset(self::$mem['peak'][$end])) {
|
||||
self::$mem['peak'][$end] = memory_get_peak_usage() ;
|
||||
}
|
||||
$size = self::$mem['peak'][$end]-self::$mem['peak'][$start];
|
||||
$a = ['B', 'KB', 'MB', 'GB', 'TB'];
|
||||
$pos = 0;
|
||||
while ($size >= 1024) {
|
||||
@@ -108,7 +111,8 @@ class Debug {
|
||||
if ($echo) {
|
||||
echo($output);
|
||||
return null;
|
||||
}else
|
||||
}else{
|
||||
return $output;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,11 +76,7 @@ class Hook {
|
||||
if($name instanceof \Closure) {
|
||||
return $name($params);
|
||||
}
|
||||
if('Behavior' == substr($name,-8) ){
|
||||
// 行为扩展必须用run入口方法
|
||||
$tag = 'run';
|
||||
}
|
||||
$addon = new $name();
|
||||
return $addon->$tag($params);
|
||||
return method_exists($addon,$tag) ? $addon->$tag($params): $addon->run($params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,12 +12,12 @@
|
||||
namespace think;
|
||||
|
||||
class Lang {
|
||||
static private $_lang = []; // 语言参数
|
||||
static private $_range = '_sys_'; // 作用域
|
||||
static private $lang = []; // 语言参数
|
||||
static private $range = '_sys_'; // 作用域
|
||||
|
||||
// 设定语言参数的作用域
|
||||
static public function range($range){
|
||||
self::$_range = $range;
|
||||
self::$range = $range;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -28,12 +28,12 @@ class Lang {
|
||||
* @return mixed
|
||||
*/
|
||||
static public function set($name, $value=null,$range='') {
|
||||
$range = $range?$range:self::$_range;
|
||||
$range = $range?$range:self::$range;
|
||||
// 批量定义
|
||||
if (is_array($name)){
|
||||
return self::$_lang[$range] = array_merge(self::$_lang[$range], array_change_key_case($name));
|
||||
return self::$lang[$range] = array_merge(self::$lang[$range], array_change_key_case($name));
|
||||
}else{
|
||||
return self::$_lang[$range][strtolower($name)] = $value;
|
||||
return self::$lang[$range][strtolower($name)] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,11 +44,11 @@ class Lang {
|
||||
* @return mixed
|
||||
*/
|
||||
static public function get($name=null, $range='') {
|
||||
$range = $range?$range:self::$_range;
|
||||
$range = $range?$range:self::$range;
|
||||
// 空参数返回所有定义
|
||||
if (empty($name))
|
||||
return self::$_lang[$range];
|
||||
return self::$lang[$range];
|
||||
$name = strtolower($name);
|
||||
return isset(self::$_lang[$range][$name]) ? self::$_lang[$range][$name] : $name;
|
||||
return isset(self::$lang[$range][$name]) ? self::$lang[$range][$name] : $name;
|
||||
}
|
||||
}
|
||||
|
||||
49
library/think/log/driver/sae.php
Normal file
49
library/think/log/driver/sae.php
Normal file
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | TOPThink [ WE CAN DO IT JUST THINK ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2011 http://topthink.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: luofei614 <weibo.com/luofei614>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace think\log\driver;
|
||||
|
||||
class Sae {
|
||||
|
||||
protected $config = [
|
||||
'log_time_format' => ' c ',
|
||||
];
|
||||
|
||||
// 实例化并传入参数
|
||||
public function __construct($config=[]){
|
||||
$this->config = array_merge($this->config,$config);
|
||||
}
|
||||
|
||||
/**
|
||||
* 日志写入接口
|
||||
* @access public
|
||||
* @param string $log 日志信息
|
||||
* @param string $destination 写入目标
|
||||
* @return void
|
||||
*/
|
||||
public function write($log,$destination='') {
|
||||
static $is_debug = null;
|
||||
$now = date($this->config['log_time_format']);
|
||||
$logstr = "[{$now}] ".$_SERVER['REMOTE_ADDR'].' '.$_SERVER['REQUEST_URI']."\r\n{$log}\r\n";
|
||||
if(is_null($is_debug)){
|
||||
preg_replace('@(\w+)\=([^;]*)@e', '$appSettings[\'\\1\']="\\2";', $_SERVER['HTTP_APPCOOKIE']);
|
||||
$is_debug = in_array($_SERVER['HTTP_APPVERSION'], explode(',', $appSettings['debug'])) ? true : false;
|
||||
}
|
||||
if($is_debug){
|
||||
sae_set_display_errors(false);//记录日志不将日志打印出来
|
||||
}
|
||||
sae_debug($logstr);
|
||||
if($is_debug){
|
||||
sae_set_display_errors(true);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -60,7 +60,7 @@ class Template {
|
||||
|
||||
// 初始化模板编译存储器
|
||||
$type = $this->config['compile_type']?$this->config['compile_type']:'File';
|
||||
$class = '\Think\Template\Driver\\'.ucwords($type);
|
||||
$class = '\\think\\template\\driver\\'.ucwords($type);
|
||||
$this->storage = new $class();
|
||||
}
|
||||
|
||||
@@ -439,7 +439,7 @@ class Template {
|
||||
protected function parseTagLib($tagLib,&$content,$hide=false) {
|
||||
$begin = $this->config['taglib_begin'];
|
||||
$end = $this->config['taglib_end'];
|
||||
$className = '\\Think\\Template\\Taglib\\'.ucwords($tagLib);
|
||||
$className = '\\think\\template\\taglib\\'.ucwords($tagLib);
|
||||
$tLib = new $className($this);
|
||||
foreach ($tLib->getTags() as $name=>$val){
|
||||
$tags = [$name];
|
||||
|
||||
@@ -72,7 +72,7 @@ class View {
|
||||
* @return View
|
||||
*/
|
||||
public function engine($engine, array $config = []){
|
||||
$class = '\\Think\\View\\Driver\\' . ucwords($engine);
|
||||
$class = '\\think\\view\\driver\\' . ucwords($engine);
|
||||
$this->engine = new $class($config);
|
||||
return $this;
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace think\view\driver;
|
||||
use think\template;
|
||||
use think\Template;
|
||||
|
||||
class Think {
|
||||
private $template = null;
|
||||
|
||||
Reference in New Issue
Block a user