phpstorm中使用phpunit进行单元测试 作者: 灯小笼 时间: 2018-07-23 分类: 开发 评论 PHPUnit 是一个用PHP编程语言开发的开源软件,是一个单元测试框架。PHPUnit由Sebastian Bergmann创建,源于Kent Beck的SUnit,是xUnit家族的框架之一。 单元测试是对单独的代码对象进行测试的过程,比如对函数、类、方法进行测试。单元测试可以使用任意一段已经写好的测试代码,也可以使用一些已经存在的测试框架,比如JUnit、PHPUnit或者Cantata++,单元测试框架提供了一系列共同、有用的功能来帮助人们编写自动化的检测单元,例如检查一个实际的值是否符合我们期望的值的断言。单元测试框架经常会包含每个测试的报告,以及给出你已经覆盖到的代码覆盖率。 总之一句话,使用 phpunit 进行自动测试,会使你的代码更健壮,减少后期维护的成本,也是一种比较标准的规范,现如今流行的PHP框架都带了单元测试,如Laraval,Symfony,Yii2等,单元测试已经成了标配。 另外,单元测试用例是通过命令操控测试脚本的,而不是通过浏览器访问URL的。 这里以phpstorm为例,说明如何利用phpunit做单元测试。 - 阅读剩余部分 -
打造完美的cygwin环境 作者: 灯小笼 时间: 2018-07-23 分类: 工具 评论 用惯了linux,在windows里边操作,总感觉到处受阻,因此,需要有一款类似于linux的东东,让你在windows里边也能手指如飞,快速实现你的想法。cygwin就是这样的一款软件,稍微加以打磨,你就可以在windows里边手指如飞,能量满满。 https://cygwin.com/ - 阅读剩余部分 -
如何提升npm安装包的速度 作者: 灯小笼 时间: 2018-05-23 分类: 前端 评论 作为开发人员,日常的打包发版必不可少。作为前端人员的话,每次通过npm编译项目的时候,都得经过漫长的等待,才能守得云开月明。如果每天都需要经历这样的事情,你依然能够不为所动,只能说明,要么你很忙,要么,你真的很懒!!是时候对这样的局面做一些改动,加快打包编译发布的速度了。 - 阅读剩余部分 -
动态扩展vitualbox虚拟机的硬盘大小 作者: 灯小笼 时间: 2018-03-25 分类: 工具 评论 安装完virtualbox的虚拟机,一开始全部按默认设置的,往往还没有开始爽起来,就发现磁盘不够用了。怎么办?重装又得重新来过,而且太没有技术含量了。按照本文的流程,将帮助你化解这一个尴尬的境地,让virtualbox虚拟机的硬盘扩容一点都不麻烦。 - 阅读剩余部分 -
GIT常用高级命令 作者: 灯小笼 时间: 2018-03-10 分类: 工具 评论 经常用git,在实际操作中有一些较难但非常使用的命令,将在本文予以累积。分为比较、整理、易用性等章节。 ## 比较 ### 比较关键性不同 比较两次版本的不同,如果需要忽略空格和tab,可以加上-w参数 ```bash git diff -w -- ./foo/bar.php ``` - 阅读剩余部分 -
kvm自动给虚拟机分配IP 作者: 灯小笼 时间: 2017-12-07 分类: 工具 评论 kvm生成一台新机器后,并不能自动分配新的ip。本文介绍了基于php语言,结合libvirt一系列的工具,实现通过命令行对虚拟机进行克隆和自动ip分配的方案。 ## 前置条件 克隆来源的domain里边的文件已经被删除:/etc/udev/rules.d/70-persistent-net.rules。 - 阅读剩余部分 -
php压缩算法对比研究 作者: 灯小笼 时间: 2017-12-01 分类: 架构 评论 ## 概要 本文对比了php的各种压缩工具的解压缩速度,试图找出在性能和时间上更具有性价比的工具。具体包括: * [gzencode](http://php.net/manual/zh/function.gzencode.php)/[gzdecode](http://php.net/manual/zh/function.gzdecode.php) * [gzdeflate](http://php.net/manual/zh/function.gzdeflate.php)/[gzinflate](http://php.net/manual/zh/function.gzinflate.php) * [gzcompress](http://php.net/manual/zh/function.gzcompress.php)/[gzuncompress](http://php.net/manual/zh/function.gzuncompress.php) * fastlz_compress/fastlz_decompress * [lzf_compress](http://php.net/manual/zh/function.lzf-compress.php)/[lzf_decompress](http://php.net/manual/zh/function.lzf-decompress.php) - 阅读剩余部分 -
igbinary vs json序列化性能对比 作者: 灯小笼 时间: 2017-12-01 分类: 架构 评论 在进行系统优化的时候,发现系统使用了大量的缓存,而在写入缓存的时候,需要先对内容进行序列化,读取缓存的时候,则需要进行内容的反序列化,从而保证可以写入和读取任何类型的缓存。早期,缓存量不大的时候,我们一直使用json进行序列化和反序列化,随着整体服务从IDC的物理机迁移到混合云平台的虚拟机,单台机器的cpu从原来的8核、16核降低到2核,cpu上就显得非常吃紧了,经常能从满日志里边看到序列化和反序列化时的日志。因此,优化序列化性能成为我们系统优化的一个重要环节。 经过对几种序列化函数的对比,最终我们选定了igbinary可以作为其中比较优秀的一个方案。要正式转型之前,当然要通过一些压测进行有效对比,才能做到有据可循。 - 阅读剩余部分 -
公司内部web服务器获取不到外网用户真实ip的解决方案 作者: 灯小笼 时间: 2017-06-29 分类: 工具 评论 因为涉及到一些数据安全的问题,所以公司有些web项目是直接放在内网的。为了严格控制可以访问的用户,我们做了一套ip授权的机制。即,如果该ip没有被任何管理员登录过,那么用户在该ip就无法访问此项目。不过,最近这套机制,遇到了一些挑战。因为,通过我们nginx日志查看的时候,所有的客户端来源ip都只有一个——192.168.1.1,也就是我们的网关地址。很显然,不解决这个问题,我们的整套ip授权的机制就形同虚设了。 - 阅读剩余部分 -
前端降维术 作者: 灯小笼 时间: 2017-06-21 分类: 前端 评论 这里说的前端,指的是传统意义上的前端,即包括HTML、css、javascript三种技术手段的前端。“降维”,顾名思义,就是降低维度,使问题涉及的因素减少,变得更加容易解决,而且解决方案较为简单可靠。 在著名的刘慈欣的科幻小说《[三体](https://book.douban.com/subject/2567698/)》里,”降维攻击“就作为一种常见于宇宙高级文明攻击低级文明的手段。比如,生活在四维世界的人们,他们是用”降维攻击“对付三位世界的人们。虽然与此同时,他们自身也会降维,但是从四维降低到三维,他们依然是活着的;而三维世界的人们,则被无情地抛入二维世界,不可逆转地失去生命和一切。不过,到前端这一块技术领域,还不至于这么残酷,我们只是想通过降维的手段使问题简化。 - 阅读剩余部分 -