zoukankan      html  css  js  c++  java
  • Jsonnet-PHP v1.3.0 发布,支持 PHP 7 使用 Jsonnet

      JsonNet-PHP 是 Google Jsonnet 对 PHP的支持扩展.

      pecl: http://pecl.php.net/package/jsonnet

      github: https://github.com/Neeke/Jsonnet-PHP

      gitee: https://gitee.com/neeke/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://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 [ 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 [ function jsonnet_get_version ] {

      }

      Function [ function jsonnet_get_author ] {

      }

      }

      - Classes [1] {

      Class [ class JsonNet ] {

      - Constants [0] {

      }

      - Static properties [0] {

      }

      - Static methods [4] {

      Method [ static public method evaluateFile ] {

      - Parameters [1] {

      Parameter #0 [ $file_path ]

      }

      }

      Method [ static public method evaluateSnippet ] {

      - Parameters [1] {

      Parameter #0 [ $snippet_string ]

      }

      }

      Method [ static public method fmtFile ] {

      - Parameters [1] {

      Parameter #0 [ $file_path ]

      }

      }

      Method [ static public method fmtSnippet ] {

      - Parameters [1] {

      Parameter #0 [ $snippet_string ]

      }

      }

      }

      - Properties [0] {

      }

      - Methods [2] {

      Method [ <internal:jsonnet, ctor="">public method __construct ] {

      }

      Method [ <internal:jsonnet, dtor="">public method __destruct ] {

      }

      }

      }

      }

      }

      CodeTips

      

      /**

      * @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();

      }

      }

      (编辑:雷林鹏 来源:网络)

  • 相关阅读:
    mysql BETWEEN操作符 语法
    mysql IN操作符 语法
    mysql LIKE通配符 语法
    mysql TOP语句 语法
    mysql DELETE语句 语法
    mysql Update语句 语法
    mysql INSERT语句 语法
    mysql ORDER BY语句 语法
    mysql OR运算符 语法
    mysql AND运算符 语法
  • 原文地址:https://www.cnblogs.com/pengpeng1208/p/9577282.html
Copyright © 2011-2022 走看看