JSONRPC 1.0.0

Markers

Table of Contents

Client.php 1
Encoder.php 3
Helper/Charset.php 5
Helper/Parser.php 9
Helper/Serializer.php 1
Request.php 3
Server.php 6

Client.php

Type Line Description
TODO 16 the JSON proposed RFC states that when making json calls, we should specify an 'accept: application/json' http header. Currently, we either do not output an 'accept' header or specify 'any' (in curl mode)

Encoder.php

Type Line Description
TODO 12 implement an interface
TODO 12 add class constants for the options values
TODO 26 add support for Request objects

Charset.php

Type Line Description
TODO 11 implement an Interface
TODO 79 make use of iconv when it is available and mbstring is not
TODO 79 support aliases for charset names, eg ASCII, LATIN1, ISO-88591 (see f.e. polyfill-iconv for a list), but then take those into account as well in other methods, ie. isValidCharset)
TODO 79 when converting to ASCII, allow to choose whether to escape the range 0-31,127 (non-print chars) or not
TODO 79 allow picking different strategies to deal w. invalid chars? eg. source in latin-1 and chars 128-159

Parser.php

Type Line Description
TODO 24 add support for __jsonclass__
TODO 24 add support for json-rpc 1.1 ? see: https://jsonrpc.org/historical/json-rpc-1-1-wd.html and https://jsonrpc.org/historical/json-rpc-1-1-alt.html
TODO 24 add a ParseValue method ?
TODO 24 add a Parse method (same as XMLParser) ?
TODO 24 add a constructor which can be used to set default options
TODO 24 introduce $responseClass, to allow subclasses to produce different types of response?
TODO 65 checks missing: - no extra members in request
TODO 189 checks missing: - no extra members in response
TODO 516 should we return 'UTF-8' or '' by default?

Serializer.php

Type Line Description
TODO 15 implement a CharsetEncoderAware trait (as soon as there is a 2nd user of Charset)

Request.php

Type Line Description
TODO 188 move more of this parsing into the parent class (split method in smaller ones)
TODO 188 throw when $returnType == 'xmlrpcvals', 'epivals' or 'xml'
TODO 188 we should check that the received Id is the same s the one sent

Server.php

Type Line Description
TODO 20 implement dispatching of multicall requests, json way
TODO 20 test system.XXX methods, with special care to multicall
TODO 20 support 'notification' calls, i.e. if id is null, echo back nothing
TODO 20 should we override all parent's methods related to multicall which do not work for us?
TODO 81 allow to (optionally) send comments as top-level json element, since 99.99% of json parsers will barf on js comments...
TODO 648 if building json-rpc-only webservers, you should at least undeclare the xml-rpc capability: unset($outAr['xmlrpc']);

Search results