laravel技巧之pivot
2022-06-06 14:04:35
  1. 通过pivot属性来访问关联表的字段

  2. $user = App\User::find(1);

  3. foreach ($user->roles as $role) {

  4. echo $role->pivot->created_at;

  5. }


laravel 验证规则大全
2022-06-05 18:10:03
public function rules()
{
         
    return [
        'title'           => ['required' , ] , //标题必填,
        'document_number' => [ 'required' ] ,
        'company_id'      => [ 'required' , 'integer' ]
    ];
}
php雪花id生成类
2022-06-01 14:24:18
/**
 * 雪花算法类
 * @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
2022-05-30 13:46:43

重要的话放在前面,ApiPost yyds。

您一定写过接口吧,您一定写过接口文档吧,写接口文档那段痛苦的经历你还记得吗?

你用的swagger? function上面的注释一大堆。不好,不好。

有一个接口调试工具能自动生成文档。怎么样?

APIPOST - yyds

苹果系统brew 使用
2022-05-28 18:16:12
#本地软件库列表:

$ brew ls

#查找软件:

$ brew search google(其中google替换为要查找的关键字)

#查看brew版本:

$ brew -v

...

mysql 命令
2022-05-28 14:03:32
#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配置
2022-05-28 14:02:08
# 解决跨域  在域名站点 / 目录下添加
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
2022-05-28 14:01:33

#安装vuecli -g表示全局安装

$ npm install @vue/cli -g


#使用webpack安装初始化项目

$ vue init webpack <项目名>


$ cd <项目名>


$ npm install view-design --save


npm
2022-05-28 14:01:03

常用命令

$ node -v

$ npm install

$ npm -v

$ npm run init

$ npm run dev



elk日志系统搭建
2022-05-28 13:59:59

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下载安装,使用教程,开发常用命令整理
2022-05-28 13:57:38
#回退到上一个版本
$ git reset --hard HEAD^

#查看历史版本命令
$ git reflog

#到指定版本  xxxx表示版本号
$ git reset --hard xxxxx

#放弃更改某个文件,从版本库覆盖当前文件
$ git checkout -- <file>

#如果已经跳到暂存区,要重新放回工作区
$ git  reset HEAD <file>


compoer讲解,安装方式,使用技巧
2022-05-28 13:53:26
#添加新的依赖包到composer.json文件中并执行更新
$composer require
#在当前项目中搜索依赖包
$ composer search xx
#列举所有可用的资源包
$ composer show xx
#检测composer.json文件是否有效
$ composer validate
#将composer工具更新到最新版本;
$ composer self-update

...

linux 以及 mac 编程时常用命令
2022-05-28 11:27:45
#查看机器最大链接数量
$ 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性能效率比较
2022-05-27 13:40:46

在数据库设计的时候,我们经常会需要设计时间字段,在MYSQL中,时间字段可以使用int、timestamp、datetime三种类型来存储,那么这三种类型哪一种用来存储时间性能比较高,效率好呢?

先说结论:

  • 对于InnoDB引擎,建立索引的情况下,效率从高到低:int > datetime(直接和时间比较) > timestamp(直接和时间比较)> UNIX_TIMESTAMP(timestamp) > UNIX_TIMESTAMP(datetime)。

  • 对于InnoDB引擎,不建立索引的情况...

mysql 主从配置 master-slave
2022-05-27 09:27:47

使用主从同步的好处:

1.通过增加从服务器来提高数据库的性能,在主服务器上执行写入和更新,在从服务器上向外提供读功能,可以动态地调整从服务器的数量,从而调整整个数据库的性能。

2.提高数据安全-因为数据已复制到从服务器,从服务器可以终止复制进程,所以,可以在从服务器上备份而不破坏主服务器相应数据

3.在主服务器上生成实时数据,而在从服务器上分析这些数据,从而提高主服务器的性能


主从同步原理:

1、slave 服务器执行 start slave,开启主从复制开关, slave 服务器的 IO 线程请求从 master 服务器读取 binlog(如果该线程追赶上了主库,会进入睡眠状态)。

2、master 服务器的更新SQL(update、insert、delete)被写到binlog, 主库的 binlog dump thread,把 bin log 的内容发送到从库

...

从0开始构建一个博客(二) - 路由、控制器、模型
2022-05-25 17:04:46
基础路由
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(管道方式)
2022-05-25 09:23:15

将mysql数据导入到es的两种方式

同步导入:就是在你的项目中接入 es 客户端,在写完数据库后,同步写入到 es。 

异步导入:使用消息队列,当写完数据库后,使用消息队列异步写入到 es。还有一种方式就是使用 mysql 的 binlog,异步写入到 es

...

linux 的文件查看命令 - less
2022-05-24 14:36:04

linux 的文件查看命令 - less 语法 less [参数] xxx.log

常用参数

/字符串:向下搜索"字符串"的功能

?字符串:向上搜索"字符串"的功能

n:重复前一个搜索(与 / 或 ? 有关)

...

mysql慢查询分析
2022-05-23 15:24:37

临时开启慢查询日志(重启失效)

set global slow_query_log = on;

如果想关闭慢查询日志,只需要执行 set global slow_query_log = off;即可

临时慢查询时间临界点  查询时间高于这个临界点的都会被记录到慢查询日志中(重启失效)

set long_query_time = 1;

如果设置为1,查询时长超过1s的语句会被记录为慢查询。

...

redis操作
2022-05-23 02:50:46

redis的操作是以key - value的形式存储的
key为:字符串
value五种类型: str字符串,hash表,list集合,set集合,zset集合

基本操作

获取值:
1.获取基本值: get key

...