如何删除mac自带的php 作者: 灯小笼 时间: 2020-05-01 分类: 工具 评论 mac升级到10.15.4后,系统自带装了php7.3,但是有个问题,竟然不能装swoole插件,于是想删掉系统的php。 ```bash $ which php /usr/bin/php $ cd /usr/bin/ $ sudo rm -rf php php-config phpdoc phpize rm: php: Read-only file system rm: php-config: Read-only file system rm: phpize: Read-only file system ``` 出现了Read-only file system的提示,用sudo都删不掉。 - 阅读剩余部分 -
完全随机发红包的php算法实现 作者: 灯小笼 时间: 2018-10-18 分类: 开发 评论 题目:有金额M元,给N个人发红包,最低0.01元,完全随机,不设上限,全部金额都需发放出去。 思路:可以借鉴发牌的算法,将金额以最小发放单位0.01元换算,等价于`M*100`张牌。那么我们要做的是,从`M*100`张牌里边随机抽出`N-1`张牌,计算这`N-1`张牌中间隔出来的`N`个区间的差值即可。 - 阅读剩余部分 -
composer常用高级技巧 作者: 灯小笼 时间: 2018-08-29 分类: 开发 评论 [Composer](https://getcomposer.org/)作为一个常用的php包管理工具,已经成为PHP项目包管理事实上的标准了。大部分开源的php项目,都可以从里边找到composer.json的身影。基本的知识本文就不介绍了,而是挑选一些日常开发中遇到的比较棘手又常见的几个问题予以记录。如:使用镜像、使用私库、如何使用非http项目、如何修改版本号等等。 ## 使用镜像 使用composer的第一要素就是配置中国镜像,否则,你将一直抱怨这个产品根本没法使用,你对`composer`的影响就会一直处于停摆状态。 一般我们使用作为最经典的配置了。 ```bash composer config -g repo.packagist composer https://packagist.phpcomposer.com ``` - 阅读剩余部分 -
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做单元测试。 - 阅读剩余部分 -
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) - 阅读剩余部分 -