V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ben548
V2EX  ›  PHP

php7 的文档中, JSON 扩展已经被 JSOND 取代是什么意思?

  •  
  •   ben548 · 2015-12-05 14:03:03 +08:00 · 6039 次点击
    这是一个创建于 3270 天前的主题,其中的信息可能已经有所发展或是发生改变。

    http://php.net/manual/zh/migration70.incompatible.php , php7 文档中不向后兼容的变更提到的 JSON 扩展已经被 JSOND 取代, JSOND 是什么鬼?

    5 条回复    2015-12-05 15:07:29 +08:00
    mcfog
        1
    mcfog  
       2015-12-05 14:12:13 +08:00   ❤️ 2
    详情

    https://wiki.php.net/rfc/jsond
    https://bugs.php.net/bug.php?id=63520

    简单来说, JSON 的协议( http://www.json.org/license.html )被认为不属于自由的开源协议,导致很多源当中的 PHP 都无法内置 json 模块(需要额外安装,比如`apt-get install php5-json`)

    参考
    https://wiki.debian.org/qa.debian.org/jsonevil

    八卦
    Douglas 是 JSON 发明人,蝴蝶书作者
    https://en.wikipedia.org/wiki/Douglas_Crockford#.22Good.2C_not_Evil.22
    和社区吵的不要不要的
    ben548
        2
    ben548  
    OP
       2015-12-05 14:24:53 +08:00
    @mcfog 什么意思?不是自 PHP 5.2.0 起, JSON 扩展就默认内置并编译进了 PHP 吗?为什么会出现一个 jsond ? jsond 和 json 有什么区别啊?文献太多太长了。。。
    mcfog
        3
    mcfog  
       2015-12-05 14:39:17 +08:00
    @ben548 JSON 原作者定的协议当中有一句被社区认为违反自由原则的描述( GNU 、 debian 、 fedora 、红帽等等均如此认定)

    The Software shall be used for Good, not Evil.

    所以这些代码是无法进入多数主流发行版的软件源里的,默认配置的源里都不会有 JSON 库的代码的, PHP 也一样,即使默认的编译配置是带 json 的,但放到源里的版本不能包括 JSON

    所以有人写了个 jsond 来取代 json
    Khlieb
        4
    Khlieb  
       2015-12-05 15:01:56 +08:00 via Android
    @mcfog 谁能保证能“ not Evil ”?!
    Zzzzzzzzz
        5
    Zzzzzzzzz  
       2015-12-05 15:07:29 +08:00
    从来没额外安装过 php5-json, 刚看了下发现原来 php5-common 依赖 php5-json, 只要装到 php 就会自动把 php5-json 给装了, 只想说城会玩.....
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2755 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 08:46 · PVG 16:46 · LAX 00:46 · JFK 03:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.