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开发中的应用。
  • 不是从天上掉下来的,难道是从“文革”中走来的吗? 2019-02-18
  • 习近平点出“一带一路”取得积极成果的关键原因 2019-02-18
  • 2018美国书展在纽约贾维茨国际展览中心举行 2019-02-18
  • 毛泽东说帝国主义都是纸老虎。是有社会基础的 2019-02-17
  • 里约奥运门票滞销 目前待售门票超170万 2019-02-17
  • VAR技术再抢镜 瑞典队1-0点杀韩国 2019-02-17
  • 端午小长假我市旅游总收入同比增20.5% 2019-02-16
  • 杜克当选新一任哥伦比亚总统 2019-02-16
  • 湖州:重点物流项目建设加速 2019-02-16
  • 世界杯期间杭州要严查酒驾 这些地方是重点区域 2019-02-15
  • 农业农村部发力打造休闲农业和乡村旅游精品 2019-02-15
  • 传说中的自由飞“翔” 当厕所被狂风吹上天 2019-02-15
  • 诺奖丑闻主角或面临6年监禁 2019-02-15
  • 广东恒仁医疗产业投资发展有限公司100%股权转让 2019-02-14
  • 深入理解我国社会主要矛盾的转化 2019-02-14
  • 485| 583| 821| 404| 748| 392| 90| 553| 685| 496|