您的位置 首页 php

Jsonnet-PHP v1.3.0 发布 —— 支持 PHP 7 使用 Jsonnet

我们先看看 json net-PHP 的更新日志吧

1.3.0

1.2.0

– Update Lib JsonNet use v0.9.5.

– Add Function JsonNet::fmtFile.

– Add function JsonNet::fmtSnippet.

Google Jsonnet Tutorial

jsonnet语言,为我们最常使用的json对象赋予了新的生命力。使用jsonnet来描述json对象,可以在json对象中方便地使用变量\引用\循环等语法,甚至可以书写业务逻辑。

Install Jsonnet-PHP扩展

The pecl package is :

pecl install jsonnet

Input (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” }

}

}

Demo of PHP

JsonNet::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));

PHP Re Result

/usr/local/php/php-7.0.6-zts-debug/bin/php –re jsonnet

Extension [ <persistent> 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 [ < internal :JsonNet> function jsonnet_get_version ] {

}

Function [ <internal:JsonNet> function jsonnet_get_author ] {

}

}

Class es [1] {

Class [ <internal:JsonNet> class JsonNet ] {

– Constants [0] {

}

– Static properties [0] {

}

– Static methods [4] {

Method [ <internal:JsonNet> static public method evaluateFile ] {

– Parameters [1] {

Parameter #0 [ <required> $file_path ]

}

}

Method [ <internal:JsonNet> static public method evaluateSnippet ] {

– Parameters [1] {

Parameter #0 [ <required> $snippet_string ]

}

}

Method [ <internal:JsonNet> static public method fmtFile ] {

– Parameters [1] {

Parameter #0 [ <required> $file_path ]

}

}

Method [ <internal:JsonNet> static public method fmtSnippet ] {

– Parameters [1] {

Parameter #0 [ <required> $snippet_string ]

}

}

}

– Properties [0] {

}

– Methods [2] {

Method [ <internal:JsonNet, ctor> public method __construct ] {

}

Method [ <internal:JsonNet, dtor> 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();

}

}

文章来源:智云一二三科技

文章标题:Jsonnet-PHP v1.3.0 发布 —— 支持 PHP 7 使用 Jsonnet

文章地址:https://www.zhihuclub.com/150426.shtml

关于作者: 智云科技

热门文章

网站地图