标签归档php

php

企鹅不是鸟——类继承的误解

Chris Yue No Comments

这个标题估计有点常识的看了都想打人,但对于学过面向对象编程的应该都知道是什么意思。这个问题所反映的是面向对象 5 大原则之一的 Liskov 替换原则(LSP),估计大家对 LSP 都能说上一两句。除了『企鹅不是鸟』,熟悉的还有『正方形不是矩形』、『圆不是椭圆』(数学老师哭晕在厕所……)。说归说,实际做不做得到还真不一定,起码我还是有自知之明的,很长一段时间都并没有在意。

当 PECL 无法正常连接扩展包服务器时应该如何安装 PHP 扩展?

Chris Yue No Comments

2018-05-24 补充:原标题为『现在还能用 PECL 安装 PHP Redis 扩展吗?』,但也就隔了一天,pecl/redis 又出现在了 pecl list-all 列表里,所以后来将标题改了,但依然保留原文,算拿 phpredis 做例子吧。

2018-05-26 再补充:话说 PECL 是在逗我们呢,又是只隔了一天,证书又有问题,所有跟 ssh://pecl.php.net 的链接都失败(通过给 PECL 命令添加 -vvv 参数可获取详细线索)

以前习惯了 apt 或者 Homebrew 直接使用包管理工具安装 PHP Redis 扩展,不过后来 Homebrew 有了重大更新,所有的 PHP 公式都默认不提供了。不过这么做也不是没道理,既然你 PHP 已经有了安装扩展的工具 PECL,干嘛我 Homebrew 还要多此一举再给你提供扩展的公式呢?

Symfony 4.1 VarDumper —— var_dump 调试流 PHPer 的福音

Chris Yue 2 comments

虽然说有了 XDebug 加 IDE 可以让 PHP 的调试也可以像其他语言一样,但直接在代码里面 var_dump 的做法还是深入人心,毕竟不用花时间做任何配置就可以使用,而且立马见效。

但自带的 var_dump 的『颜值』的确是有点太寒酸…… 虽然 XDebug 对原生 var_dump 输出样式做了一些小优化,但依然就是 0 分和 10 分的区别而已。

又被直觉骗了——记一次静态变量在对象方法里的作用域测试

Chris Yue 2 comments

我感觉现代的代码似乎用 static variable 越来越少了,无论是 PHP 别的语言,但我觉得,如果你清楚了 static variable 的萌点,还是挺好用的。

细说 PHP 7.2 子类覆盖方法省略参数类型功能以及 Liskov 替换原则

Chris Yue No Comments

PHP 7.2 出来也有段时间了,关于新版本有什么新改进,只要你关心 PHP 的发展,应该都看过。这里只细说一个可能会有误解的新功能。

PHP strrpos 第三个参数为负数时到底是什么意思

Chris Yue No Comments

之前一篇『PHP 是否由某字符串开头』的文章里有提到 strrpos 这个函数,并且此函数性能相当不错。但这里我想对 strrpos 字符串做一些更多的说明,因为我感觉官方文档的描述不太清楚,可能会误导新手。

优雅得使用 Vim + Ctags

Chris Yue 2 comments

这年头估计像我这种用 Vim 的老用户已经不多了,不过就我这个老头子来说,新时代依然没有一款我用的比 Vim 更顺手的编辑器。

而 Vim 最烦人,也是最好玩儿得地方,就是几乎什么功能都得自己折腾。Vim 的代码跳转功能我已经折腾了好几年了,羡慕那些默认就自带超好用的代码定义跳转自动补全功能的 IDE。可惜,一入 Vim 门深似海,我也不想换,不过就生成代码定义(专业术语叫 tags),我觉得应该是折腾到头了,是时候总结我的心路历程了。

让 Ctags 支持 PHP Traits

Chris Yue No Comments

Ctags 目前应该是有三个版本,普通版本,Exuberant 版本,以及 Universal 版本。

目前普通版本应该用得都比较少了,没人维护,不过 Mac 默认自带的就是这个版本。

PHP 从固定格式字符串里解析数据最快的方式

Chris Yue No Comments

为了提升 PHP M3u8 的解析速度,我在上一篇博客里评选出了 PHP 世界里判断是否由某字符串开头最快的冠军,这一次又要举行另外一个比赛了:从某个固定格式的字符串里解析出想要的数据最快的函数。

用 YOURLS 创建自己的短链接服务

Chris Yue No Comments

最近据产品和运营反映,他们一直使用的域名缩短服务商 t.cn 已经不能正常工作了,让我帮忙处理。使用第三方的服务,特别是免费的服务本来就有风险,干脆就自己做一个吧,也没那么复杂。

2018年十二月
« 10月  
 12
3456789
10111213141516
17181920212223
24252627282930
31