2017年6月

语义化版本 2.0.0

摘要

版本格式:主版本号.次版本号.修订号,版本号递增规则如下:

  1. 主版本号:当你做了不兼容的 API 修改,
  2. 次版本号:当你做了向下兼容的功能性新增,
  3. 修订号:当你做了向下兼容的问题修正。

先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。

简介

在软件管理的领域里存在着被称作“依赖地狱”的死亡之谷,系统规模越大,加入的套件越多,你就越有可能在未来的某一天发现自己已深陷绝望之中。

在依赖高的系统中发布新版本套件可能很快会成为恶梦。如果依赖关系过高,可能面临版本控制被锁死的风险(必须对每一个相依套件改版才能完成某次升级)。而如果依赖关系过于松散,又将无法避免版本的混乱(假设兼容于未来的多个版本已超出了合理数量)。当你专案的进展因为版本相依被锁死或版本混乱变得不够简便和可靠,就意味着你正处于依赖地狱之中。

- 阅读剩余部分 -

PHP PSR代码标准

PSR-0 自动加载规范

下面描述了关于自动加载器特性强制性要求:

强制性

  • 一个完全标准的命名空间必须要有以下的格式结构\<Vendor Name>\(<Namespace>\)*<Class Name>
  • 命名空间必须有一个顶级的组织名称 ("Vendor Name").
  • 命名空间中可以根据情况使用任意数量的子空间
  • 从文件系统中加载源文件的时,命名空间中的分隔符将被映射为 DIRECTORY_SEPARATOR
  • 命名空间中的类名中的_没有特殊含义,也将被作为DIRECTORY_SEPARATOR对待.
  • 标准的命名空间和类从文件系统加载源文件时只需要加上.php后缀即可
  • 组织名,空间名,类名都可以随意使用大小写英文字符的组合

- 阅读剩余部分 -

PHP注释规范

通用注释写法

一、文件的注释通用样例(普通程序文件,类文件,函数文件,变量定义文件)

/**
 * XXXXX的文件
 * 
 * 功能1: xxx
 * 功能2: xxx
 *
 * @file        $Source: /home/doc/php开发注释规范.md  $
 * @package     core
 * @author      Joy <anzhengchao@gmail.com>
 * @version     $Id: php开发注释规范.txt,v 1.1 2014/03/04 20:37:46 Joy Exp $
 * @link        http://www.joychao.cc
 */

- 阅读剩余部分 -

什么是Unix时间戳(_Unix timestamp_)?

Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。Unix时间戳不仅被使用在Unix 系统、类Unix系统中,也在许多其他操作系统中被广告采用。

目前相当一部分操作系统使用32位二进制数字表示时间。此类系统的Unix时间戳最多可以使用到格林威治时间2038年01月19日03时14分07秒(二进制:_01111111 11111111 11111111 11111111_)。其后一秒,二进制数字会变为_10000000 00000000 00000000 00000000_,发生溢出错误,造成系统将时间误解为1901年12月13日20时45分52秒。这很可能会引起软件故障,甚至是系统瘫痪。使用64位二进制数字表示时间的系统(最多可以使用到格林威治时间292,277,026,596年12月04日15时30分08秒)则基本不会遇到这类溢出问题。

- 阅读剩余部分 -