Jsonnet-PHP Jsonnet 的 PHP 扩展开源项目

我要开发同款
匿名用户2015年06月01日
52阅读
开发技术C/C++
所属分类Web应用开发、JSON/BSON开发包
授权协议Apache-2.0

作品详情

JsonNet-PHP是GoogleJsonnet 对 PHP的支持扩展.

pecl: https://pecl.php.net/package/jsonnet

github: https://github.com/Neeke/Jsonnet-PHP

gitee:https://gitee.com/neeke/Jsonnet-PHP

GoogleJsonnetTutorial

jsonnet语言,使用其提供的基本函数功能,拥有了强大的对象模型,可以从混合的描述中描绘出对象。这些例子都是有趣的,虽然有点不自然,请不要从现有的例子来限制我们的思维,或以为jsonnet只能作这些特定的应用。注意:注意jsonnetunparsesJSON的一种简单方法。特别是,它按字母顺序排序的输出对象领域。这是自然的和兼容的JSON,因为如果顺序是有意义的,对一个数组应该用来代替一个物体。同时,unparsingJSON使用规范排序的字段名可以使用diff比较输出。然而,例如输出本页已被手动重新排序,以允许更容易的视觉对比给定输入。输出的空格也被调整以使它更适合放在页面。

InstallJsonnet-PHP扩展The pecl package is :  https://pecl.php.net/package/jsonnetpecl install jsonnetInput(Jsonnet){    cocktails: {        // Ingredient quantities are in fluid ounces.        "Tom Collins": {            ingredients: [                { kind: "Farmers Gin", qty: 1.5 },                { kind: "Lemon", qty: 1 },                { kind: "Simple Syrup", qty: 0.5 },                { kind: "Soda", qty: 2 },                { kind: "Angostura", qty: "dash" },            ],            garnish: "Maraschino Cherry",            served: "Tall",        },        Manhattan: {            ingredients: [                { kind: "Rye", qty: 2.5 },                { kind: "Sweet Red Vermouth", qty: 1 },                { kind: "Angostura", qty: "dash" },            ],            garnish: "Maraschino Cherry",            served: "Straight Up",        },    }}Output(JSON){    "cocktails": {        "Tom Collins": {            "ingredients": [                { "kind": "Farmers Gin", "qty": 1.5 },                { "kind": "Lemon", "qty": 1 },                { "kind": "Simple Syrup", "qty": 0.5 },                { "kind": "Soda", "qty": 2 },                { "kind": "Angostura", "qty": "dash" }            ],            "garnish": "Maraschino Cherry",            "served": "Tall"        },        "Manhattan": {            "ingredients": [                { "kind": "Rye", "qty": 2.5 },                { "kind": "Sweet Red Vermouth", "qty": 1 },                { "kind": "Angostura", "qty": "dash" }            ],            "garnish": "Maraschino Cherry",            "served": "Straight Up"        }    }}DemoofPHPJsonNet::evaluateFile('bar_menu.1.jsonnet');    $Snippet = '    {        cocktails: {            // Ingredient quantities are in fluid ounces.            "Tom Collins": {                ingredients: [                    { kind: "Farmers Gin", qty: 1.5 },                    { kind: "Lemon", qty: 1 },                    { kind: "Simple Syrup", qty: 0.5 },                    { kind: "Soda", qty: 2 },                    { kind: "Angostura", qty: "dash" },                ],                garnish: "Maraschino Cherry",                served: "Tall",            },            Manhattan: {                ingredients: [                    { kind: "Rye", qty: 2.5 },                    { kind: "Sweet Red Vermouth", qty: 1 },                    { kind: "Angostura", qty: "dash" },                ],                garnish: "Maraschino Cherry",                served: "Straight Up",            },        }    }    ';    var_dump(JsonNet::evaluateSnippet($Snippet));PHPReResult/usr/local/php/php-7.0.6-zts-debug/bin/php --re jsonnetExtension [  extension #40 JsonNet version v1.3.0 ] {  - Constants [2] {    Constant [ string JSONNET_PHP_VERSION ] { v1.3.0 }    Constant [ string JSONNET_PHP_AUTHOR ] { Chitao.Gao  [ neeke@php.net ] }  }  - Functions {    Function [  function jsonnet_get_version ] {    }    Function [  function jsonnet_get_author ] {    }  }  - Classes [1] {    Class [  class JsonNet ] {      - Constants [0] {      }      - Static properties [0] {      }      - Static methods [4] {        Method [  static public method evaluateFile ] {          - Parameters [1] {            Parameter #0 [  $file_path ]          }        }        Method [  static public method evaluateSnippet ] {          - Parameters [1] {            Parameter #0 [  $snippet_string ]          }        }        Method [  static public method fmtFile ] {          - Parameters [1] {            Parameter #0 [  $file_path ]          }        }        Method [  static public method fmtSnippet ] {          - Parameters [1] {            Parameter #0 [  $snippet_string ]          }        }      }      - Properties [0] {      }      - Methods [2] {        Method [  public method __construct ] {        }        Method [  public method __destruct ] {        }      }    }  }}CodeTips<?php/** * @author neeke@php.net * Date: 18/3/29 下午7:51 */const JSONNET_PHP_VERSION = 'v1.3.0';const JSONNET_PHP_AUTHOR  = 'neeke@php.net';const CODE_SUCCESS = 1000;const CODE_ERROR   = 900;/** * @return string */function jsonnet_get_version(){    return JSONNET_PHP_VERSION;}function jsonnet_get_author(){    return JSONNET_PHP_AUTHOR;}class JsonNet{    public function __construct()    {        #JsonNet init    }    public function __destruct()    {        #JsonNet destroy    }    /**     * @param $file_path     *     * @return array     * @throws Exception     */    static public function evaluateFile($file_path)    {        throw new Exception('JsonNet::evaluateFile #error', CODE_ERROR);        return array();    }    /**     * @param $snippet_string     *     * @return array     * @throws Exception     */    static public function evaluateSnippet($snippet_string)    {        throw new Exception('JsonNet::evaluateSnippet #error', CODE_ERROR);        return array();    }    /**     * @param $file_path     *     * @return array     * @throws Exception     */    static public function fmtFile($file_path)    {        throw new Exception('JsonNet::fmtFile #error', CODE_ERROR);        return array();    }    /**     * @param $snippet_string     *     * @return array     * @throws Exception     */    static public function fmtSnippet($snippet_string)    {        throw new Exception('JsonNet::fmtSnippet #error', CODE_ERROR);        return array();    }}
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论