实战开发单元测试,Welcome to PHPUnit!

2020-05-15
阅读 11 分钟
5k
一、测试入门 1.1 安装xdebug,查看代码测试覆盖率 安装xdebug:[链接] {代码...} 1.2 PHPUnit 命令 1.创建测试类 {代码...} 2.使用--filter参数指定单元测试执行的函数 vendor\bin\phpunit --filter test_oper /** @test **/ 方法明前就不用加test了。 php artisan make:test ArticleTest --unit 1.3 对于每个测试的运...

Jquery、Bootstrap

2020-04-01
阅读 5 分钟
2.5k
jQuery 语法jQuery 语法是为 HTML 元素的选取编制的,可以对元素执行某些操作。基础语法是:$(selector).action()美元符号定义: jQuery选择符(selector)“查询”和“查找” HTML 元素jQuery 的 action() 执行对元素的操作示例$(this).hide() - 隐藏当前元素$("p").hide() - 隐藏所有段落$(".test").hide() - 隐藏所有 cla...

ElasticSearch概论

2020-03-15
阅读 3 分钟
2k
Elasticsearch,基于lucene,隐藏复杂性,提供简单易用的restful api接口、java api接口(还有其他语言的api接口)。

Laravel生命周期

2019-12-31
阅读 4 分钟
5.4k
人类社会的分工和协作从来都没有停止进化和演变,作为人类的智慧的产物同样随着人类思想的进步和创造力的提升一步步发生着变化,人们把现实中的变化,逐步映射到了计算机系统中。

PHP细节:foreach、(汉子)字符串反转、isset,empty用法区别以及0、‘’、null之间关系

2019-03-08
阅读 5 分钟
4k
一、foreach 第一题: {代码...} $i==1条件很成立,死循环 {代码...} 由于条件$i==1条件不成立,所以for循环不执行 第二题: {代码...} var_dump($obj->j); //nullvar_dump(isset($obj->j));//由于$j没有赋值,为空null,所以返回false//var_dump($obj->properties);var_dump(isset($obj->name));//私有或者...

Docker搭建Rancher、rancher应用web部署

2019-03-08
阅读 2 分钟
9.9k
首先rancher需要安装了docker的linux环境,我的CentOS系统版本为:CentOS Linux release 7.4.1708 (Core)

Dockerfile构建PHP开发镜像:Alpine+Nginx+PHP7+Supervisor+Crontab+Laravel

2019-03-07
阅读 6 分钟
12.6k
一、配置目录结构 1.1 crontabs {代码...} Tips:一般在生产环境都是负载均衡,定时任务是单独在一个容器执行,故此是注释掉的,需要单独在定时任务容器中打开即可。 2.1 nginx与php配置文件 Tips:由于php配置文件是监听的sock,默认情况下监听端口 9000。PHP-FPM使用Unix套接字,这避免了TCP的开销。 3.1 php 二、Docke...

Dockerfile、Docker-Compose基本命令与介绍

2019-01-16
阅读 8 分钟
11.9k
每条RUN指令将在当前镜像基础上执行指定命令,并提交为新的镜像,后续的RUN都在之前RUN提交后的镜像为基础,镜像是分层的,可以通过一个镜像的任何一个历史提交点来创建,类似源码的 版本控制 。

Docker简介、常用命令与实践(二)

2018-11-26
阅读 4 分钟
2.1k
Docker Hub 上有大量的高质量的镜像可以用,这里我们就说一下怎么获取这些镜像。从 Docker 镜像仓库获取镜像的命令是 docker pull。其命令格式为:

Docker简介、常用命令与实践(一)

2018-09-09
阅读 4 分钟
3.4k
Docker的思想来自于集装箱。集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。可是这个箱子为什...

Laravel之collection

2018-08-05
阅读 3 分钟
3.2k
Laravel 的 Collection 类其实有很多非常实用的方法,对于我们在优化循环的时候非常的有用,我们的目标就是:不再写 foreach 循环 !

PhpStorm常用教程

2018-07-21
阅读 4 分钟
5k
一、PhpStorm 界面简化 Ctrl + Shift + A 查找快捷键 ALT+1 : 关闭或打开左边项目 二、PhpStorm 几个最重要的快捷键 快速查找文件:CTRL+SHIFT+N ==> Shift + F 显示文件有哪些方法:CTRL+F12 ==> Shift + F + M 最近打开文件:CTRL+E 查找方法名或类名:==> Shift + M 三、 PSR 自动加载支持:命名空间 四、...

Laravel之Service Container的工作机制、理解Service Provider和Middleware

2018-07-17
阅读 4 分钟
4.4k
依赖注入:不需要通过new关键字去实例化对象,laravel用了PHP的一个机制:反射机制。一层一层向上找,然后自动实例化对象,而不需要自己去手动去new类。深入浅出理解依赖注入

Laravel5.5之事件监听、任务调度、队列

2018-07-17
阅读 4 分钟
8.5k
一、事件监听 流程: 1.1 创建event {代码...} LoginController.php {代码...} 1.2 创建listener 1.2.1 方式一:手动创建 {代码...} 1.2.2 方式二:推荐如下方式:自动生成事件和监听 {代码...} 生成事件 & 监听器:php artisan event:generate 二、Laravel 的任务调度(计划任务)功能 Task Scheduling 2.1 call方...

Workerman之GatewayWorker框架 - 在线客服,实时通信

2018-07-13
阅读 5 分钟
7.2k
一、绑定用户id实现一对一客服聊天 相关文档:LibGateway类提供的接口 JS: {代码...} {代码...} Test: 二、数据持久化与优化两个聊天对象的唯一性 {代码...} {代码...} 三、发图片、QQ表情、聊天列表、所有页面websocket,消息推送、实时更新 相关代码:[链接] 参考教程:workerman实战之PHP在线客服

Laravel基础二之Migrations和验证

2018-07-10
阅读 4 分钟
2.8k
新的迁移文件会被放置在 database/migrations 目录中。每个迁移文件的名称都包含了一个时间戳,以便让 Laravel 确认迁移的顺序。    --table 和 --create 选项可用来指定数据表的名称,或是该迁移被执行时是否将创建的新数据表。

Laravel之Eloquent ORM

2018-07-09
阅读 5 分钟
3k
Active Record 是一种数据访问设计模式,它可以帮助你实现数据对象Object到关系数据库的映射。应用Active Record时,每一个类的实例对象唯一对应一个数据库表的一行(一对一关系)。你只需继承一个abstract Active Record 类就可以使用该设计模式访问数据库,其最大的好处是使用非常简单

Postman随记

2018-07-04
阅读 2 分钟
2k
一、HTTP请求/响应的构成 1.1 起始行 1.2 headers keep-alive:告诉服务器客户端需要重用tcp/ip协信 1.3 body 1.4 HTTP响应构成:状态行 二、增加断言 Postman的Test功能 raw:原始数据潜规则:Content-Type:application/json postman中 form-data、x-www-form-urlencoded、raw、binary的区别 三、变量 四、collection 循...

Laravel基础

2018-06-02
阅读 8 分钟
2.1k
一、Laravel核心目录文件介绍 app:程序的核心代码和业务逻辑代码,其中的Http目录是我们业务逻辑的存放点 bootstrap:包含框架启动的和自动加载文件 config:包含所有程序中的配置文件,比如:cache.php(缓存)database.php(数据库)、queue.php(队列)等 database:包括数据库填充和迁移文件 public:程序入口和静...

MySQL深入浅出(二):索引的设计原则、SQL优化、MySQL日志、备份与恢复

2018-05-09
阅读 4 分钟
3.7k
查看字段散列度/离散度:select count(distinct col_name),... from table_name,如性别的离散度比较低不适合做索引

MySQL深入浅出(一):SQL基础、数据类型、运算符

2018-05-09
阅读 5 分钟
2.9k
一、SQL基础     安装MySQL时系统自动创建的数据库,其各自功能如下: information_schemm:主要存储了系统中的一些数库对象信息,比如用户表信息列信息。权限信息,字符集信息、分区信息等 cluster存储了系统的集群信息 mysql存储了系统的用户权限信息 test系统自动创建的测试数摇库,任何用户都可以使用 1.1 SQL分类 D...

Swoole入门到实战(三):图文直播和聊天室模块、系统监控和性能优化模块、负载均衡 - 完结篇

2018-04-30
阅读 4 分钟
8.6k
上一篇:Swoole入门到实战(二):进程,内存和协程、Swoole完美支持ThinkPHP5、分发Task异步任务机制实现 一、直播、聊天 1.1 图文直播(Redis)     在线用户处理:    方案(一):[链接](推荐)    方案(二)redis方案,无序集合Set    方案(三)swoole-table {代码...} {代码...} {代码...} {代码...}     Tips...

Swoole入门到实战(二):进程,内存和协程、Swoole完美支持ThinkPHP5、分发Task异步任务机制实现

2018-04-28
阅读 12 分钟
9.4k
以树状图显示进程间的关系:pstree -p 进程id    启动成功后会创建worker_num+2个进程。Master进程+Manager进程+serv->worker_num个Worker进程

Swoole入门到实战(一):PHP7&Swoole源码安装、玩转网络通信引擎、异步非堵塞IO场景

2018-04-24
阅读 13 分钟
13.2k
source FileName    作用:在当前bash环境下读取并执行FileName中的命令。    用于重新执行刚修改的初始化文档,如 .bash_profile 和 .profile 等等    注:该命令通常用命令“.”来替代    如:source /etc/profile 与 . /etc/profile是等效的

PHP标准库SPL学习之数据结构、常用迭代器、基础接口

2018-04-19
阅读 7 分钟
4.3k
一、SPL简介      什么是SPL PHP的标准库SPL:Standard PHP Library      SPL: 用于解决常见普遍问题的一组接口与类的集合      Common Problem: 数学建模/数据结构 解决数据怎么存储的问题 元素遍历 数据怎么查看问题 常用方法的统一调用 通用方法(数组、集合的大小) 自定义遍历 类定义的自动装载 让PHP程序适应大型...

PHP面向对象编程:面向对象概念、基本实践、高级实战、PHP面向对象特殊实践

2018-04-17
阅读 7 分钟
18.5k
一、面向对象的概念 1.1 什么是面向对象(object oriented)      世间万物皆对象,抽象的也是对象,一切可见或不可见都是对象 1.2 对象的基本组成      对象包含两个部分: 对象的组成元素 是对象的数据模型,用于描述对象的数据又称为对象的属性,或者对象的成员变量 对象的行为 是对象的行为模型,用于描述对象能够做什...

那些年,PHPer遇到的错误与异常:下篇之异常

2018-04-14
阅读 9 分钟
3.1k
上一篇:那些年,PHPer遇到的错误与异常:上篇之错误 一、PHP中的异常简介及使用 1.1 异常执行流程 {代码...}      未被捕获的异常会报致命错误:Fatal error:Uncaught exception..... 1.2 PHP异常特点 PHP不会主动捕获异常,需要程序中主动抛出 (throw)异常,才能捕获。 throw会自动向上抛出 throw之后的语句不会执行...

那些年,PHPer遇到的错误与异常:上篇之错误

2018-04-09
阅读 5 分钟
3k
一、PHP中错误模块简介      PHP错误与异常是两个不同的概念 1.1 错误类型 语法错误,如少分号 环境错误,如权限、打开文件失败、数据库服务器不可用 逻辑错误,如a==b 写成了a=b 1.2 PHP常见错误级别 Depracated最低级别的错误 (deprecated不建议,不推荐,如老版本的正则ereg()函数换掉即可,并不影响PHP的执行) Not...

大话PHP设计模式:类自动载入、PSR-0规范、链式操作、11种面向对象设计模式实现和使用、OOP的基本原则和自动加载配置

2018-04-07
阅读 13 分钟
3.4k
 类自动载入,尽管 __autoload() 函数也能自动加载类和接口,但更建议使用 spl_autoload_register('函数名') 函数。 spl_autoload_register('函数名') 提供了一种更加灵活的方式来实现类的自动加载(同一个应用中,可以支持任意数量的加载器,比如第三方库中的)。因此,不再建议使用 __autoload() 函数,在以后的版本中...

程序员内功修炼之学好算法和数据结构(一)排序基础、选择排序、插入排序、希尔排序

2018-03-22
阅读 7 分钟
4.3k
一、排序基础(重要) 1.1 为什么要学习O(n^2)的排序算法? 编码简单,易于实现,是一些简单情景的首选。 在一些特殊情况下,简单的排序算法更有效。 简单的排序算法思想衍生出复杂的排序算法,在这个过程中可以加深理解从而想出更复杂的解决方法,体现一种思考的渐进过程。 作为子过程,改进更复杂的排序算法(如插入排...