更好的PHP错误处理:常规错误处理介绍

本来这篇博文准备早点发布,没想到拖延症还是没有改善,但对于责任心很强的人类来说,这始终是个压力。写这个的时候还在灰机上,我想下飞机就可以释放一下了。

废话不多说,进入正题。本篇文章主要是为了向你介绍 PHP 都有哪些错误和处理方法:

错误类型

PHP 主要有两种错误:触发错误和异常。其中触发错误大概可以分为:编译错误、引擎错误和运行时错误,其中前两个是无法捕获的;异常都是可以捕获的,当没有尝试捕获时则会中断代码。

触发错误可以通过 error_get_last() 来进行获得,异常可以使用标准的 try...catch 语句来捕获。

Read on →

快速了解 Hacklang

最近某个不存在的社交网络 Facebook 发布了一个新的编程语言 hacklang(确实是hack的,hack 的 PHP)。目的是在 PHP 基础上增强安全和类型,增加了异步,让语言用起来更『体面』,运行起来更快。很多同学肯定会问,为啥非要弄个编程语言呢?PHP 不挺好的么,速度慢用点缓存啊,真不行写扩展啊。如果您这么想的,那 Facebook 的同学真是非死不可了。人家虽然是 PHP 网站,但那流量,国内有几家能把 PHP 用到那个份上?也就微博吧。

那先看看 hacklang 的发展历史吧:几年前 Facebook 宣布了一个项目,Hiphop PHP,目的是把 PHP 编译成 C++ 来提高运行速度;后来演变成了 PHP 的虚拟机,改名为 HHVM;由于在改进过程中,引入了不少新特性,干脆,一不做二不休直接弄成了一门编程语言,hacklang 也就算横空出世了。

Read on →

我的2013

一个新的起点能对上一个终点做个回顾,也是为了下一个起点有更多美好的故事做个铺垫。2013过去了,说今天必须要写篇文章看看过去做了什么,需要总结一下,可能会写不少,只是想记录下来,仅此而已。

2013算是我经历中一次重大的转折,有不少重要的事情:离职了做了4年的公司;和朋友开了新的公司;和陪自己7年的女人领证了。这一切都值得我去记住,都让我感受颇深。

Read on →

美国签证小经历

自有女神

5月底的时候,给自己放了几个月的假。本来准备7月15号左右去美帝看看,查了下机票太贵,申请美国签证也很繁琐,一度放弃了这个念头,另外也看了很多签证论坛,看人家有房有车有孩子有老婆都被拒了,觉得自己太没有底了。所以一直就搁置了。

6月一直在外面跑,去见了很多靠谱的人:90后的疯狂创业者 ghosTM55;准备去采访拍摄《改变这个世界的年轻人》的阿菜;还有SegmentFault联合创始人的高阳,还有很多好朋友,大家聊的一起很开心。在和他们聊天中了解到办理美国签证其实没有那么难,美国对旅游签证的审查也没有以前那么严格,大家都过的比较轻松。所以6月底回到上海,又开始了签证申请的流程。

我申请的B1/B2签证,资料填了一个晚上才填完,基本资料没什么非常复杂和要求严格的,最好DS-160能填的部分全填了,注意资料务必要真实。

Read on →

PHP的多版本环境管理

多版本的不同环境开发可以方便测试代码在不同语言版本的差异表现或者兼容性,Ruby有rbenv,Python有virtualenv,NodeJs有nvm,那PHP是不是应该也有,事实上到目前位置PHP都没有这种专门的多版本环境软件,但确实有一款可以用的phpenv

phpenv是基于rbenv扩展出来的PHP多版本管理软件,所以请注意如果一个目录既有ruby版本设置又有php版本设置肯定会冲突。但一般这种情况比较少,下面就来介绍下如何来使用它!

安装

1
2
3
git clone git://github.com/CHH/phpenv.git
cd phpenv
phpenv-install.sh

如果需要更新

1
UPDATE=yes phpenv-install.sh
Read on →

使用slate快捷控制窗口

我在开发和日常使用都会有一些快速控制窗口的需求,尤其是使用大屏幕,这种需求更多。比如将一个网页快速行程左右各占一半的两个网页,比如将屏幕缩小到1/4放在某个角度,比如全屏和居中,比如快速将应用移到下一个显示器。

之前用了一款软件sizeup来实现,但是这货用了一段时间偶尔会弹出purchse,而且自定义有限。最后在各种搜索求教下找到了slate

slate是一个免费开源软件,但是没有gui窗口进行具体的配置,必须通过配置文件来实现控制,配置文件放在个人目录的~/.slate位置,通过配置就可以很快做到很方便的快捷控制,所以最强大的地方也就在把玩配置。

Read on →

SSH穿越跳板机

公司为了安全起见设置了跳板机来保护登陆通道。运维有专业的线路,不用走跳板,开发就得苦逼了,每次都要很麻烦一连串命令才能上去,对线上的调试和监控效率影响很大。

最近研究了几种方案,找到一个还算靠谱的,有需要的童鞋可以借鉴下。(环境*unix下)

配置ssh config

前提条件:跳板机和本机已经做过公钥认证

编辑自己的~/.ssh/config

1
2
3
4
# 目标服务器IP,可使用通配符
Host 10.208.*
User 用户名
ProxyCommand ssh 用户名@跳板机 exec nc %h %p 2 > /dev/null

原理分析

通过ProxyCommand,可以在开启ssh之前执行一个命令打开代理隧道,这个命令”nc %h %p”意为在跳板机上使用nc(被誉为OPS的瑞士军刀)开启了远程隧道。

PHP的PSR规范中文版

FIG组织在制定跟PHP相关规范,简称PSR。目前已有4个代码规范,近期抽空翻译成了中文版。建议做PHP的同学都关注一下。

文档仓库地址:https://github.com/hfcorriez/fig-standards

PSR规范中文版

Read on →

用Gitlab来工作

Gitlab

虽然GitLab是一个从头到位模仿Github的家伙,但是我们确实有这样的需求,并且他还是开源的。相比Gtihub来说可以减少很多成本。Github本身是有企业版可以在公司环境搭建的,但是价钱不菲,看看Github Enterprise定价就知道了,最小的也要一年5000美金,对于小团队小公司是一笔不小的投入。有了Gitlab可以几乎不需投入就能轻松有一套内部的Git管理平台。

Read on →

我的2012

很久很久没有写了。2012的最后一天,也该写点什么了,就以此借口来逼自己写一篇博文来回想自己的2012。

我做了什么?

2012是我很乱的一年,因为很多原因,做了一些不知道该不该做的事情,比如:帮了不知道该不该帮的忙,反悔了不知道该不该跳的槽,写了一些不知道该不该写的代码。为什么都是不知道该不该呢?因为我确实纠结了。为什么会纠结?因为我缺点主观!为什么我缺点主观?因为我缺点坚决!为什么缺点坚决?因为我缺点自信!为什么缺点自信?因为自己学的还太少。既然如此,那么是不是该学习了呢?是的,所以今年我看了很多书,有小鱼(@sofish)推荐的一些,有朋友那里借的一些,也有Kindle的一些,也有自己买的一些。但大部分还没有看完,非常惭愧的是,乔老爷子的传记我只看了看前言。

2012也是我很大转变的一年,都哪里转变了?我丢掉了DELL的PC,用了苹果的MBP!我用了苹果的iPad!我丢掉了Android手机,用了苹果的iPhone!对,就是卖肾三件套,但我确实没卖肾,自从用上苹果反而肾更好了。为什么呢?苹果为了节省了很多工作效率,可以有更多的时间去享受生活。

2012也是我完成一个大心愿的一年,毕业后第一次买房子给爸妈,只要他们以后住的开心就够了。

Read on →