composer基础使用
Composer 需要 PHP 5.3.2+ 以上版本,且需要开启 openssl。
composer -v
查看版本
推荐使用阿里云全量镜像:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
如仅当前项目使用则可去除-g
选项。
取消配置:composer config -g --unset repos.packagist
Composer 需要 PHP 5.3.2+ 以上版本,且需要开启 openssl。
composer -v
查看版本
推荐使用阿里云全量镜像:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
如仅当前项目使用则可去除-g
选项。
取消配置:composer config -g --unset repos.packagist
windows下备份mysql数据库脚本,可添加到计划任务中实现定时自动备份。默认存储位置为d:\backup(注:为避免中文乱码,请使用ANSI保存)
@echo off
:begin
rem 接收信息
set input=
set /p input=请输入数据库名称:
if "%input%" == "" (
goto begin
)
echo "正在备份 %input%"
set yyyy=%date:~,4%
set mm=%date:~5,2%
set dd=%date:~8,2%
if /i %time:~0,2% lss 10 set hh=0%time:~1,1%
if /i %time:~0,2% geq 10 set hh=%time:~0,2%
set mn=%time:~3,2%
set ss=%time:~6,2%
set date=%yyyy%%mm%%dd%
set time=%hh%%mn%%ss%
set filename=%date%_%time%
::设置备份目录
set label=d:\
set backDir=backup\
set pwd=123456
if exist %label%%backDir% (
::echo 目录%label%%backDir%已存在,无需创建
) else (
echo 创建%label%%backDir%
md %label%%backDir%
)
::主要为当前正在开发的数据备份,已上线系统优先依据线上系统数据库
"E:\wamp\bin\mysql\mysql5.7.31\bin\mysqldump">mysqldump --opt -P3306 -u root --password=%pwd% --databases %input% --single-transaction >%label%%backDir%%input%_%filename%.sql
:: more...
echo "完成备份 %input%"
goto begin
check_file_size.sh
#!/bin/bash
#---------------------------------------
# 检测文件大小
# author: SenSen 1050575278
# date: 2021/10/10
# 注意:所有脚本需测试后方可使用!!!
#---------------------------------------
read -p "Tips! Enter fileName (like 'app/index/controller/Index.php') to continue : " input
#获取当前时间
curtime=`date +"%Y/%m/%d %H:%M:%S"`
#所在目录
dir='/web/oa/'
#自动获取系统目录文件 仅可包含oa系统文件
sysDir=`ls /web/oa`
for f in ${sysDir}
do
/bin/ls -l ${dir}${f}/${input} | awk '{print $5}'
echo ${f}
done
check_mysql_field_exist.sh
#!/bin/bash
#---------------------------------------
# 检测数据库是否存在指定字段 变量1:表名 变量2:字段名
# 注:数据库名同文件夹名
# author: SenSen 1050575278
# date: 2021/10/10
# 注意:所有脚本需测试后方可使用!!!
#---------------------------------------
if [ "$1" ] && [ "$2" ]; then
#获取当前时间
curtime=`date +"%Y/%m/%d %H:%M:%S"`
#所在目录
dir='/web/oa/'
#连接数据库
db_con="/usr/local/mysql/bin/mysql -uxxx -pxxx"
#自动获取系统目录文件 仅可包含oa系统文件
sysDir=`ls /web/oa`
for db in ${sysDir}
do
${db_con} -e "select count(*) from information_schema.columns where table_schema = '${db}' and table_name = '${1}' and column_name = '${2}';" >> /web/shell/check_mysql_field_exist.txt
echo ${db} " done" >> /web/shell/check_mysql_field_exist.txt
done
else
echo "Error: param is empty"
fi
rewrite_file.sh
#!/bin/bash
#---------------------------------------
# 替换指定文件
# 注:参数1为新文件路径 参数2为原文件路径
# author: SenSen 1050575278
# date: 2021/10/10
# 注意:所有脚本需测试后方可使用!!!
#---------------------------------------
if [ "$1" ] && [ "$2" ]; then
#获取当前时间
curtime=`date +"%Y/%m/%d %H:%M:%S"`
#所在目录
dir='/web/oa/'
#自动获取系统目录文件 仅可包含oa系统文件
sysDir=`ls /web/oa`
for f in ${sysDir}
do
cp -rf ${1} ${dir}${f}/${2}
echo ${f} " done"
done
else
echo "Error: param is empty"
fi
task.sh
#!/bin/bash
#---------------------------------------
# 批量启动、停止 task [考虑性能,此接口不再使用]
# author: SenSen 1050575278
# date: 2021/10/07
# 注意:所有脚本需测试后方可使用!!!
#---------------------------------------
#获取当前时间
curtime=`date +"%Y/%m/%d %H:%M:%S"`
#判断是否存在参数,不存在则取消
if [ "$1" == 'start' ] || [ "$1" == 'stop' ]; then
#所在目录
dir='/web/oa/'
#自动获取系统目录文件 仅可包含oa系统文件
sysDir=`ls /web/oa`
#排除目录
excluded=()
for f in ${sysDir}
do
#排除指定目录
if [[ ${excluded[@]/${f}/} != ${excluded[@]} ]]; then
continue
fi
#进入目录
cd ${dir}${f}
#执行对应操作
#/usr/bin/php think task $1
sleep 1
echo "${curtime} ${f} done"
done
else
echo "Error: param is empty"
fi
【安装宝塔】yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
【编译安装】lnmp(nginx1.18 mysql5.7 php7.4 phpmyadmin5.0)
whereOr与where同时使用时,需使用闭包模式,避免sql语句错误。
$user = Db::name('user')->where('uuid', $where['uuid'])->find();
if($user['phone'] && $user['card_id']){
$map1 = [['phone', '=', $user['phone']]];
$map2 = [['card_id', '=', $user['card_id']]];
$model = $model->where(function ($query) use ($map1, $map2) {
$query->whereOr([$map1, $map2]);
});
}elseif($user['card_id']){
$model = $model->where('card_id', $user['card_id']);
}elseif($user['phone']){
$model = $model->where('phone', $user['phone']);
}else{
$model = $model->where('id', 0);
}