龙空技术网

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

罗哥软件开发 181

前言:

此刻咱们对“jsonnet c 基类”大概比较注意,同学们都需要学习一些“jsonnet c 基类”的相关资讯。那么小编在网络上收集了一些对于“jsonnet c 基类””的相关资讯,希望小伙伴们能喜欢,你们一起来学习一下吧!

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

1.3.0

- Update Lib JsonNet use v0.10.0.

- Support PHP 7.

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 ] {

}

}

- Classes [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 c 基类