function.php 3.5 KB
<?php


/**
 * redis 驱动
 * @return \Lib\RedisPool
 * @author:dc
 * @time 2023/2/13 9:44
 */
function redis():\Lib\RedisPool {

    return \Lib\RedisPool::instance(co::getCid());

}


/**
 * 操作db
 * @return \Lib\DbPool
 * @author:dc
 * @time 2023/2/13 14:15
 */
function db():\Lib\DbPool{

    return \Lib\DbPool::instance(co::getCid());
}





/**
 * 记录日志
 * @param $message
 * @author:dc
 * @time 2023/2/10 14:58
 */
function logs($message,$filename=null){
    @file_put_contents(
        $filename ? $filename : LOG_PATH.'/error.log',
        date('Y-m-d H:i:s ').print_r($message,true).PHP_EOL,
        FILE_APPEND
    );
}


/**
 * 消息输出
 * @param $message
 * @author:dc
 * @time 2023/2/10 15:42
 */
function _echo($message){
    echo date('Y-m-d H:i:s').' '.$message."\n";
}



/**
 * 文本消息,多语言
 * @param $key
 * @return mixed
 * @author:dc
 * @time 2023/2/13 10:51
 */
function __($key):mixed{
   return $key ? \Lib\Lang::msg($key) : '';
}


/**
 * @return \Lib\App
 * @author:dc
 * @time 2023/2/13 11:48
 */
function app():\Lib\App{
    return \Lib\App::instance();
}


/**
 * 过滤函数
 * @param $value
 * @param null $filter
 * @return array|false|float|int|mixed
 * @author:dc
 * @time 2023/2/13 11:54
 */
function my_filter($value,$filter=null){
    if(is_array($value)){
        foreach ($value as $key=>$val){
            $value[$key]    =   my_filter($val,$filter);
        }
    } else {
        // 过滤函数
        if(!is_array($filter)){
            $filter =   [$filter];
        }
        // 合并默认过滤
        $filter =   array_merge(['trim'], $filter);

        // 循环过滤
        foreach ($filter as $fil){
            $fil && $value  =   call_user_func($fil,$value);
        }
    }
    // 强制转类型
    if(is_numeric($value)&&strlen($value)<10&&intval(substr($value,0,1))!==0){
        if(strpos($value,'.')!==false){
//            $value = doubleval($value); 这个要报毒,华为电脑
            $value = floatval($value);
        }else{
            $value = intval($value);
        }
    }

    return $value;
}

/**
 *  db 组合条件
 * @param array $where
 * @param string $ar
 * @return string
 * @author:dc
 * @time 2023/2/17 10:41
 */
function dbWhere(array $where, string $ar = 'and'):string{
    $sql = [];
    foreach ($where as $f=>$v){
        if(is_array($v)){
            $v = array_map(function ($n){
                return "'".addslashes($n)."'";
            },$v);
            $sql[] = "`{$f}` in (".implode(',',$v).")";
        }else{
            $sql[] = "`{$f}` = '".addslashes($v)."'";
        }

    }
    return implode(' '.$ar.' ',$sql);
}

/**
 * db 更新sql
 * @param array $data
 * @return string
 * @author:dc
 * @time 2023/2/17 10:43
 */
function dbUpdate(array $data):string {
    $sql = [];
    foreach ($data as $f=>$v){
        $sql[] = "`{$f}` = :{$f}";
    }
    return implode(' , ',$sql);
}


/**
 * 获取token
 * @return string
 * @author:dc
 * @time 2023/2/17 14:24
 */
function token():string {
    $toekn = app()->request('_token_');

    if(!preg_match("/^[a-z0-9]{32}$/",$toekn)){
        app()->e('token_verify_error');
    }
    return $toekn;
}


/**
 * 分页数据
 * @param $item
 * @param $total
 * @param $page
 * @param $limit
 * @return array
 * @author:dc
 * @time 2023/2/17 15:05
 */
function listsPage($item,$total,$page,$limit){
    return [
        'item'  =>  $item,
        'page'  =>  $page,
        'total'  =>  $total,
        'limit'  =>  $limit,
    ];
}