五月
17
2017

NSQ 是个好东西

NSQ 是个不错的东东,如果有朋友在考虑做队列相关的东西,不妨考虑一下使用这个。初看的时候,觉得看着头大,但是沉下心来了解一下的话,发现真的可以省不少的事情。尤其是当今软件开发,效率很重要,在本身就有大众的,流行的模块的情况下,如果自己动手开发,浪费时间不说,还会出现很多 BUG,到时候就真的进退维谷了:东西是自己弄出来了,不一定舍得换掉;不换,可是 BUG 让人心烦…… 不过今天发这篇文章的目的不是为了教学,只是为了单纯的记录一下,免得随着时间的推移,将来需要的时候,又不好找了。毕竟不是每个重要的东西,都是需要时时放在身边的,在需要的时候,能快速找到,就行了。 OK,以下是 NSQ 相关资料: Github 地址: https://github.com/nsqio/nsq 官方网站: http://nsq.io/
七月
19
2016

Windows 下安装 PHPUnit

写在前面 最近换了系统,以前搭建的一些环境没了,又得重新搭建。而在 windows 环境下重新搭建 PHPUnit 的时候,我居然又遇到问题了。 所以说,好记性不如烂笔头,我还是得把具体的操作方法记录在自己的 PHP 博客中。 安装方法 环境介绍 操作系统 windows 10 PHP版本 PHP 5.6 PHPUnit版本 PHPUnit 4.8.23 下载软件包 到 PHPUnit 官方网站下载软件包,我下载的软件包全名是:phpunit-4.8.23.phar。为了方便,这里将软件包直接重命名为 phpunit。 安装步骤 我的电脑 -> 属性 -> 系统高级设置 -> 系统属性 -> 高级 -> 环境变量 将 php.exe 和 刚才重命名的 phpunit 两个软件所在的目录加入到环境变量的 PATH 变量中 调出 CMD(快捷键:win + R),进入 phpunit 所在的目录,然后执行命令: echo @php "%~dp0phpunit" %* > phpunit.cmd 这样,便会在 phpunit 所在的目录下生成一个 phpunit.cmd 文件,而文件内容会是:@php "%~dp0phpunit" %* 这也就意味着,你直接在 phpunit 文件所在目录下创建一个 phpunit.cmd 文件,并且录入上述内容,可以实现完全一样的效果,哈哈。 至此,安装完成。 安装检测 在 CMD 中执行命令: phpunit --version 正常情况下,你就可以得到 phpunit 的版本号了。如果在这时提示找不到文件之类的错误,意味着环境变量没有得到更新,此时最简单的一个办法是:重启你的电脑。
二月
18
2016

Linux系统中为 PHP 安装 intl 扩展

安装 intl 扩展之前,需要安装 icu4c 。 下载地址: icu4c 下载地址 intl 下载地址 安装 icu4c 假设 icu4c 被解压到 icu/source cd icu/source ./configure –prefix=/usr/local/icu make make install 安装 intl 扩展 cd intl-3.0.0 /usr/local/php/bin/phpize ./configure –enable-intl –with-icu-dir=/usr/local/icu/ –with-php-config=/usr/local/php/bin/php-config make make install 启用扩展 在 php.ini 文件中添加 extension=intl.so 然后重启服务即可。
十二月
14
2015

PhpStorm 使用备忘录(六)

玩转 PhpStorm 的选项卡(3) 合并选项卡 我们在 [PhpStorm 使用备忘录(二)](1) 一章中有提到过 在单独的窗口打开选项卡,也就是分离选项卡到新的窗口功能。 这里,我们要谈一谈将分离出去的选项卡合并回来,或者将多个分离的选项卡,合并到一个分离的窗口中。总的来说,操作方法是完全一样的也很简单: 拖动要合并的选项卡(注意:是拖动选项卡,而不是拖动那个窗口的标题栏),然后将选项卡拖曳到需要进行合并的窗口里面,松开鼠标左键。 然后就OK了。 另外,分离开的选项卡窗口里面,也可以像主窗口那样,在窗口内进行窗口分割哦。 分割窗口间移动选项卡 分割了窗口,也就意味着存在需要将选项卡进行窗口间切换的问题。要实现这样的效果,你只需要拖动目标选项卡到期望的窗口即可。注意,是用鼠标拖动选项卡标签哦。 另外,你也可以把鼠标悬停在选项卡标签上,然后点击鼠标右键,在弹出的菜单中,选择 Move To Opposite Group 也可以实现选项卡的移动。 更改选项卡位置 默认情况下,选项卡是显示在编辑区的上方的。既然说到是默认情况下,也就意味着选项卡的位置是可以进行调整的。 更改选项卡的位置有两种方式,都比较简单。 方法一:在设置中进行修改 打开 Setting 对话框,点开 Editor -> General -> Editor Tabs。此时可以看到有个 Tab Appearance -> Placement 选项,选择下拉选项中的 Top、Left、Right、Bottom 或者 None 就可以进行相应的设置了。 方法二:右键菜单中修改 这个方法更加的简单,将鼠标悬停在某个选项卡上,然后单击鼠标右键,在弹出的菜单当中有一个 Tabs Placement 的菜单项,将光标移动到这个菜单项上,就会弹出一些信息。相信你看到弹出的信息后,立即就会明白可以怎么操作了。
十一月
24
2015

PhpStorm 使用备忘录(五)

玩转 PhpStorm 的选项卡(2) 锁定选项卡 PhpStorm 可以限制打开的选项卡数量,这个从前面的备忘录中可以知道。当打开的选项卡数量达到限定值之后,每打开一个新的选项卡,就会有一个原来被打开的选项卡会被自动关闭。 关闭的策略则是依据关闭策略(如关闭最少使用的)自动选择选项卡进行关闭。默认的选项卡限制是10个。 在这种情况下,有的时候为了保证某个特殊的选项卡不被关闭掉,你就可以锁定这个选项卡。此外,当你锁定了至少一个选项卡以后,在关闭选项卡的菜单项中,就会出现一个 Close All But Pinned 的菜单项,通过该选项,你就可以关闭除了锁定的选项卡以外的所有选项卡了。 锁定选项卡的步骤: 切换到你期望锁定的选项卡 鼠标右键点击选项卡,然后选择下拉菜单中的 Pin Tab 选项 当你锁定了选项卡以后,该选项卡就会出现一个类似图钉的特殊标识,标注该选项卡已经被锁定了。 解锁选项卡的步骤: 切换到你期望解锁的选项卡 鼠标右键点击选项卡,然后选择下拉菜单中的 Unpin Tab 选项 分割和取消分割编辑界面 PhpStorm 支持将当前的编辑界面分割为多个独立的容器,每个容器内部又可以复合多个选项卡。 对编辑界面设置与分割后的编辑容器内,都可以进行水平或者垂直分割,从而将原容器分割为左右或上下两个新的容器。对于喜欢将当前的各类编辑中的选项卡分组的朋友来说,有了这个功能,就可以自由实现自己想要的分组了。同时,分割编辑界面,也就实现了不切换选项卡即可快速编辑不同的选项卡内的内容的功能。 当然,想要这么做而不觉得憋屈,显示器得足够大才行,哈哈。 分割编辑界面的步骤: 选中期望分割到新容器内的选项卡 鼠标右键点击选项卡,从弹出的下拉菜单中选择 Split Vertically(垂直分割) 或者 Split Horizontally(水平分割)即可 改变分割方向的步骤 有的时候,我们对编辑界面进行了分割以后,可能会需要将分割的方向重新进行调整。此时无需傻傻地将原来的分割取消,然后重新进行分割。其实,你只需要在选项卡上点击鼠标右键,然后选择下拉菜单中的 Change Splitter Orientation(更改分割方向) 即可。 取消分割的步骤 选中期望取消分割的选项卡 鼠标右键点击选项卡,然后从弹出的下拉菜单中选择下列一项菜单即可。 如果只是想要取消当前的分割窗口,选择 Unsplit 如果想要取消所有的已分割窗口,选择 Unsplit All
十一月
18
2015

PhpStorm 使用备忘录(四)

玩转 PhpStorm 的选项卡(1) 配置选项卡行为 调整允许打开的选项卡的最大量 打开编辑器设置选项:Settings -> Editor -> General -> Editor Tabs。 在 Tab Closing Policy 选项下,有一个 Tab limit: 的文本框,通过该文本框就可以设置允许打开的选项卡的最大值。 如果设置为1,选项卡功能将被禁用。如果希望打开的选项卡,永远不被软件自动关闭掉,就将 limit 设置为一个不可能打开的值(如:999) 当然,如果将 limit 设置为 1,是存在一个小小的瑕疵的。一般这个时候,我们都希望选项卡不要显示出来了,事实上这么做无法达到我们想要的效果。可爱的 PhpStorm 还为我们提供了另外一个功能。 在相同的设置界面下,有一个 Tab Appearance 的选项下:Placement 就可以实现上面我们想要的效果了 。那就是在下拉选项中选择:None。 既然提到了 Placement 那么就不得不说说设置选项卡显示的位置了。 设置选项卡显示的位置 在上面提到的 Plaement 选项中,除了 None 将选项卡隐藏外,还有几个选项:Top, Left, Bottom, Right。这四个选项分别就是将选项卡显示在:顶部,左侧,底部,右侧啦。 快速打开最近的文件 部分朋友的习惯是禁用选项卡,而禁用选项卡以后,无可避免地要面临再次打开最近打开过的文档的问题(当然,不禁用选项卡的朋友也会遇到,只不过没有那么紧迫而已,所以,即便是不禁用选项卡也可以了解一下的)。无需担心,PhpStorm 又提供了一个贴心的功能。通过快捷键 Ctrl + E,你可以看到软件弹出了一个 Rencent Files 的对话框,如果你已经有过打开文件的动作,你就会看到,该对话框中,已经将你最近打开过的文档罗列出来了。 同时你也会注意到,对话框的左侧罗列出了诸如:Project, Database 之类的菜单,通过点击这些菜单,就可以快速进入相应的工具栏了。怎么样,PhpStorm 确实够贴心吧? 切换选项卡 多选项卡下有个无可避免的问题,切换选项卡。常规的做法,自然是用鼠标直接点击对应的选项卡了。不过,远不止这个方法的。 在选项卡上点击鼠标右键,通过下拉菜单中的 Select Next Tab 或 Select Previous Tab 来进行选项卡之间的切换。 通过快捷键:Alt + 左方向键 或 Alt + 右方向键 来进行选项卡之间的切换。 通过快捷键:Ctrl + Tab 来打开 Switcher 对话框(注意,按下组合键以后,Ctrl 键不要松开,否则就直接打开对话框中选中的选项卡了)。此时,通过按 Tab 键,就可以按照一定的顺序选中对话框中的选项卡了。你也可以通过上下左右键,直接定位到想要打开的选项卡上(细心的朋友一定发现了,这个对话框中,也提供了一些常用的工具栏的菜单哦)。选好了对应的选项卡,松开 Ctrl 键,对应的选项卡立即就打开了。 如果最近打开过的选项卡的数目过多,对话框中可能是无法完全显示出这些选项卡的(也就是对话框太小了)。此时可以在按住 Ctrl 键不放的情况下,再按下 Shift 键不放,此时你就可以通过方向键调整对话框的大小了。当然,如果一开始就确定对话框可能无法完全显示,也可以直接按下 Ctrl + Shift + Tab 组合键,此时就可以直接打开一个可以调整大小的对话框了。 如果要通过方向键选择选项卡,记得要松开 Shift 键。
十一月
12
2015

PhpStorm 使用备忘录(三)

字体快速缩放 PhpStorm 提供了字体快速缩放的功能,具体的使用方法是:在激活的编辑区内,按住 Ctrl 键不放,此时滚动鼠标滚轮,就可以对字体进行放大缩小了。 如果你发现这样操作无效,那么就应该考虑是否未在设置中开启了。 开启或禁用该功能的方法如下: 打开 Setting 对话框,点开 Editor -> General。此时可以看到有个 Mouse 选项中有个子选项:Change font size (Zoom) with Ctrl+Mouse Wheel。需要该功能则勾选,反之取消勾选即可。 这里还有一个需要注意的地方,如果启用了该功能,在放大或缩小了字体以后,如何进行字体尺寸快速复位,这是一个不容忽视的问题。在现目前的 PhpStorm 还没有提供放大缩小的参考比例数值的情况下,是无法准确判断当前的字体大小是否是初始值的。 Hy369 就曾经为此苦恼过,不知道如何是好。此次阅读手册,才发现,其实没必要再通过滚动鼠标滚轮,来目测是否恢复到员尺寸的。字体缩放复位的操作方式如下: 通过 Ctrl + Shift + A 调出行为属性对话框,在输入框中录入 Reset font size,此时在备选列表中,也会列出该条指令,然后敲击 Enter 键,即可立即复位字体缩放的设置了。 之所以要通过行为属性对话框来执行该复位操作,是因为到目前为止,PhpStorm 还没有为该动作提供默认的快捷键。既然是没有提供默认的快捷键,就说明是可以设置快捷键的。 在此,又涉及到了配置快捷键的问题,所以还是提供一下自定义快捷键的方法吧。 自定义快捷键 PhpStorm 作为一款强大的 IDE,自然是有自定义快捷键的功能的。具体的设置方法如下: 打开 Setting 对话框,点开 Keymap。此时可以看到对话框已经罗列出了所有的指令列表,每个指令现有的快捷键也附在了指令后面。 在搜索录入框内录入关键字,可以检索指令。录入框右侧有一个按钮,鼠标悬浮在按钮上面,会提示 Find actions by Shortcut。这是一个相当实用的功能,点击该按钮以后,你可以通过快捷键查询该快捷键目前是分配给哪个指令的。 在指令上点击右键,会弹出一个下拉对话框,该对话框就提供了添加快捷键和移除快捷键的选项,各位朋友可以自行查看研究一下。
十一月
10
2015

PhpStorm 使用备忘录(二)

在单独的窗口打开选项卡 在出现类似于需要对比两个选项卡的代码的时候,有个比较好的方式就是将需要参考和编辑的两个选项卡单独分开。例如左边放一个,右边放一个,然后参考着左边的内容编辑右边。 PhpStorm 自然是可以这样做的,而且有三种不同的操作方法。 方法1:鼠标左键选中想要单独打开的选项卡,拖曳至当前编辑器以外后松开鼠标即可。Hy369 尝试过的最佳方式就是拖曳选项卡到标题栏放开,这样拖曳距离最近,可以达到快速打开(呃,如此偷懒)。 方法2:在想要单独打开的选项卡被激活的状态下,使用快捷键 Shift + F4,即可快速实现。 方法3:在 Project 工具栏 中找到想要单独打开的文件,然后按住 Shift 键,鼠标左键双击 该文件,即可快速在单独的窗口打开该文件。 特别说明 方法1用于目标选项卡已经打开的时候最佳,方法3用户目标选项卡没有打开的时候最佳,方法2与方法1不同的地方在于,方法2在新窗口打开目标选项卡以后,原编辑器的目标选项卡不会消失,而方法1会消失。而方法3的目标文件如果在原编辑器也是打开的话,也不会消失。 编辑器多开 有些时候会需要同时打开两个项目,如果在初次提示你,新开的项目是在当前window打开还是新开的时候,你选择了记住选择,以后可能永远都是当前窗口打开,或者永远新开窗口了。 如果需要调整这个设置,可以这样操作: 打开 Setting 对话框,点开 Appearance & Behavior -> System Settings。此时可以看到有个 Project Opening 选项,然后就可以进行设置了。 Open project in new window (在新窗口打开) Open project in the same window (在当前窗口打开) Confirm window to open project in (每次询问以哪种方式打开) 星号(*)标记修改过而尚未保存的文档 一般来说,对修改过的而没有保存的文档做一个标记,是一个好的习惯。如果发现自己的 PhpStorm 没有为你这样做,可以这样设置: 打开 Setting 对话框,点开 Editor -> General -> Editor Tabs。此时可以看到有个 Mark modified tabs with asterisk 选项,勾选该项即可。 PhpStorm·的自动保存 PhpStorm 是提供了自动保存功能的,然而对 Hy369 来说,还是更加习惯手动按 Ctrl + S 的方式进行保存。这个就根据个人的喜好进行设置了。 设置方式如下: 打开 Setting 对话框,点开 Appearance & Behavior -> System Settings。此时可以看到有个 Save files on frame deactivation 和 Save files automatically if application is idle for 选项。 前一项意思是:当应用程序失去焦点的时候(例如你执行了显示桌面的操作,或者切换到了其它应用程序),保存当前修改过的文件。 后一项的意思是:在应用程序空闲无操作达到指定的秒数后,自动保存修改过的文件。 如果需要这两项功能,勾选保存即可。Hy369 自然是取消了勾选这两项的。 恢复到上一次修改前的状态 如果不小心误操作了一些代码,自然是要撤销掉的。常规的方式自然是 Ctrl + Z 或者 'Alt + Backspace` 了。 然而上述方法是存在一定的问题的,就是操作的步骤数实在是太多的情况下(也就是说你要恢复到很久很久以前的某个版本),这个时候按照上面的做,就有些尴尬了。因为上述方法可恢复的步数是有限制的。 那么,如果我们做了一个错误的操作,甚至一天以后,我们才发现出了问题,必须进行回滚,这时候就只能认栽了么? 哈哈,用 PhpStorm 的朋友无需担心了,因为它已经为我们提供了一个可以数度拯救我们于危难之间的功能:Local History(VCS菜单里面可以看到这个菜单项)。 如果你已经用 PhpStorm 操作过一些文件了,这个时候,你在该文件被激活的状态下,单击鼠标右键,你就会看到一个Local History 的菜单,点击其下级菜单中的 Show History,就会弹出一个对话框。 看看对话框的侧边栏,你看到了什么?哈哈,不出意外的话,你看到了该文件最近的操作记录,点击某条操作记录,你就会发现对应时间节点的文件内容显示了出来,你可以清晰看到当时的代码与当前的代码的直观的对比。 悄悄告诉你,对比栏里面的内容是可以编辑的哦,去研究研究在对比栏里面点击右键以后的功能吧,有惊喜哦。 如果想要直接恢复到某一个时间节点的代码,直接在那个时间节点上点击右键,然后选择 Revert 就可以了哦。怎么样,这个功能确实强大是吧?
十一月
09
2015

PhpStorm 使用备忘录(一)

写在前面 作为一名 PHPer,Hy369 也是使用过好几个 IDE了。之所以换 IDE,则是因为用久了,总觉得有用起来不爽的地方,所以就想换一个新的 IDE 试试。直到开始使用 PhpStorm 以后,这个问题才不复存在的。 是的,目前 Hy369 一直钟爱 PhpStorm。这对于像我这种总是想着偷懒的人来说,这软件着实不错,总是能够在使用的过程中带来或多或少的惊喜。 当然,Hy369 也没有想要诋毁其它 IDE 的意思,毕竟每个人的开发习惯不同的。 老实说,Hy369 的英语确实不咋地,四级考了三次都没有过,所以 Hy369 虽然用了 PhpStorm·也有两三年了,到目前为止,都还没有仔细去看过他的使用文档,所以很多有助于偷懒的小功能,都还没有被 Hy369 挖掘出来。这也就是为什么使用过程中,不停因为一些实用的小功能而感到惊喜的原因了。 不过现在,Hy369 想要花点时间多了解一些这款可爱的 IDE 的功能了,所以只得去啃啃文档咯。 鉴于英语水平确实不高,所以觉得把阅读过程中的一些实用小功能给记录到自己的 PHP 博客中,以便于将来快速查阅,也是为其他需要的朋友提供一些参考吧。哈。 好了,作为一名“程序猿”,貌似废话有点多了,还是闭上嘴巴。 PhpStorm 使用备忘录 快速切换选项卡 编辑区激活时(就是说敲代码的那个窗口是可输入的状态),通过 Alt + 左方向键 和 Alt + 右方向键 可以在不同的选显卡上进行切换,而且选项卡切换到第一个或者最后一个时,会自动滚动到最后一个或者第一个(也就是可以循环切换啦)。 当然,非编辑区被激活时,按这个组合键也有用的,具体的作用可自行体会。 快速打开文件所在的某层目录 按住 Ctrl 不放的情况下,鼠标左键 点击选项卡,会弹出一个对话框,对话框中罗列出了该文件所属的所有目录(会一直追溯到顶级目录哦),点击你想打开的目录 ,就可以快速打开对应的目录了哦。 呃,Hy369 以前一直是打开一个资源管理器(也就是文件夹),然后用鼠标一层一层去点的。 任意选择字符 实现效果:例如一个字符串ABCDEF,某些时候,你想要只选中 B 与 DE进行复制。 方法一: 编辑区激活状态下,按住 Alt 键不放,鼠标左键可以点选任意字符。 方法二: 编辑区激活状态下,且光标定位在编辑区内,双击 Ctrl 键,第二次点击 Ctrl后按住不放,通过四个方向键可以进行列选等操作。 两种方法有什么不同的地方,可以自行体会。 从导航条打开文件或文件夹 先说导航条是什么,就是打开某个文件以后,在菜单栏下面会出现一行目录结构,告诉你当前激活的选项卡的目录层级。 单击导航条中的文件夹,会弹出一个下拉对话框,罗列该文件夹下的文件夹和文件。 如果再点击下拉对话框中的某个文件,就会打开这个文件;如果点击的是文件夹,则会选中这个文件夹,然后再次弹出一个下拉对话框,显示这个新选中的文件夹下的文件和文件夹。 如果你是双击导航条中的某个文件夹,则会弹出 Project 目录树结构,选中对应的文件夹。 依次类推,直到你选择一个文件才会结束。
十月
14
2015

Symfony2 安装后出现500或没有输出的问题

因为项目的需要,开始接触到Symfony2,先不说系统架构、功能等问题,光是安装就让我遇到了很大的问题。 一种情况是:软件安装以后,访问web/config.php是正常的,可是访问web/app_dev.php却是提示500错误。 另一种情况则是:软件安装以后,访问web/config.php是正常的,可是访问web/app_dev.php却是提示没有任何输出。此时若是进行调试追踪,会发现代码没有问题,会正常运行,只不过运行至事件监听的位置时,会开始无限循环,而且这个循环中始终没有任何输出信息,也就导致浏览器提示没有输出了。 而且我的情况还是:window主机里面可以正常运行,而把代码原样复制到linux里面,则立即出现上面的问题。 为了解决这个问题,我倒腾了许久,度娘也找了,谷哥也问了,始终得不到想要的答案。 为此甚至把linux环境都重新搭建了几次,依然一无所获。 最后实在是办法了,把window环境下正常运行的Symfony2的PHP版本切换了一下,切换到了5.4。 然后怪事发生:window环境中也运行出错了。 这一偶然的发现让我颇为吃惊,该不会就是PHP版本问题吧(事实上,这个就是此次遇到的问题的答案)。windows环境下我的PHP版本是5.6,而linux下面的版本是5.4。 我立即把linux的PHP版本提升到5.5.30,一运行,居然就可以了。 看来,Symfony2的文档中虽然只是要求PHP版本高于5.4即可,而实际使用中却并非如此,以后还是使用相对较高的版本吧。 至此,此次坑爹的解决问题的路总算走完了,感慨之下,也就在Hy369的博客中国记录一下吧,说不定就有人遇到和我一样的问题呢。