• 简讯:韩国前总统朴槿惠一审被判24年有期徒刑 2018-08-16
  • 人民网评:走向大洋,呼唤现代化的中国海军 2018-08-16
  • 北京成立学生申诉处理委员会-地方新闻-时政频道-中工网 2018-08-16
  • 虽胜不足喜!鲁能一隐忧不治愈,恐高开低走 2018-08-16
  • 小鱼儿戴胡可帽子似贵妇 临睡之前表白妈妈嘴超甜 2018-08-16
  • “北京8分钟”融入人工智能 通过互联网与国人互动 2018-08-16
  • 四部门调整完善新能源汽车推广应用财政补贴政策 2018-08-15
  • 两男子在吉大美食城“百元找零”诈骗? 2018-08-12
  • 突破!郑鹏创中国队冬残奥会个人项目最好成绩 2018-08-12
  • 今年铜陵市将治理水土流失面积36平方公里 2018-08-11
  • 篮球投注技巧 2018-08-11
  • 威海马上就可以接种四价宫颈癌疫苗 附接种地点 2018-08-10
  • 德赫亚暗示博格巴,像我这样才能在曼联取得成功! 2018-08-10
  • 广州出台“红棉计划”吸引海外人才来穗创新创业 2018-08-10
  • 不敌吉林队 四川男篮赛季排名倒数第二收官 2018-08-10
  • Jsonnet-PHP v1.3.0 发布,支持 PHP 7 使用 Jsonnet

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

    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?:??http://www.rocksun.cn/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??[?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();
    ????}
    
    }

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

    本站文章除注明转载外,均为本站原创或编译?;队魏涡问降淖?,但请务必注明出处。
    转载请注明:文章转载自 七星彩票平台
    本文标题:Jsonnet-PHP v1.3.0 发布,支持 PHP 7 使用 Jsonnet
    IT技术书籍推荐:
    Python黑帽子:黑客与渗透测试编程之道
    Python黑帽子:黑客与渗透测试编程之道
    塞茨 (Justin Seitz) (作者), 孙松柏 (译者), 李聪 (译者), 润秋 (译者)
    本书是畅销书《Python 灰帽子—黑客与逆向工程师的 Python 编程之道》的姊妹篇,那本书一面市便占据计算机安全类书籍的头把交椅。本书由 Immunity 公司的高级安全研究员 Justin Seitz 精心撰写。作者根据自己在安全界,特别是渗透测试领域的几十年经验,向读者介绍了 Python 如何被用在黑客和渗透测试的各个领域,从基本的网络扫描到数据包捕获,从 Web 爬虫到编写 Burp 扩展工具,从编写木马到权限提升等。 作者在本书中的很多实例都非常具有创新和启发意义, 如 HTTP 数据中的图片检测、 基于 GitHub命令进行控制的??榛韭?、浏览器的中间人攻击技术、利用 COM 组件自动化技术窃取数据、通过进程监视和代码插入实现权限提升、通过向虚拟机内存快照中插入 shellcode 实现木马驻留和权限提升等。通过对这些技术的学习,读者不仅能掌握各种 Python 库的应用和编程技术,还能拓宽视野,培养和锻炼自己的黑客思维。读者在阅读本书时也完全感觉不到其他一些技术书籍常见的枯燥和乏味。