分类目录归档:Posts

PHP 里实现『是否由某个字符串开头』最快的方式

最近在做开源项目 php-m3u8 的时候,为了提高解析 m3u8 文件内容的速度,需要实现『字符串是否是另外某个字符串的开头』的需求。不过在 PHP 里实现这个需求可以实现的方法实在是太多了,所以我这里做了一个测试,列出各种实现方式的速度数据,以供参考。

继续阅读

在 Swoole 上运行 Symfony

Swoole 的官方网站定义其为『PHP的异步、并行、高性能网络通信引擎』,而对于类似 Symfony 以及 laravel 等每次请求都需要初始化大量代码的巨型框架来说,swoole 可以让初始化框架代码的过程限定在启动服务器时,而非每次请求都初始化,从而极大提升框架的运行效能。关于 swoole 以及类似的 ReactPHP 库让框架运行效率提升多少倍的话题,网上已经有太多,这里不多说。本篇只说目前网上讨论还比较少的话题:如何将 Symfony 跑在 Swoole 上。

继续阅读

又不一样的 Symfony —— SF4 展望

作为一个 Symfony 框架的老用户,symfony(注意那个年代 s 还是小写的) 诞生于 PHP <5.2 时代,跟 PHP 5.3 时代的 Symfony2 相比简直天壤之别。而最近 Symfony3 的发布让我发现,似乎改动也不是很大,心想该不是 Symfony 也学 Chrome 那样加版本号了吧?这几天 Symfony 开发组老大又开始说 Symfony4 要发布的事情,但内容倒不至于让我太失望,的确变化也不小。下面就来说说老大哥提到了 SF4 到底有哪些变化。

继续阅读

数据视图双向绑定(jQuery 实现)

最近在做一个购物车相关的项目,前端开发的需求无非就是点货物数量两边的『加号』和『减号』,或者直接修改购物车数量里的数字(文本框),可以实时改变购物车总金额数量的显示,以及加减号可点状态的变化(到数量 1 就不能再点减号,到库存最大数就不能再点加号……)。当然,这里面还涉及到很多复杂的逻辑,比如购物车里删除单品,跨境商品和普通商品必须分开结账等……

继续阅读