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从入门到精通(第3版)
PHP从入门到精通(第3版)
明日科技 (作者)
《PHP从入门到精通(第3版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用PHP进行网络开发应该掌握的各方面技术。全书共分4篇25章,包括初识PHP、PHP环境搭建和开发工具、PHP语言基础、流程控制语句、字符串操作、正则表达式、PHP数组、PHP与Web页面交互、PHP与JavaScript交互、日期和时间、Cookie与Session、图形图像处理技术、文件系统、面向对象、PHP加密技术、MySQL数据库基础、phpMyAdmin图形化管理工具、PHP操作MySQL数据库、PDO数据库抽象层、ThinkPHP框架、Smarty模板技术、PHP与XML技术、PHP与Ajax技术、应用Smarty模板开发电子商务网站、应用ThinkPHP框架开发明日导航网等内容。书中所有知识都结合具体实例进行介绍,涉及的程序代码均附以详细的注释,可以使读者轻松领会PHP程序开发的精髓,快速提高开发技能。
  • 实拍重庆"僵尸车集中营"  警察蜀黍喊“你”来认领! 2019-04-24
  • 上合峰会与对外话语体系传播 2019-04-24
  • 那是当然。我国的两弹一星都是在公有制企业里搞出来的。 2019-04-24
  • 重走北上民主人士在沈阳活动之路 2019-04-24
  • 人家80年前就造航母,我们现在才造航母,基础不一样。 2019-04-23
  • 民俗博物馆多彩活动迎端午 2019-04-23
  • 暴雨中初二男生捡起挡路树枝 湿透衣服清理出车道 2019-04-23
  • 如实引用原帖文的是君子,篡改原帖文的不是人.......... 2019-04-23
  • 本文我也就是简单说说自己的看法,就算没有我文章里提到的那些纠纷及难度,从回收公司如何安排车辆到顾客家里回收就成问题.另外,总部建在哪,分布网点又建在哪难道工作 2019-04-22
  • 中澳男篮对抗赛收官 中国男篮红队终取一胜 2019-04-22
  • 高雅艺术进海淀创业园之合唱艺术赏析音乐会 2019-04-21
  • 九江市委书记林彬杨主持召开市委常委会议 对市县机构改革提了这些要求 2019-04-21
  • 新书《薛兆丰经济学讲义》在网红菜市场发布 萝卜白菜变身艺术品 2019-04-21
  • 为祝贺你们!为你们自豪,为你们骄傲——中国核电的创新者!这是“两弹一星”精神的延续,是“两弹一星”精神的发扬!有良心的中国人,更要感谢以毛泽东为首的老一辈无产阶 2019-04-20
  • 只要自然向前自己的文章,语言的方式个逻辑必然有障碍 2019-04-20
  • 992| 485| 614| 470| 647| 232| 812| 704| 898| 844|