laravel技巧之pivot
通过pivot属性来访问关联表的字段
$user = App\User::find(1);
foreach ($user->roles as $role) {
echo $role->pivot->created_at;
}
laravel 验证规则大全
public function rules() { return [ 'title' => ['required' , ] , //标题必填, 'document_number' => [ 'required' ] , 'company_id' => [ 'required' , 'integer' ] ]; }
php雪花id生成类
/** * 雪花算法类 * @package App\Helper */ class SnowFlake { const EPOCH = 1653634710598; //软件时间,精确到毫秒的unix时间戳 const max12bit = 4095; //12 bit 可以代表的最大正整数是 2 ^ 12 - 1 = 4096,也就是说可以用这个 12 bit 代表的数字来区分同一个毫秒内的 4096 个不同的 id。也就是同一毫秒内同一台机器所生成的最大ID数量为4096 const max41bit = 1099511627775; //2的40次方-1 表示的是时间戳。
...
自动生成接口文档工具APIPOST
重要的话放在前面,ApiPost yyds。
您一定写过接口吧,您一定写过接口文档吧,写接口文档那段痛苦的经历你还记得吗?
你用的swagger? function上面的注释一大堆。不好,不好。
有一个接口调试工具能自动生成文档。怎么样?
APIPOST - yyds
苹果系统brew 使用
#本地软件库列表: $ brew ls #查找软件: $ brew search google(其中google替换为要查找的关键字) #查看brew版本: $ brew -v
...
mysql 命令
#mysql 备份一张表 $ mysqldump -t scdemo_qichengla -u root -p --tables cslb_sig_content > cslb_sig_content.sql.gz $ show index from table_name $ alter table cslb_sig_content engine=innodb; $ DROP INDEX <索引名> ON <表名> $ alter table cslb_sig_content add index index_type_project(type,project_id);
nginx配置
# 解决跨域 在域名站点 / 目录下添加 add_header Access-Control-Allow-Origin *; #服务器域名跳转 server{ listen 80; server_name xxx.com; rewrite ^(.*)$ https://www.${server_name}$1 permanent; } #服务器域名跳转 server{ listen 80; server_name www.xxx.com; rewrite ^(.*)$ https://${server_name}$1 permanent; }
...
vue
#安装vuecli -g表示全局安装
$ npm install @vue/cli -g
#使用webpack安装初始化项目
$ vue init webpack <项目名>
$ cd <项目名>
$ npm install view-design --save
npm
常用命令
$ node -v $ npm install $ npm -v $ npm run init $ npm run dev
elk日志系统搭建
ElasticSearch + filebeat +logstash + kibana
# 安装ik中文分词插件 $ bin/elasticsearch-plug*** install ik安装包地址 # 启动es $ bin/elasticsearch # 测试一下logstash能用不,允许Logstash最基本的管道: #(tips:选项 -e 的意思是允许从命令行指定配置) $ bin/logstash -e 'input { stdin {} } output { stdout {} }' # 启动以后,下面我们在命令行下输入"hello world" 会返回输入的信息到控制台
git下载安装,使用教程,开发常用命令整理
#回退到上一个版本 $ git reset --hard HEAD^ #查看历史版本命令 $ git reflog #到指定版本 xxxx表示版本号 $ git reset --hard xxxxx #放弃更改某个文件,从版本库覆盖当前文件 $ git checkout -- <file> #如果已经跳到暂存区,要重新放回工作区 $ git reset HEAD <file>
compoer讲解,安装方式,使用技巧
#添加新的依赖包到composer.json文件中并执行更新 $composer require #在当前项目中搜索依赖包 $ composer search xx #列举所有可用的资源包 $ composer show xx #检测composer.json文件是否有效 $ composer validate #将composer工具更新到最新版本; $ composer self-update
...
linux 以及 mac 编程时常用命令
#查看机器最大链接数量 $ ulimit -n # 检查端口被哪个进程占用 $ netstat -lnpt |grep 5672 # 查看进程的详细信息 ps 6832 # 查找某个文件或文件夹 $ find <指定目录><指定条件><指定动作> #抓包命令 $ tcpdump -Ans 4096 -iany port 9060 | grep "抓包的内容" -C 50 #查找文件内容 $ grep "查找内容" yyyy-MM-dd_*.log
...
MYSQL数据库时间字段INT,TIMESTAMP,DATETIME性能效率比较
在数据库设计的时候,我们经常会需要设计时间字段,在MYSQL中,时间字段可以使用int、timestamp、datetime三种类型来存储,那么这三种类型哪一种用来存储时间性能比较高,效率好呢?
先说结论:
对于InnoDB引擎,建立索引的情况下,效率从高到低:int > datetime(直接和时间比较) > timestamp(直接和时间比较)> UNIX_TIMESTAMP(timestamp) > UNIX_TIMESTAMP(datetime)。
对于InnoDB引擎,不建立索引的情况...
mysql 主从配置 master-slave
使用主从同步的好处:
1.通过增加从服务器来提高数据库的性能,在主服务器上执行写入和更新,在从服务器上向外提供读功能,可以动态地调整从服务器的数量,从而调整整个数据库的性能。
2.提高数据安全-因为数据已复制到从服务器,从服务器可以终止复制进程,所以,可以在从服务器上备份而不破坏主服务器相应数据
3.在主服务器上生成实时数据,而在从服务器上分析这些数据,从而提高主服务器的性能
主从同步原理:
1、slave 服务器执行 start slave,开启主从复制开关, slave 服务器的 IO 线程请求从 master 服务器读取 binlog(如果该线程追赶上了主库,会进入睡眠状态)。
2、master 服务器的更新SQL(update、insert、delete)被写到binlog, 主库的 binlog dump thread,把 bin log 的内容发送到从库
...
从0开始构建一个博客(二) - 路由、控制器、模型
基础路由 Route::get('/index.html', [IndexController::class, 'index']); Route::get('/link.html', [IndexController::class, 'link']); resource路由 Route::resource('articles',"Web\ArticleController" ); Route::resource('books','Web\BookController'); //闭包路由 Route::get('foo', function () {return 'Hello World';}); //带中间件路由 Route::resource('articles',"Web\ArticleController" )->middleware('throttle:30,1');//访问频次每分钟最多访问30次
Mysql数据同步到elasticsearch - canal(管道方式)
将mysql数据导入到es的两种方式
同步导入:就是在你的项目中接入 es 客户端,在写完数据库后,同步写入到 es。
异步导入:使用消息队列,当写完数据库后,使用消息队列异步写入到 es。还有一种方式就是使用 mysql 的 binlog,异步写入到 es
...
linux 的文件查看命令 - less
linux 的文件查看命令 - less 语法 less [参数] xxx.log
常用参数
/字符串:向下搜索"字符串"的功能
?字符串:向上搜索"字符串"的功能
n:重复前一个搜索(与 / 或 ? 有关)
...
mysql慢查询分析
临时开启慢查询日志(重启失效)
set global slow_query_log = on;
如果想关闭慢查询日志,只需要执行 set global slow_query_log = off;即可
临时慢查询时间临界点 查询时间高于这个临界点的都会被记录到慢查询日志中(重启失效)
set long_query_time = 1;
如果设置为1,查询时长超过1s的语句会被记录为慢查询。
...
redis操作
redis的操作是以key - value的形式存储的
key为:字符串
value五种类型: str字符串,hash表,list集合,set集合,zset集合
基本操作
获取值:
1.获取基本值: get key
...