- 博客(327)
- 资源 (1)
- 收藏
- 关注
原创 egg-socket.io知识点
Socket.IO 是一个基于 Node.js 的实时应用程序框架,在即时通讯、通知与消息推送,实时分析等场景中有较为广泛的应用。支持 websocket、polling 两种数据传输方式以兼容浏览器不支持 WebSocket 场景下的通信需求。egg框架提供了 egg-socket.io 插件,增加了以下开发规约:namespace: 通过配置的方式定义 namespace(命名空间) middleware: 对每一次 socket 连接的建立/断开、每一次消息/数据传递进行预处理 contro
2020-08-22 11:23:00
1773
原创 nodejs是一门后端语言
nodejs是一门后端语言。在浏览器 JavaScript 中,通常 window 是全局对象,而 Node.js 中的全局对象是 global,所有全局变量(除了 global 本身以外)都是 global 对象的属性。安装完nodejs后,默认安装包管理工具npm:npm install -g cnpm --registry=https://registry.npm.taobao.org 使用淘宝镜像的命令npm root -g 命令会告全局安装包位置;npm list -g 查看所
2020-08-19 10:19:50
3611
原创 Vue 全家桶知识点
vue全家桶:vue + vuex (状态管理) + vue-router (路由) + vue-resource + axios +UI框架(iview、vant、elementUI等等)概括起来就是:、1.项目构建工具、2.路由、3.状态管理、4.http请求工具。两大核心思想:组件化和数据驱动。组件化:把整体拆分为各个可以复用的个体,数据驱动:通过数据变化直接影响bom展示,避免dom操作。Vue-cli是快速构建单页应用的脚手架# 全局安装 vue-cli$ npm install ..
2020-07-14 14:41:44
689
原创 laravel Event事件 和事件处理器(事件监听器)Listeners
概念:事件是一种常见的观察者模式的应用。含义:当 (event)... 然后(干) (listener)...业务逻辑处理:事件event除了定义属性和注入事件参数外不做业务逻辑处理,而是交给事件处理器(即监听器listener)的handle方法来处理具体的业务逻辑。放置 event 和 listener 文件的位置app/Eventsapp/Listeners定义用 Artisan 命令可以快速生成一个模板:php artisan make:event UserEvent.
2020-06-16 10:42:59
1887
原创 laravel unittest测试
约定:测试文件名需要以 Test 作为后缀,比如如果要测试 First.php,则对应的测试文件名为 FirstTest.php;测试方法名需要以 test 作为前缀,比如如果要测试的方法名为 getuser,则对应的测试方法名为 testGetuser,此外,你还可以通过 @test 注解来声明一个测试方法;所有的测试方法可见性必须是 public;所有的测试类都继承自 PHPUnit\Framework\TestCase。创建一个测试用例:php artisan make:test Us.
2020-06-13 11:07:29
979
原创 laravel API 资源
调用命令在app/Http/Resources 文件夹下生成resource文件单个资源类(理解成处理一维数组)php artisan make:resource UserResource #单个资源类,继承自 Illuminate\Http\Resources\Json\JsonResource资源类集合(理解成处理多维数组)php artisan make:resource UserCollection #资源类集合,继承自 Illuminate\Http\Res..
2020-06-12 14:55:35
792
原创 laravel 访问器 & 修改器
访问器作用:在模型中定义某字段的获取形式。如, /** * 获取用户的名字。 * * @param string $value * @return string */ public function getFirstNameAttribute($value) { return ucfirst($value); }此时,通过模型实例就可转化first_name字段为首字母大写形式,$user = App\U.
2020-06-11 10:29:47
445
原创 laravel with方法应用
应用场景:一对多的关联关系中。作用:是为了避免N+1次的查询数据库, 从而提升查询的性能;分类model<?phpnamespace App\Models;use Illuminate\Database\Eloquent\Model;class Category extends Model{ /** * 分类下面的商品 * @return \Illuminate\Database\Eloquent\Relations\HasMany */..
2020-06-10 10:53:54
16993
2
原创 laravel 作用域应用
分类为:分为全局作用域,和本地作用域。作用域作用:给模型的查询都添加上约束。全局作用域继承Illuminate\Database\Eloquent\Scope 接口的类,并实现 apply 方法。 根据需求,在 apply 加入查询的 where 约束:<?phpnamespace App\Scopes;use Illuminate\Database\Eloquent\Scope;use Illuminate\Database\Eloquent\Model;use Illum..
2020-06-09 14:55:15
554
原创 laravel中观察者应用
应用场景:使用观察者Observer,在模型中监听CURD事件,观察者类里的方法名应该反映 Eloquent 想监听的事件。 每个方法接受 model 作为唯一参数。使用artisan命令生成UserObserver类php artisan make:observer UserObserver --model=User<?phpnamespace App\Observers;use App\User;class UserObserver{ /** * H.
2020-06-09 14:07:04
370
原创 mysql锁(行锁,表锁,页面锁)
MySQL常用存储引擎的锁机制MyISAM和MEMORY : 表级锁(table-level locking)BDB采用页面锁(page-level locking)或表级锁:页面锁InnoDB:表级锁,默认为行级锁mysql有三种锁:行锁,表锁,页面锁。三种锁的对比:表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。页面锁:开销和加锁时间界于表锁和行锁之间;会出现死..
2020-06-08 10:43:20
2913
原创 laravel 服务容器 与 服务提供器
【服务容器】管理类的依赖和执行依赖注入。原理:1.服务容器绑定操作都是在 服务提供器 中注册。2.类的依赖项通过构造函数,或者某些情况下通过「setter」方法「注入」到类中。解析实例:1.通过 make 方法将容器中的类实例解析出来,参数是类或接口的名称:$api = $this->app->make('HelpSpot\API');2.处于不能访问 $app 变量的位置时,可以使用全局的辅助函数 resolve:$api = resolve('HelpSpo..
2020-06-04 11:55:15
326
原创 laravel 安装
前提:环境已安装好composer 执行命令 composer create-project --prefer-dist laravel/laravel blogcd blogcomposer installcp .env.example .env生成应用密钥php artisan key:generate设置读写权限 storage 目录和 bootstrap/cachechmod 0777 storage -Rchmod 0777 bootstrap/cache -R此时.
2020-06-03 15:04:07
318
原创 laravel 知识点
速查表https://learnku.com/docs/laravel-cheatsheet/6.0使用vscode开发laravel所需安装插件PHP Intelephense: 注意这个并不同于PHP IntelliSense ,后者以及PHP Extension Pack会导致vscode的代码提示加载缓慢,具体可查看该issuePHP Snippets from PHPStormLaravel 5 Snippetslaravel-bladeLaravel Blade Snippe..
2020-06-02 16:08:00
436
原创 【shell】练习- select
#!/bin/bash# select command exampleselect iterm in apple xiaomi huawei oneplus sansam vovodo echo "你选择了$iterm"done
2020-06-02 15:59:11
237
原创 【shell】练习- while
#!/bin/bash#echo "总共有 $# 个参数"#while [ "$1" != "" ];do# echo -n "剩下 $# 个参数"# echo ", 移除参数:$1"# shift#donewhile true ;do read -p "输入数字,猜猜大了还是小了: " num echo $num | grep -q '[^0-9]' ns=$? if [ "0" == $ns ];then echo "请输入数字.".
2020-06-02 15:58:13
370
1
原创 【shell】练习- 菜单选择 - select - case
#!/bin/sh# select && case in this scriptecho "请选择你使用的操作系统"select os in MacOS Linux Windows Unixdo case $os in Linux | Unix ) echo "使用的是高级操作系统哦" ;; Windows ) echo "使用的是微软的操作系统" ;; MacOS ) .
2020-05-29 09:47:46
414
原创 【shell】练习- 判断 - 正则
#!/bin/bash# it's a intvalwhile true ;doread -p "请输入 > " numif [ -z "$num" ];then echo "没有输入.."elif [[ "$num" =~ [0-9]+$ ]];then echo "数字"else echo "字符" fidone
2020-05-29 09:46:50
280
原创 【shell】练习- read from file
#!/bin/bash# read from file examplefilename=$1if [ $filename != "" ];then while read fileline do echo $fileline done <$filename else echo "运行脚本时,请带文件参数." fi
2020-05-29 09:45:51
418
原创 【shell】练习- read
#!/bin/bashecho -n "请输入姓名:"read nameecho "Hi~,你好~ ,$name"
2020-05-29 09:43:52
219
原创 【shell】练习- 脚本参数
#!/bin/sh# first script of shell# practise paramsecho '脚本'$0echo '接收到参数个数:'$#echo '所有的参数:'echo $@j=0for i in "$@";do echo '$'$j'==>'$i ((j++))done
2020-05-29 09:43:18
124
原创 【shell】练习- 双中括号-规则匹配
#!/bin/bash# 注意,双中括号是可以规则匹配 ,而单中括号是 test的简写read -p "please input the number[0~9]: " numif [[ $num =~ [0-9]+ ]] ;then echo "show your number : " $numelse echo "please input the number"fi
2020-05-29 09:42:13
678
原创 【shell】练习- if 判断
#!/bin/shread -p "判断文件存不存在(输入文件绝对路径): " fileif test -f $file ;then echo it\'s exsitelse echo emptyfi
2020-05-29 09:39:40
215
原创 【shell】练习- 三种函数定义
#!/bin/sh# function example# 1 definefunction fun(){ echo "第一种定义函数的方法." echo "获取函数的参数用\$1 ,第一参数 :"$1}# 调用fun 000sleep 2echo "==================== 我是分割线 =================="sleep 1echo "==================== 我是分割线 ==================".
2020-05-29 09:39:01
175
原创 【shell】练习- case
#!/bin/bash# case exampleOS=$(uname -s)case "$OS" in FreeBSD) echo "This is FreeBSD" ;; Darwin) echo "This is Mac OSX" ;; AIX) echo "This is AIX" ;; Minix) echo "This is Minix" ;; Linux) echo "This is Linux" ;; *) echo "Failed to identify.
2020-05-29 09:38:02
193
原创 【shell】练习脚本-数组
#!/bin/sh# array example# 严格模式,变量未定义会报错,shell默认不会set -u# 调试#set -xarray=(1 3 5 6 7 9 0 90 33 232)echo "第一个元素,索引为0开始 : "${array[0]}echo "所有的元素.用索引\${array[@]} 或是 \${array[*]} :" ${array[@]}echo "总共有${#array[@]}个元素"sleep 2echo "========.
2020-05-29 09:36:42
252
原创 shell 基本知识总结
#查看进程pid对应的程序ll /proc/pid_number【shell命令】echo 命令 -n 取消末尾的回车符 -e 解释引号(双引号和单引号)里面的特殊字符(比如换行符\n)echo rm * 只会打印要被删除的文件type 命令作用:判断命令的来源(外部,内置),如:type ls-t 参数,可以返回一个命令的类型:别名(alias),关键词(keyword),函数(function),内置命令(builtin)和文件(file)。模式匹配[^abc]或[!.
2020-05-23 17:49:54
695
原创 关于redis一些知识点(主从,哨兵,集群)
redis主从配置复制两个redis配置文件(启动两个redis,只需要一份redis程序,两个不同的redis配置文件即可)mkdir redis-master-slavecp path/to/redis/conf/redis.conf path/to/redis-master-slave master.confcp path/to/redis/conf/redis.conf path/to/redis-master-slave slave.conf修改配置## master.confp.
2020-05-13 15:26:18
163
原创 反射机制
//根据一个对象,知道它所属的类,拥有哪些方法,属性,注释等class User{ public $age = 11; /** * 获取所有用户数据 */ public function getUsers(){ $users = []; for($i=0;$i<=20;$i++){ ...
2020-03-25 09:57:54
179
转载 nginx 知识点
Nginx能做什么——正向代理代理的客户端,向远方服务器请求;——反向代理代理的远方服务器,响应客户端;——负载均衡来自客户端的请求分发给后台服务器,负载均衡配置一般都需要同时配置反向代理,通过反向代理跳转到负载均衡。 支持自带3种负载均衡策略:轮询(默认),ip_hash ,(weight)权重。 2种常用的第三方策略: fair:按后端服务器的响应时间来分配请求...
2020-01-19 17:51:37
169
原创 linux,lnmp5环境安装tp5
git clone https://github.com/top-think/think tp5cd tp5 && checkout mastergit clone https://github.com/top-think/framework thinkphpcd thinkphp && checkout master此时正常情况下可访问。若访问不了,先...
2020-01-10 14:49:08
415
原创 总结-Linux 文件隐藏属性
Linux 下的文件还有一些隐藏属性,必须使用 lsattr 来显示,默认情况下,文件的隐藏属性都是没有 设置的(ext 文件系统默认拥有 e 属性)。 命令:lsattr [-a|d|R] 目录|文件 a显示所有的隐形属性,d显示目录,R递归显示lsattr -a test----i----------- test/.---------------- test/..--------...
2020-01-09 08:12:05
1835
原创 自动化测试selenium (二)
使用Python标准库unittest单元测试框架的一个扩展文件来生成HTML文件:HTMLTestRunner。下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html适配python3需修改如下几行代码,修改完成如附件所示:94行, import StringIO539行,self.outputBuffer = StringI...
2020-01-04 15:30:55
202
原创 自动化测试selenium (一)
1.pip安装 selenium2.下载浏览器驱动火狐:geckodriver.exe https://pan.baidu.com/s/1GPXYBLNOW7PUbpPrCy0_YA谷歌:https://npm.taobao.org/mirrors/chromedriver/注:火狐是selenium默认的浏览器3.下载好的驱动(geckodriver.exe )放于浏览器的安装目...
2020-01-04 15:22:28
292
原创 flex 弹性布局
Flexible Box意为”弹性布局”。Flex布局的元素,称为Flex容器(flex container),简称”容器”。它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称”项目”。.box{ display: flex; || display: inline-flex; display: -webkit-flex; /* Safari */}...
2019-12-16 11:34:34
164
原创 Vue+Vant+ES6+Node.js+Koa+MongoDB
项目代码:https://github.com/xiecheng328/shop.gitnpmjs包管理:https://www.npmjs.com/1.安装nodehttp://nodejs.cn/查看版本 : node -v安装vue-cli : npm install -g @vue/cli查看版本 : vue -V创建项目:vue create shop 或 vue...
2019-12-09 11:11:01
646
原创 non-fast-forward
问题前提:在github上新建project后,提交本地代码到远程仓库时,报以下错误: ! [rejected] master -> master (non-fast-forward)error: failed to push some refs to 'https://github.com/sssss/shop.git'hint: Updates were reje...
2019-11-29 17:34:16
426
原创 linux 文件权限和属性
文件隐藏属性:Linux 下的文件还有一些隐藏属性,必须使用 lsattr 来显示,默认情况下,文件的隐藏属性都是没有设置的(ext 文件系统默认拥有 e 属性,centos7以下版本默认文件系统是ext4,或3)。 命令:chattr(超级用户可用) 描述:文件系统属性 用法:chattr [+-=] [选项] 文件或目录 i:如果对文件设置 i 属性,那么不允许对文件进行删...
2019-11-20 14:16:12
440
原创 yield 关键词,生成器
//a-z字母function getAZ(){ $string = ''; for($x = ord('a'); $x <= ord('z'); $x++){ if($x <= rand(ord('a'),ord('z'))) { $string .= chr($x); } } retur...
2019-11-19 10:30:39
504
转载 前端,立方展示图
<style>body {background-color:whitesmoke;} // 修改背景颜色为半透明 /*最外层容器样式*/ .wrap { width: 100px; height: 100px; margin: 150px; ...
2019-10-10 13:52:12
390
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人