> Can you provide an use case and code example of how that would look? Sure.
Here's how an ElasticSearch query currently looks in PHP: $esQuery = new \StdClass; $esQuery->query = new \StdClass; $esQuery->query->term = new \StdClass; $esQuery->query->term->name = 'beer'; $esQuery->size = 1; // OR $esQuery = (object)array( "query" => (object)array( "term" => (object)array( "name" => "beer" ) ), "size" => 1 ); …and here's how it could look with the proposed syntax: <?php $esQuery = { "query" : { "term" : { "name": "beer" } }, "size" : 1 }; …and here's how I'd use curl to ensure that the query I'm issuing does in fact work with ElasticSearch: $ curl http://localhost:9200/gimmebar/assets/_search?pretty=1 -d'{ > "query" : { > "term" : { > "name": "beer" > } > }, > "size" : 1 > }' Even considering the `(object)array(` syntax, it's much easier to work with an external query (as shown with curl), if we have a (nearly) JSON-compatible syntax in PHP. Note that I *could* have written the PHP definition of $esQuery with the proposed syntax and non-JSON compatible syntax (single quotes, for example), but I chose to write it with double quotes because I knew I might also want to pass it to curl. Realistically, "beer" would be in a variable (maybe `{"term": {"name": $term}}`), but replacing just the variables is certainly much easier than translating the `new \StdClass` syntax. The argument for right-hand-side assignments being allowed in the proposed syntax (such as in `{'time': time()}`) is still valid because I expect this syntax will be used both for interoperating with third party services (as above), but also generally for object and array creation without a care about third parties. S -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php