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

栏目: 软件资讯 发布于: 2018-03-30 12:50:02

新疆25选7现场 www.1jaa3.cn JsonNet-PHP 是 Google?Jsonnet?对?PHP的支持扩展.

Change Log:?

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.php.net/package/jsonnet

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??[[email protected]?]?}
??}

??-?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
/**
?*[email protected][email protected]
?*?Date:?18/3/29?下午7:51
?*/

const?JSONNET_PHP_VERSION?=?'v1.3.0';
const?JSONNET_PHP_AUTHOR??=?'[email protected]';

const?CODE_SUCCESS?=?1000;
const?CODE_ERROR???=?900;

/**
?*[email protected]?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
????}

????/**
?????*[email protected]?$file_path
?????*
?????*[email protected]?array
?????*[email protected]?Exception
?????*/
????static?public?function?evaluateFile($file_path)
????{
????????throw?new?Exception('JsonNet::evaluateFile?#error',?CODE_ERROR);

????????return?array();
????}

????/**
?????*[email protected]?$snippet_string
?????*
?????*[email protected]?array
?????*[email protected]?Exception
?????*/
????static?public?function?evaluateSnippet($snippet_string)
????{
????????throw?new?Exception('JsonNet::evaluateSnippet?#error',?CODE_ERROR);

????????return?array();
????}

????/**
?????*[email protected]?$file_path
?????*
?????*[email protected]?array
?????*[email protected]?Exception
?????*/
????static?public?function?fmtFile($file_path)
????{
????????throw?new?Exception('JsonNet::fmtFile?#error',?CODE_ERROR);

????????return?array();
????}

????/**
?????*[email protected]?$snippet_string
?????*
?????*[email protected]?array
?????*[email protected]?Exception
?????*/
????static?public?function?fmtSnippet($snippet_string)
????{
????????throw?new?Exception('JsonNet::fmtSnippet?#error',?CODE_ERROR);

????????return?array();
????}

}

【声明】文章转载自:开源中国社区 [//www.oschina.net]

本站文章除注明转载外,均为本站原创或编译?;队魏涡问降淖?,但请务必注明出处。
转载请注明:文章转载自 新疆25选7现场
本文标题:Jsonnet-PHP v1.3.0 发布,支持 PHP 7 使用 Jsonnet
IT技术书籍推荐:
细说PHP(精要版)
细说PHP(精要版)
高洛峰 (作者), LAMP兄弟连 (编者)
PHP是开发Web应用系统最理想的工具,拥有易于使用、功能强大、成本低廉、安全性高、开发速度快且执行灵活等优点?!断杆礟HP(第2版)》自出版以来,销售一路在同类书籍中领先,已成为PHP学习者首选的工具书。为了可以让读者携带方便及更精准地掌握PHP的重点、要点,同时能使之作为大学计算机系PHP教材普及,特别推出《细说PHP精要版》。本书是以《细说PHP(第2版)》为基础,提取出精华内容,都是PHP开发中必须需要掌握的技术点。全书以实用为目标设计,包含PHP开发中必备的各项技术,对已列出的每一个知识点都进行了深入详细的讲解,并附有大量的经典实例代码,图文并茂,并且侧重介绍了PHP的相关技术在实际Web开发中的应用。
  • 以“党建”推动脱贫攻坚前进 2018-12-11
  • 是什么时候颠覆了“文艺应当为千千万万劳动人民服务”这一社会主义文艺路线的?!那一股“伤痕潮”功不可灭,可惜的是“旧伤痕”已经烟灭,取代其的是“挖根潮”。留给工农 2018-12-11
  • 娜扎谈分手张翰“想不起来了” 安全感全来自妈妈 2018-12-10
  • 蓝天保卫战强化督查:发现涉气环境问题187个 2018-12-10
  • 人民日报评论员:弘扬“上海精神” 破解时代难题 2018-12-10
  • 问题是现在人民是受这个社会的迫害者,没理由参与在其中。 2018-12-10
  • 超出你想象  大胡子“绣郎”斩获刺绣界“奥斯卡”  2018-12-09
  • 贸易摩擦升级 美科技股16日收跌 2018-12-09
  • 中央纪委公开曝光八起违反中央八项规定精神问题 2018-12-09
  • 【両会】第13期全人代専門委員会のメンバー 憲法に宣誓 2018-12-08
  • 冯翠玲:把党的声音传递给“国际大家庭” 2018-12-08
  • 权威!个税起征点提至每月5000元,财政部最新解释来了 2018-12-08
  • 广灵县筹建经济技术开发区 2018-12-08
  • 状态差被郎平退货?丁霞归队仍是国内最好二传 2018-12-07
  • 习近平:携手追寻中澳发展梦想 并肩实现地区繁荣稳定 2018-12-07
  • 432| 578| 140| 752| 801| 209| 836| 817| 872| 692|