Becomin' Charles

算法 | LNMP | Flutter | Mac

Becomin' Charles

Web开发人员,经常要做的一个事情,就是将源代码上传到服务器。但是这是一个极其痛苦的过程,因为这个过程机械,重复,无技术含量,关键是因为Web应用往往没有调试环境,一般的调试方法,都是改了代码,然后马上刷新浏览器来看结果,所以上传代码变成了一个太过频繁的事情,以至于频繁到了让人厌倦的地步。

阅读全文 »

监控文件系统的变化,不是一个常见的需求,但是随着对PHP使用的深入,不可避免的会碰到这类问题。我所在的公司,在服务器端,使用PHP进程常驻内存,来完成一些任务,甚至伺服服务。我们知道,PHP作为服务器动态语言,是不需要编译的,但是代码的生命周期是仅限于一次请求的,一次请求结束,下次请求,就会重新加载代码,除非安装了Opcode Cache,但是如果PHP常驻进程,这种自动加载更新代码的能力就失去了。这时候,我们有一种弥补方案,就是使用inotify。

阅读全文 »

PHP里面最强大的工具,就是数组,它融合了多种数据结构的特点,数组、队列、栈、哈希表等等,而且容器可以兼容各种类型,任意嵌套,简直无所不能。围绕着数组,PHP原生支持了一些列的函数,使得数组在实际编程实践中,可以有更强的表达能力和更高的编程效率。但是这要求我们用PHP的方式去思考,尽量使用PHP原生的函数解决问题,而不是掌握了一个foreach就一招鲜吃遍天。

阅读全文 »

开发WordPress插件,总是免不了要存储一些数据的。这些数据一般有两种类型,配置信息或者数据本身。配置信息一般可以用来定制插件运行时的一些参数,属于插件的属性。对于配置信息的存储,一般都是用WordPress Option API。WordPress自己就存储了很多博客运行时的自定义参数,这个接口也可以用来给插件存储自己的配置信息,其数据结构通用程度相当高,主要就是键值对(key-value)的形式。使用API get_optionupdate_option即可实现读写。具体用法和注意事项,本文不再展开,查看相关文档即可,下文基本关注另一个方面,就是如何存储纯数据。

阅读全文 »

WordPress后台可以看到已安装插件的列表,其中会显示插件的名称(Plugin Name),简要描述(Dsecription),版本(Version),作者(Author),作者主页(Author URI),插件主页(Plugin URI),这些信息并非是存在数据库里的,而是写在了插件入口文件的头部,以注释的形式写在了插件页面中。这种形式,可以将WP系统和插件软件同步元数据信息的成本和复杂度降到最低。

阅读全文 »

使用 Yii 框架编程的时候,我们会很自然的使用 Model 来查询我们的 DB,并进行相应的操作,有些时候,我们因为性能隐患,而不会使用复杂的数据库关系如多对多关系,遇到此类情况,我们一般会在内存中分批查询数据,用程序遍历,主键关联组装数组,操作。

阅读全文 »

应用Yii框架已经有一段时间了,之前也分享了一些Yii框架的入门视频,撰写了一些源代码分析文章。随着使用的深入,越发被Yii框架折服,感叹原作者Qiang Xue对于面向对象编程,Web开发,以及PHP的深厚功力和应用能力。众所周知,像一切Web开发框架那样,Yii框架提供ORM功能,中文叫对象关系映射,能将关系型数据库的数据,映射成对象,从而提供了便捷的数据操作能力。

阅读全文 »

我现在研发的系统中,有很多报表是需要按月统计的,比如月底销售奖励,比如环比增长,都要用到本月、上月,指定月,指定月的上个月这种概念,为了便于存储、查询、计算、比较的方便,我们采用了整型201203这种格式来保存月份,然后就衍生了一系列时间计算的需求。

阅读全文 »