数字货币的下一个小劫

  • 比特币的价值在于非法交易,洗钱或者资产转移。当然,还有资产掠夺,俗称“割韭菜”。

    在比特币大户(持币量在五位数以上)和交易平台等核心利益者的围剿之后,被掠夺者不计其数,多是不明就里,想短期内获取高额回报的投机者和暴富幻想家。投机比特币,就像是赌博,这是一场零和游戏,是极少数人掠夺其他玩家的钱,这个道理也许很多人明白,但都存在侥幸心理,希望自己不是最后被掠夺的人。

  • 现在,比特币的价格,除了上面所说的条件支撑,还有一个因素----ICO。

    ICO最早出现在2013年,那时也有一轮比特币的暴涨,但ICO远不如现在“威名远扬”,现在ICO里项目繁杂,名目众多,五花八门,可以说是多如牛毛,但正如某些圈内大佬所说:99%的项目就是为了圈钱。这些项目只接收比特币,莱特币,以太坊等已经在国际流通,且具有一定价格的数字货币,众多投机者必须到交易平台充值人民币,兑换成ICO项目规定的对应的数字货币,然后众筹给这个项目,换成项目方发行的代币,等待代币上线某交易平台,其他“韭菜”接手,完成自己的财富增值。

    大部分ICO项目都很离谱:
    1.很多人把一个原本没有融资能力的项目加一个区块链的外衣来圈钱或蒙钱;
    2.很多项目根本没有落地,拿着白皮书就去融钱,而且还能融到钱;
    3.找一些名人、圈内大佬站台,很多项目连白皮书都没有,同样也能拿到钱;
    4.很多白皮书里写的企业高管,团队成员全是伪造,是前腾讯、前facebook里xxx要员等,在搜索求证后发现,很多都是"克隆人";
    5.项目里声称,在和某些大公司合作,比如与Starbucks,Amazon合作等也是编造。
    ......

    有的项目甚至和某些交易平台、圈内大佬合作,一起掠夺别人,比如:利用某些平台做交易为某项目众筹,相当于把平台客户的钱,变成自己口袋里的钱。

    数字货币的疯狂,带动了ICO圈钱。ICO项目又反过来带动了数字货币的上涨。正如早期入场者说的:“都是一条船上的,现在应该唱多,好有嫩韭菜接盘,让我们跑。”

  • 投机者的劫难

    在现在滥竽充数的项目里,很多投机者等来的也许不是他们炒新所期待的结果,而可能是项目根本落不了地,代币上不了线,甚至是项目方跑路等劫难。

  • 数字货币的小劫

    为什么只是小劫呢?

    当被欺骗的人越来越多,怨声载道的时候,也是有关部门不得不整治的时候,这时会出现很多措施来监管ICO,ICO的名声为应声而下,很多代币也会下线,此时会戳破很多谎言,比特币等数字货币价格肯定会下跌,但也不至于伤筋到骨。所以我称之为小劫。

  • 总结

    “天欲其亡 必令其狂”,现在的ICO项目集资,让我想起了2014~2015年的互联网O2O创业拿风投,当时做出个手机app就能拿到钱。相同点是都是骗钱,不同点是骗不同人的钱。是泡沫都有破的时候,不像房市,有ZF托底调控,以三年的时间轴来看,这些泡沫坚持不了多久。等到腐败的ICO项目烂掉,完善的法律法规出来,更好的项目才能展现。而不是现在这样,为了圈钱而无所不用其极。

    我坚信区块链技术一定会发展的越来越好,基于区块链的落地应用也越来越多,但不是现在那些xx链的垃圾项目......

ETP(熵)币在Ubuntu下的挖矿教程

本教程所用环境
* 机器:普通电脑 ThinkPad E470c
* 系统:Ubuntu 16.04 LTS
步骤
  • 下载元界钱包
    • 官方博客有一篇元界(Metaverse)安装与使用手册,这里面涵盖了Windows,MacOSX,Linux系统下钱包下载,安装,使用的详细说明,可能在一些细节与实际不同,摸索一下就会掌握,如有问题,欢迎在评论下留言,或者直接联系我。
  • 下载挖矿软件
    1. 英语过关的请直接看这篇文章Ethereum GPU Mining on Linux How-To,这里有如何下载以太币挖矿软件和显卡驱动。建议:最好结合我下面的一起操作 🙂 。
    2. 我结合自己的实践来大概说明一下:
      • 用以下命令增加挖矿软件安装包的源:
      sudo apt-get install software-properties-common
      sudo add-apt-repository ppa:ethereum/ethereum
      sudo apt-get update
      

      如果是在Debian 8(在Ubuntu上你可以跳过此步骤)上你需要使用以下命令替换源名称:

      sudo sed 's/jessie/vivid/' -i /etc/apt/sources.list.d/ethereum-*.list
      sudo apt-get update
      
      • 安装ethereum, ethminer 和 geth:
      sudo apt-get install ethereum ethminer geth
      

      geth好像是用来生成以太币钱包地址的,对于我们将要挖ETP来说,应该没有用处。因为我们在安装好元界钱包,注册登录后会有ETP的地址。

      • 安装显卡驱动:
        首先,需要知道自己电脑的显卡型号,然后去官方下载对应的驱动软件。比如我的显卡是NVIDIA,电脑系统是Linux(Ubuntu 16.04 LTS)64位,使用的是GeForce 920。到N卡驱动官方网站搜索下载自己需要的驱动。

      然后,安装显卡驱动所需要的依赖:

      sudo apt-get install linux-headers-amd64 build-essential
      

      linux-headers-amd64 这个包好像已经废弃了,不过不影响后续安装。

      最后,安装驱动。显卡驱动安装必须在Linux文本模式,所以:

      第一步,Ctrl+Alt+F1切换到tty1,使用命令sudo service lightdm stop关闭 X-Window.

      第二步,给下载的驱动增加执行权限,然后运行(注:请先看完以下内容在运行).

      chmod +x NVIDIA-Linux-x86_64-367.35.run
      sudo ./NVIDIA-Linux-x86_64-367.35.run
      

      第三步,安装完成后,重新启动X-Windowsudo service lightdm start,然后Ctrl+Alt+F7进入图形界面;

      我在安装完成后遇到一个坑,在图形模式下,登录界面输入密码后依然跳转回登陆界面,无限循环。经过搜索,用以下方法重新安装解决:

      sudo ./NVIDIA.run -no-x-check -no-nouveau-check -no-opengl-files
      -no-x-check:安装驱动时关闭X服务
      -no-nouveau-check:安装驱动时禁用nouveau
      -no-opengl-files:只安装驱动文件,不安装OpenGL文件
      

      这样再reboot,就不会出现循环登录的问题。

      如果没有解决请参考这篇blog.

    3. 寻找矿池挖矿。

      我使用的是火池,挖矿命令:ethminer -F http://get.etp.huopool.com:8888/MEEihkdp6w7JKVA6hyKVGU9FomAV4G7jYP -G --farm-recheck 200

      由于我用的是个人电脑,所以算力很低 🙂 ,仅为了试验一下而已,下面是挖矿和矿池收益截图:
      挖矿图
      收益图

总结
  • 以上内容如果对你有帮助且你还有闲余的ETP的话,可以对我进行打赏
    我的ETP地址:MEEihkdp6w7JKVA6hyKVGU9FomAV4G7jYP
    我的博客地址:https://blog.blianb.com

比特币(bitcoin)的几种获取方法

  • 背景

现在比特币(bitcoin)的名头是越来越响,大街小巷,无人不知,价格也是越炒越高,我知道它也是很晚了,在二〇一三初的时候,当时价格是一千多,现在(二〇一七)已经翻了20多倍了。

  • 比特币的简介

详见维基百科,目前来说,比特币还处在投机,炒作之声中,但如果你要问,它会不会消失?我能肯定的说,它不会消失,因为它与不法交易息息相关,不法交易涵盖太多东西,这些东西就像人性的阴暗面,永远不会完全消失,只能说比特币可能会被一个新数字货币取代,而且这个数字货币有更强的安全性、匿名性和更广的接受程度。现在还没有那一种数字货币有这种趋势。

  • 获取比特币的几种方式
  1. 挖矿,中本聪(比特币创作者)把通过消耗CPU的电力和时间来产生比特币,比喻成金矿消耗资源将黄金注入经济。当前,挖矿对于普通人来说,已经没有任何可行性,只适用于专业矿工。
  2. 到交易平台进行交易,注册账号,充值人民币,购买比特币。现在交易平台很多,但要选择有一定年限和名气的平台,有些平台会有随时跑路的风险,另外,任何平台都有安全风险,我就经历过MT.Gox平台比特币被hacker盗币而倒闭的事件。
  3. 通过一些网站免费获取比特币,比如:

a. 浏览网站btcclicks上的广告,当然,你需要先注册一个账号,然后点击Surf Ads按钮到广告列表,每个广告都标明了广告时长和你能获得的比特币数量,当你积累到0.1mBTC时就可以提到自己的私人地址了。PS:此网站可能需要自备梯子才能浏览广告:)
b. 定时领取网站freebitcoin上的比特币,当然你也需要注册一个此网站的账号,然后每小时可以领取一定数量的比特币,当你积累到0.3mBTC时就可以提到自己的私人地址了。

以上两种方法,都是我亲测有效的,如果以后发现新的方法,会更新在这里。如果你有别的方法,也可以写在评论区哟,好东西需要大家分享呀!

判断一个地区第三次浪潮的发展情况

先简单介绍下本书《第三次浪潮》(The Third Wave),阐述了由科学技术发展所引起的社会各方面的变化与趋势,1980年3月出版

之前看新闻(2017-07-05),看到滴滴发布的北京交通流量分布图,觉得印象深刻。后来在读本书的时候,就联想到了这两者的关系。

书中说道,判断一个地区第三次浪潮的发展情况,有一个简单的办法:

观察当地的交通流量情况,如果高峰时刻仍旧很突出,交通现象又是早上集中在一个方向,晚上又从另一个方向回来,这说明第二次浪潮社会同步化仍旧占着优势。如果交通流量从早到晚都是均衡的,而且在越来越多的城市中都是这种情况,运行的方向都是多面的,而不是单向的来回,那么就可以很有把握地判断,第三次浪潮社会已经站稳脚根了,服务项目的职工已经超过了生产工人,灵活工时制已得到了发展,非全日工作和夜班工作已经盛行,昼夜开放的小规模超级市场,银行,加油站和饭店,也将很快得到发展。

我们再来看看滴滴出行发布的早晚高峰交通流量分布图:

早高峰:

早高峰

晚高峰:

晚高峰

这么看来,虽然说,《第三次浪潮》中判断某个地区第三次浪潮社会的发展对北京不是完全适用(这本书是1980年出版),但书中的描绘与北京是如此贴切,也能够说明北京现在还处在第二次浪潮中;北京现在的生产工人也确实是多于服务行业人员的。

这本书能给予你看待生活和时代变迁很多不同的观点,可能能对以后生活的不确定性变化做出一定的指导。

ps:在博客后台上传上面两张gif图时,一直提示http error,设置了nginx

client_max_body_size 4m;

后解决

在Linux上增加Swap分区

Linux Swap交换分区

需求背景

在我的个人低配ECS CentOS上,由于在使用composer update -vvv升级项目使用的第三方库时出现下面的提示,根据资料显示,大都是缺少Linux Swap引起的。
错误显示如下:
composer update error

关于Linux交换分区

Linux RAM由内存页组成的块组成的。为了释放RAM,就可能产生“linux交换分区”,并将部分内存从RAM复制到硬盘上的预配置空间。Linux交换分区就是为了允许系统利用比原来可用的内存更多的内存。

但是,交换分区也有一些缺点。由于硬盘的读写速度比RAM慢得多,因此服务器性能可能会大大减慢。另外,如果系统有太多文件从交换分区写入和读出,那么swap thrashing可能发生(这会导致效率低下,因为大部分时间消耗在访问磁盘上)。

增加交换空间步骤:
  1. 检查交换分区空间

    在我们继续交换分区文件之前,我们需要查看交换分区使用情况,检查是否已经启用了交换分区文件。

    命令:swapon -s

    如果没有返回,则摘要为空,不存在交换分区文件。

  2. 检查文件系统

    在知道我们没有启用交换分区文件后,我们可以使用df命令检查服务器上有多少剩余空间。交换分区文件需要512MB,以下结果显示我们只使用了大约7%的/dev/hda磁盘空间。

    df
    

    显示:
    CentOS剩余空间

  3. 创建并启用交换分区文件

    现在是使用dd命令创建交换分区文件本身的时候了:

    sudo dd if=/dev/zero of=/swapfile bs=1024 count=512k
    

    "of=/swapfile" 指定文件的名称,这里我们取的名称是swapfile。

  4. 为交换文件创建一个linux交换分区区域:

    sudo mkswap /swapfile

    结果显示:
    Setting up swapspace version 1, size = 536866 kB

  5. 通过激活交换分区文件完成工作:

    sudo swapon /swapfile

  6. 查看交换分区摘要,将可以看到新的交换分区文件:

    swapon -s

    显示:
    查看交换分区信息

  7. 做完这些工作后,如果服务器重启,那么这个交换分区会消失。可以通过将交换分区配置添加到fstab文件来确保交换分区一直存在。

    打开文件:

    sudo vim /etc/fstab

    在fstab文件最下面粘贴以下内容就可以:

    /swapfile swap swap defaults 0 0
    
  8. 这个交换分区文件只应该有读的权限,所以我们要给它设置正确的权限:

    chown root:root /swapfile

    chmod 0600 /swapfile

如何配置Swappiness

操作系统内核可以通过称为swappiness的配置参数来调整依赖交换分区的使用频率。

  • 要查看当前的swappiness设置,使用命令:

    cat /proc/sys/vm/swappiness

    结果显示为:
    60

Swapiness是0到100之间的值。接近100的Swappiness意味着操作系统会频繁的使用交换分区。虽然交换分区给系统提供额外的资源,但RAM比交换分区空间读写速度快得多。不管什么时候,程序从RAM移动到交换分区的话,它的运行速度都会减慢。
当Swappiness值为0时意味着操作只会在必须需要依靠交换分区时才会使用到它,比如,不使用交换分区,内存会溢出。

  • 我们可以使用sysctl命令调整swappiness:

    sysctl vm.swappiness=10

    显示:
    vm.swappiness = 10

  • 如果我们再次检查系统的swappiness值,可以看到已经修改了:

    cat /proc/sys/vm/swappiness

    显示:
    10

  • 要使您的服务器每次启动时自动应用此设置,您可以将该设置添加到/etc/sysctl.conf文件中:

    sudo vim /etc/sysctl.conf

    增加内容:
    vm.swappiness = 10

到此大功告成!

PHP设计模式-建造者模式

  • 建造者模式

    该模式定义了处理其它对象的复杂构建的对象设计。

    简述:是不是很晦涩?没错。现在我们管建造者模式叫榨汁机模式,举个栗子:

    想象现在你有一台榨汁机,榨汁机有十个放入橙子的管道(忽略为什么会有十个管道的梗,我想要一杯大大大橙汁不行么,其实这里类比的意思是:你有需要在十个地方构建同一个对象来使用),当你想得到“一杯橙汁”这个对象时,常规做法,你每次需要:

    1. 从十个入口放入橙子;
    2. 从十个口把去皮的橙子放进去;
    3. 放入一些调味品(比如浓缩橙汁);
    4. 把杯子对准出口,用杯子盛橙汁;
    5. 按动开关,榨汁,得到一杯橙汁.
    

    如果使用榨汁机模式呢?

    1. 从十个入口放入橙子;
    2. 按动开关,榨汁,得到一杯橙汁.
    

    把常规做法下的第2,3,4步全部放入了榨汁机内部,你不用在每个入口处给橙子去皮(这是最重要的),就像你在构建一个对象时,不用每次都给每个对象设置某个属性一样。

    那么问题来了,使用榨汁机模式除了节省了一些构建对象(做出一杯橙汁)步骤之外,还有什么好处呢?
    现在假设你买的橙子都有很多坚硬的籽,如果直接把这些橙子用来榨汁喝会非常影响口感,所以我们需要把籽给去掉,常规做法下:

    1. 给十个橙子去皮;
    2. 给十个橙子去籽(即使是自动去籽也需要在十个入口处加自动去籽机);
    ......
    

    榨汁机模式下,在榨汁机内部增加一个去籽机,然后:

    1. 从十个口放入橙子;
    2. 按动开关,榨汁,得到一杯橙汁.
    

    看出问题了吗?构建对象时,在常规做法下,如果有什么修改,那么在每个构建的地方,都需要去修改。但是在建造者模式下,有了修改,只需要去修改这个构建对象一次即可。

    这就是我理解的建造者模式,如果你有更好的理解,欢迎在下面评论区留言!

PHP设计模式-适配器模式

  • 适配器模式

    将某个对象的接口适配为另一个对象所期望的接口。

    简述:B类在使用A类里的方法,现在C类也需要使用到A类,但又有新特性,怎么办?有两种做法:

    1. 改造A类,增加新方法;
    2. 使用适配器模式,增加一个 A' 类继承A类,把新方法放在 A' 类里,这样C类就直接使用 A' 就好了。
    

    个人生活举例:比如,你有一辆车,你想听音乐(据说开车和听歌更配哟),但车的中控系统里只能播放音乐碟片,这就很尴尬了,手机里有无数好歌,却不能享受,就像你很饿,眼前有盘红烧肉,但吃不到嘴一样。(什么?你说为什么不直接用手机放歌?这是我的设定啊喂!)

    现在也有两个做法:

    1. 大刀阔斧改造中控(拆卸都很麻烦),让她既能播放碟片也能使用蓝牙连接手机;
    2. 买一个蓝牙连接器,通过连线(假设存在这样的线,类似于PHP的继承)连接中控,然后 done。
    

    这就是我理解的适配器模式,如果你有更好的理解,欢迎在下面评论区留言!

Git修改提交记录的提交信息

修改前提交历史记录如下图:
修改前

修改提交记录的提交信息有两种情况:

  • 修改最近一次提交的提交信息
    使用命令git commit --amend,进入到下图:
    改前
    修改提交信息,然后保存退出,
    使用命令git log,查看历史提交记录,可以发现最近一次提交信息已被修改,如下图:
    修改后提交信息

如果想要修改最近三次提交信息,或者那组提交中的任意一个提交信息呢?那就是我们要说的第二种情况了:

  • 修改多个提交信息
    使用命令git rebase -i 节点,节点即HEAD~2^HEAD~3或某一次的提交记录的哈希值;
    例:git rebase -i HEAD~3进入下图:
    进入rebase -i交互界面

注意:
1. 上面列出的历史提交记录信息正好和我们提交的时间是相反的,我们最近一次的提交反而在最下面;
2. 可以看到,这个文件相当于一个与Git的交互界面,你可以使用不同的命令达到后续不同的操作;
3. 上图中命令在附录1中说明.

第一方法,使用reword操作:
如果只需要修改提交历史信息,把pick修改为reword即可,在列出的记录里,需要修改哪个提交信息,就把这条记录前的pick修改为reword,保存退出后,Git就会弹出每个提交信息的编辑信息的编辑器,编辑完成退出后,就会弹出下一个,直到全部完成。

第二方法,使用edit操作,这个方法能使用所有git commit --amend的功能,比如修改提交者的邮箱信息等等:
这里我们只修改倒数第二次的提交信息,把第二个pick修改为edit,如果你要修改这三次所有的提交信息,可以都把pick都修改为edit,如下图:
修改你要使用的操作命令

保存并退出编辑器后如下图:
Git提示

接下来,使用命令git commit --amend来修改提交信息,你发现了么,是不是和上一种情况很像!
修改提交信息,然后退出编辑器。最后,运行git rebase --continue,这个命令将会自动地应用另外两个提交,然后就完成了。
如果需要将不止一处的pick改为edit,需要在每一个修改为edit的提交上重复这些步骤。每一次,Git都将会停止,让你修正提交,然后继续直到完成。

使用命令git log,查看历史提交记录,可以发现倒数第二次的提交信息已被修改,如下图:
修改后提交信息


警告:这是一个变基命令-在HEAD~3..HEAD范围内的每一个提交都会被重写,无论你是否修改信息。不要涉及任何已经推送到中央服务器的提交-这样做会产生一次变更的两个版本,因而会使他人困惑。

附录1

命令名称 说明
pick 使用提交,不做修改
reword 使用提交,但编辑提交信息
edit 使用提交,但会为了使用amend命令停止
squash 使用提交,但会把列表里后面的提交压缩到第一次合并成一次提交
fixup 和使用squash类似,但不会保留提交信息
exec 使用shell命令,待测试
drop 删除掉某一次提交,此次修改将全部消失(危险)

共享篮球架脑洞

背景:博主目前在北京工作,自己是一个业余篮球爱好者,很希望在周未休息时能找一个地方打打球,但这样的地方太少了。有篮球场的地方主要是在:学校,某些公园,极少数小区。
这些地方都有很大局限性:
1. 数量少;
2. 与自己住的地方相距甚远;
3. 很多学校不允许校外人员进入,有些公园也是收费的,小区有的也是封装型的。

基于以上这些情况,我设想,要是有共享篮球架就好了,这个篮球架应该有以下这些特性:
1. 可以太阳能充电,能抵抗轻微的自然灾害,比如:烈日暴晒,狂风和大雨等;
2. 篮球架有GPS定位功能,方便使用者寻找;
3. 有一个自动的盖子可以把篮框闭合(或者篮框在篮板后面),这样别人就不能使用;
4. 篮球架架身上有二维码,可以供使用者使用APP扫描支付使用费用,支付成功后闭合的盖子会自动打开(或者篮框自动会移动到篮板前);
5. 收费设置,比如 5RMB/H;
6. 计时结束后,盖子会自动闭合(自动移动到篮板后面),如要使用需要再次支付;
7. 篮球架允许运营方远程控制调节,比如,调节成每天上午9:00~12:00盖子自动打开,可以免费使用,其它时间需要扫码支付后使用。

优点:
1. 公共场合,方便寻找,每个爱好者都可以来玩;
2. 几个人一起玩,AA制付款就行,便宜;
3. 推广我国体育运动,强身健体:);

当然,它其实存在很多问题:
1. 场地问题,如果设计制作出了篮球架,但是却缺少能使用的场地,在一线城市,场地其实更稀缺,如果租赁场地的话,应该也很昂贵;
2. 篮球架的制作成本,我在网上搜了一下,一个普通的篮球架售价为1.8K RMB左右,造价也不便宜;
3. 受众少,相较其它共享项目(共享单车)来说,共享篮球架的使用者就少很多了。

其它思考:
1. 是否可以和共享篮球一起运作,运动者自己没有篮球可以现场使用共享篮球;
2. 是否可以和自动贩卖饮料机一起运作,运动者运动渴了可以直接买水喝解渴;
3. 篮球架本身是否有更好的设计,是否可以把支柱变宽而可以放显示屏播放广告。

补充:
1. 可以在篮球架的某个位置增加一个摄像头,防止架子被故意破坏,最重要的是可以录入用户打球视频,扫码付费的用户可以通过App观看,这个用户可以直播和分享这个视频给别人。他能够看自己或别人哪些投球很酷,很帅,也能够查看争议犯规的录像,知道是谁犯规。如果可以的话,还可以具有自动剪辑出五佳球等功能!
2. 还可以有很多玩法,比如,半场模式和全场模式,篮球架会自动录像,计时,计分,用户可以实时在手机APP上查看,还可以直播比赛。比如PK模式,两个人同时付费,结束后,输的一方会扣费,赢的一方会退款,再结合饮料自动贩卖机,加一瓶饮料的赌注,也是提前付费,比赛结束饮料会自动出来。
3. 更大的脑洞是,可以使用AR技术,用这个摄像头虚拟出几个人和用户一起打篮球!:)

自动化检测PHP语法和编程规范(Git pre-commit)

自动化检测PHP语法和编程规范

使用到的知识点:

  • 命令php -l检测文件语法,可以通过php -h查看PHP CLI支持哪些操作,如下:.
[:~]$ php -h
Usage: php [options] [-f] <file> [--] [args...]
   php [options] -r <code> [--] [args...]
   php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...]
   php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...]
   php [options] -S <addr>:<port> [-t docroot] [router]
   php [options] -- [args...]
   php [options] -a

  -a               Run interactively
  -c <path>|<file> Look for php.ini file in this directory
  -n               No configuration (ini) files will be used
  -d foo[=bar]     Define INI entry foo with value 'bar'
  -e               Generate extended information for debugger/profiler
  -f <file>        Parse and execute <file>.
  -h               This help
  -i               PHP information
  -l               Syntax check only (lint)
  -m               Show compiled in modules
  -r <code>        Run PHP <code> without using script tags <?..?>
  -B <begin_code>  Run PHP <begin_code> before processing input lines
  -R <code>        Run PHP <code> for every input line
  -F <file>        Parse and execute <file> for every input line
  -E <end_code>    Run PHP <end_code> after processing all input lines
  -H               Hide any passed arguments from external tools.
  -S <addr>:<port> Run with built-in web server.
  -t <docroot>     Specify document root <docroot> for built-in web server.
  -s               Output HTML syntax highlighted source.
  -v               Version number
  -w               Output source with stripped comments and whitespace.
  -z <file>        Load Zend extension <file>.

  args...          Arguments passed to script. Use -- args when first argument
                   starts with - or script is read from stdin

  --ini            Show configuration file names

  --rf <name>      Show information about function <name>.
  --rc <name>      Show information about class <name>.
  --re <name>      Show information about extension <name>.
  --rz <name>      Show information about Zend extension <name>.
  --ri <name>      Show configuration for extension <name>.


  • 安装PHP编程规范工具php-cs-fixer,可以在GitHub上查看详细信息.
    1. 下载:wget http://cs.sensiolabs.org/download/php-cs-fixer-v2.phar -O php-cs-fixer
    2. 给予执行权限:sudo chmod a+x php-cs-fixer
    3. 把文件移动到自己喜欢的目录,我一般是放在/usr/local/bin下:sudo mv php-cs-fixer /usr/local/bin/php-cs-fixer

  • 利用Git的钩子pre-commit达成commit前自动检测功能.
    这个钩子,顾名思意就是在git commit之前会触发,此钩子结合网上和朋友的写法,感谢他们.
    首先,点击查看这个文件,复制文件内容.
    然后,进入到自己的项目下git钩子目录:cd path/to/your/project/.git/hooks,复制pre-commit.sample文件并重命名:cp pre-commit.sample pre-commit,把文件内容替换为上一步复制的内容.
    最后,每次commit时就会先检测语法和规范是否正确,不正确会提示文件名和你需要规范代码格式的命令,简单测试如下图:.
    php-cs-fixer pre-commit