function.php 2.7 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){
        $sql[] = "`{$f}` = '{$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);
}