类库别名和调用修正

增加sae日志驱动
改进Hook类的exec方法
行为扩展优先检测标签方法 不存在则调用run方法
NOW_TIME改用REQUEST_TIME_FLOAT
变量命名规范
This commit is contained in:
thinkphp
2015-02-24 10:45:34 +08:00
parent 20bd23c7d1
commit d28e27270c
16 changed files with 148 additions and 102 deletions

View File

@@ -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;
}

View File

@@ -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; // 避免非法参数
}

View File

@@ -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;
}
}
}

View File

@@ -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);
}
}

View File

@@ -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;
}
}

View 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);
}
}
}

View File

@@ -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];

View File

@@ -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;
}

View File

@@ -10,7 +10,7 @@
// +----------------------------------------------------------------------
namespace think\view\driver;
use think\template;
use think\Template;
class Think {
private $template = null;