From: Michael Wallner Date: Wed, 19 Jan 2022 19:33:50 +0000 (+0100) Subject: basic API docs X-Git-Tag: v0.1.0~20 X-Git-Url: https://git.m6w6.name/?a=commitdiff_plain;h=3870cfa96caf92c4e7852b91154f747857bf7620;p=awesomized%2Fext-ion basic API docs --- diff --git a/.gitignore b/.gitignore index 37a2942..fa3ee0a 100644 --- a/.gitignore +++ b/.gitignore @@ -40,9 +40,10 @@ tests/**/*.log tests/**/*.sh tests/**/*.db tests/**/*.mem -tests/Timestamp/ tmp-php.ini *.dep *.gcda *.gcno .idea +docs/vendor +docs/composer.* diff --git a/README.md b/README.md index fbf1db5..66e6d4e 100644 --- a/README.md +++ b/README.md @@ -1,42 +1,42 @@ -# ext-ion +# pecl/ion +## About: PHP extension wrapping [amzn/ion-c](https://github.com/amzn/ion-c). See the [Amazon ION specification](https://amzn.github.io/ion-docs/). -## License +## License: [BSD-2-Clause](https://github.com/awesomized/ext-ion/blob/master/LICENSE); see [spdx.org](https://spdx.org/licenses/BSD-2-Clause.html). -## Install -### Dependencies -#### Required +## Installation: + +[PECL](https://pecl.php.net) and [PHARext](https://pharext.org) is WIP. + +### Dependencies: +#### Required: * PHP-8.1 * ext/date (standard) * ext/spl (standard) -#### Optional +#### Optional: * [amzn/ion-c](https://github.com/amzn/ion-c) (bundled as git submodule) -### Trinity +### Trinity: ```shell phpize ./configure make # -j$(nproc) sudo make install # INSTALL=install ``` -### Try with Docker +### Try with Docker: ```shell docker build -t php-ion docker run --rm php-ion -r 'echo ion\serialize(ion\Symbol\Table\PHP());' ``` -### PECL -> WIP -### PHARext -> WIP -## IDE Stub +## Editor Stub: See [ion.stub.php](https://github.com/awesomized/ext-ion/blob/master/ion.stub.php). -## Known Issues +## Known Issues: Due to private internal state of ion-c's readers and writers, instances of the following PHP classes cannot be cloned: * ion\Reader\Reader diff --git a/docs/html/.htaccess b/docs/html/.htaccess new file mode 100644 index 0000000..aa71b43 --- /dev/null +++ b/docs/html/.htaccess @@ -0,0 +1,11 @@ +Options -Indexes +MultiViews +FollowSymLinks +DirectorySlash Off + +RewriteEngine On +RewriteCond %{REQUEST_FILENAME} -d +RewriteRule ^(.+)$ $1.html [L] + + + ForceType text/x-php + SetHandler default-handler + diff --git a/docs/html/.nojekyll b/docs/html/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/docs/html/AUTHORS b/docs/html/AUTHORS new file mode 100644 index 0000000..67bbd91 --- /dev/null +++ b/docs/html/AUTHORS @@ -0,0 +1 @@ +Michael Wallner diff --git a/docs/html/LICENSE b/docs/html/LICENSE new file mode 100644 index 0000000..816ff40 --- /dev/null +++ b/docs/html/LICENSE @@ -0,0 +1,23 @@ +Copyright (c) 2013, Michael Wallner . +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + diff --git a/docs/html/VERSION b/docs/html/VERSION new file mode 100644 index 0000000..cd5ac03 --- /dev/null +++ b/docs/html/VERSION @@ -0,0 +1 @@ +2.0 diff --git a/docs/html/favicon.ico b/docs/html/favicon.ico new file mode 100644 index 0000000..d28351c Binary files /dev/null and b/docs/html/favicon.ico differ diff --git a/docs/html/index.css b/docs/html/index.css new file mode 100644 index 0000000..c0204cd --- /dev/null +++ b/docs/html/index.css @@ -0,0 +1,317 @@ +html { + font-size: 18px; +} +html, body{ + height: 100%; + min-height: 100%; +} +body, code { + font-family: Inconsolata, 'Inconsolata Awesome', 'Andale Mono', Monaco, 'Courier New', Courier, monospace; +} +body { + line-height: 1.5; + font-size: 1.1em; + margin: 0; + padding: 0; + color: #3f3f3f; +} + +div.page { + margin: auto; +/* max-width: 1200px; +*/ min-height: 100%; + padding-bottom: 5em; + box-shadow: 0 0 20px 10px rgba(0, 0, 0, 0.5); +} + +div.page>* { + margin-left: 1em; +} +div.page>footer { + margin-left: 0; +} +div.page>ul, div.page>div>ul { + margin-left: 2em; +} + +.sidebar { + float: right; + background: #f0f0f0; + border-bottom-left-radius: 10px; + padding: 0; + width: auto; + min-width: 200px; + padding-right: 1em; + padding-bottom: 1em; + margin-bottom: 1em; +} +.sidebar>ul { +} +.sidebar ul { + margin-left: 1em; + margin-top: .5em; + margin-bottom: 0; + padding: 0; + list-style-type: none; +} + +.sidebar .edit { + display: block; + position: relative; + top: 2em; + right: 0; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + text-decoration: none; + font-weight: bold; + text-shadow: 0 0 5px red; + float: right; +} + +.sidebar .edit a { + color: white !important; +} +code { + border-radius: 2px; + padding: 0px 2px 2px 2px; + background: #f0f0f0; + color: #606060; + box-shadow: 0 0 1px #999; +} + +code code { + display: inline; + padding: 0; + background: transparent; + border: none; + box-shadow: none; +} + +pre>code { + display: inline-block; + padding: 1em; + min-width: 50%; + line-height: 1.2; +} + +pre>code, pre>code code { + background: #333; + color: #eee; +} + +p, pre, table, dl { + margin: 1em 2em; + margin-left: 2em !important; +} + +pre>code, table, dl { + margin-bottom: 2em !important; +} + +li>p { + margin: 1em 0; +} + +blockquote { + border-top: 1px solid #800000; + border-bottom: 1px solid #800000; + background: #ffe4e1; + margin: 2em 0 !important; +} + +ul { + margin-top: 1em; + margin-bottom: 2em; +} +ol { + list-style-type: none; +} +ol ul { + margin-top: 0; + margin-bottom: 0; +} +ol li { + margin-bottom: 0; +} +ol>li { + font-weight: bold; + margin-bottom: .5em; +} +ol>li>* { + font-weight: normal; +} +li { + margin-bottom: .5em; +} +a, h1 code>a { + color: #2f4f4f; +} +a:hover { + text-decoration: none; +} +a[href^="http:"]:after, a[href^="https:"]:after { + content: " ⬈"; +} + +a.permalink { + position: relative; + top: 0; + right: 0; + color: #999999; + opacity: 0.25; +} + +.var { + color: #800000; +} +.constant { + color: #2e8b57; +} + +h1, li h3, th, footer { + background: #708090; + color: #f5f5dc; +} + +h1, footer { + margin: 0; +/* max-width: 1200px; +*/ padding: 1em; +} + +h1 { + line-height: 1.5; + margin-left: 0 !important; + padding-left: 2em; +} +h1 code { + font-weight: normal; + font-size: .9em; + line-height: 1.33; +} +h1 a.permalink { + left: -.8em; + margin-right: -.6em; +} + +li h3 { + border-radius: 4px; + display: inline-block; + width: auto; + padding: .2em; + margin: .5em 0 0 0; +} + +div.page>h3, div.page>div>h3 { + margin-left: 1.25em; +} +div.page>h4, div.page>div>h4 { + margin-left: 1.5em; +} +div.page>h5, div.page>div>h5 { + margin-left: 1.75em; +} +div.page>h6, div.page>div>h6 { + margin-left: 2em; +} + +h1 .constant, pre>code .consant, li h3 .constant { + color: #98fb98; +} + +h1 .var, pre>code .var, li h3 .var { + color: #f4a460; +} +h1 { + font-size: 125%; +} +h2 { + font-size: 120%; +} +h3 { + font-size: 110%; +} +h4 { + font-size: 100%; +} +footer a, h1 a, pre>code a, li h3 a { + color: #b0e0e6; +} +li h3 { +} +li h3 a { + text-decoration: none; +} +li h3 a:hover { + text-decoration: underline; +} + +#disqus_thread { + margin-top: 8em; + margin-right: 2em; +} +#disqus_activator { + margin: auto; + width: 80%; + padding: 1em; + background-color: slategrey; + color: white; + font-size: 1em; + font-weight: bold; + border: 0; + border-radius: 2px; + box-shadow: 0 0 4px #999; +} + +footer { + font-size: smaller; + text-align: center; + clear: both; + position: fixed; + bottom: 0; + width: 100%; + padding: 0; + transition: margin-bottom 2s ease 0.1s; +} +footer.hidden { + margin-bottom: -10em; + transition: margin-bottom 2s ease 0.1s; +} + +footer ul { + margin: 0; + padding: 1em 0; +} + +footer li { + list-style-type: none; + display: inline-block; + margin: 0 1em; +} + +footer a { + text-decoration: none; +} + +footer a:hover { + text-decoration: underline; +} + +table { + border-collapse: collapse; +} +th, td { + padding: .4em; + border-bottom: 1px solid rgba(112, 128, 144, 0.1); +} +dt { + font-weight: bold; + margin-top: 1em; +} +dd { + line-height: 1.33; + margin-left: 1em; +} +h1, footer, table, .sidebar, pre>code, li h3 { + box-shadow: 0 0 4px #708090; +} diff --git a/docs/html/index.html b/docs/html/index.html new file mode 100644 index 0000000..4ab5df2 --- /dev/null +++ b/docs/html/index.html @@ -0,0 +1,71 @@ + + + + + + mdref + + + + + + + + + + + +
+ + + +

mdref

+ + +

+ pecl/ion

+

PHP extension wrapping amzn/ion-c. +See the Amazon ION specification.

+
+ +
+ + + + + + +
+ + diff --git a/docs/html/index.js b/docs/html/index.js new file mode 100644 index 0000000..5124ffe --- /dev/null +++ b/docs/html/index.js @@ -0,0 +1,250 @@ +"use strict"; + +$(function() { + var mdref = { + log: function log() { + console.log.apply(console, arguments); + }, + is_constant: function is_constant(s) { + s = s.replace(/v\d+(_\d+)?$/, ""); + if (s.length < 2) { + return false; + } + return s.toUpperCase(s) === s; + }, + is_variable: function is_variable(s) { + return s.substring(0,1) === "$"; + }, + type: function type(s, nn) { + var i, j, t; + // mdref.log("type", s); + // nothing + if (!s.match(/[a-zA-Z]/)) { + return; + } + + switch (s) { + // types + case "void": + case "bool": + case "int": + case "float": + case "string": + case "resource": + case "array": + case "object": + case "callable": + case "mixed": + // Zend/SPL + case "stdClass": + case "Exception": + case "ErrorException": + case "RuntimeException": + case "UnexpectedValueException": + case "DomainException": + case "InvalidArgumentException": + case "BadMethodCallException": + case "Closure": + case "Generator": + case "Countable": + case "Serializable": + case "Traversable": + case "Iterator": + case "IteratorAggregate": + case "RecursiveIterator": + case "ArrayAccess": + case "ArrayObject": + case "ArrayIterator": + case "RecursiveArrayIterator": + case "SeekableIterator": + case "SplObserver": + case "SplSubject": + case "SplObjectStorage": + case "JsonSerializable": + return ""; + + // keywords + case "is": + if (nn !== "H1") { + return; + } + case "extends": + case "implements": + if (nn === "H1") { + return "
 "; + } + case "class": + case "enum": + case "interface": + case "namespace": + case "public": + case "protected": + case "private": + case "static": + case "final": + case "abstract": + case "self": + case "parent": + // phrases + case "Optional": + case "optional": + return ""; + } + + // class members + if (-1 !== (i = s.indexOf("::"))) { + t = s.substring(i+2); + if (!mdref.is_constant(t) && !mdref.is_variable(t)) { + // methods + return ""; + } + } + if (-1 !== (j = s.lastIndexOf("\\")) && s.substr(j+1,1) !== "n") { + t = s.substring(j+1); + if (!mdref.is_constant(t) || s.match(/\\/g).length <= 1) { + return ""; + } + return ""; + } + + switch (s.toLowerCase()) { + // variables + default: + if (!mdref.is_variable(s)) { + break; + } + // special constants + case "null": + case "true": + case "false": + return ""; + } + + // constants + if (mdref.is_constant(s)) { + return ""; + } + }, + wrap: function wrap(n, nn) { + var $n = $(n) + var a = []; + + $n.text().split(/([^a-zA-Z0-9_\\\$:]+)/).forEach(function(v) { + var t; + + if ((t = mdref.type(v.replace(/:$/, ""), nn))) { + a.push($(t).text(v)); + } else if (a.length && a[a.length-1].nodeName === "#text") { + /* if we already have a text node and the next is also gonna be a text + * node, then join them, becuase chrome v30+ or something eats whitespace + * for breakfast, lunch and dinner! + */ + a[a.length-1].textContent += v; + } else { + a.push(document.createTextNode(v)); + } + }); + $n.replaceWith(a); + }, + walk: function walk(i, e) { + // mdref.log("walk", i, e); + + switch (e.nodeName) { + case "H1": + case "H2": + case "H3": + case "H4": + case "H5": + case "H6": + if (e.id.length) { + var href = document.location.pathname; + var perm = $("#"); + if (e.nodeName === "H1") { + perm.prependTo(e); + } else { + perm.attr("href", function(i, href) { + return href + e.id; + }); + perm.appendTo(e); + } + } + break; + } + + $.each($.makeArray(e.childNodes), function(i, n) { + switch (n.nodeName) { + case "A": + case "BR": + case "HR": + case "EM": + case "CODE": + case "SPAN": + break; + case "#text": + mdref.wrap(n, e.nodeName); + break; + default: + mdref.walk(-1, n); + break; + } + }); + }, + blink: function blink(c) { + var $c = $(c); + + $c.fadeOut("fast").queue(function(next) { + this.style.color = "red"; + next(); + }).fadeIn("fast").fadeOut("slow").queue(function(next) { + this.style.color = ""; + next(); + }).fadeIn("slow"); + }, + hashchange: function hashchange() { + if (location.hash.length > 1) { + var e; + if ((e = document.getElementById(location.hash.substring(1)))) { + mdref.blink(e); + } else { + var hash = location.hash.substring(1); + var name = mdref.is_variable(hash) ? ".var" : ".constant"; + var scrolled = false; + + $(name).each(hash.substring(hash.length-1) === "_" ? function(i, c) { + if (c.textContent.substring(0, hash.length) === hash) { + if (!scrolled) { + $(window).scrollTop($(c).offset().top - 100); + scrolled = true; + } + mdref.blink(c); + } + } : function(i, c) { + if (c.textContent === hash) { + $(window).scrollTop($(c).offset().top - 100); + mdref.blink(c); + return false; + } + }); + } + } + } + }; + + $("h1,h2,h3,h4,h5,h6,p,li,code,td").each(mdref.walk); + $(window).on("hashchange", mdref.hashchange); + mdref.hashchange(); + + $("#disqus_activator").on("click", function() { + var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; + dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js'; + (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); + }); + $.ajax("https://disqus.com/api/3.0/threads/details.json?thread:ident="+(disqus_identifier||"index")+"&forum=mdref&api_key=VmhVG4z5jjtY8SCaMstOjfUuwniMv43Xy9FCU9YfEzhsrl95dNz1epykXSJn8jt9"). then(function(json) { + if (json && json.response) { + $("#disqus_activator span").text(json.response.posts); + } + }); + setTimeout(function() { + $("footer").addClass("hidden"); + }, 1000); +}); diff --git a/docs/html/ion.html b/docs/html/ion.html new file mode 100644 index 0000000..658a805 --- /dev/null +++ b/docs/html/ion.html @@ -0,0 +1,424 @@ + + + + + + ion - + mdref + + + + + + + + + + + +
+ + + +

pecl/ion

+

About:

+

PHP extension wrapping amzn/ion-c. +See the Amazon ION specification.

+

License:

+

BSD-2-Clause; +see spdx.org.

+

Installation:

+

PECL and PHARext is WIP.

+

Dependencies:

+

Required:

+
    +
  • PHP-8.1 +
      +
    • ext/date (standard)
    • +
    • ext/spl (standard)
    • +
    +
  • +
+

Optional:

+ +

Trinity:

+
phpize
+./configure
+make # -j$(nproc)
+sudo make install # INSTALL=install
+
+

Try with Docker:

+
docker build -t php-ion
+docker run --rm php-ion -r 'echo ion\serialize(ion\Symbol\Table\PHP());'
+
+

Editor Stub:

+

See ion.stub.php.

+

Known Issues:

+

Due to private internal state of ion-c's readers and writers, +instances of the following PHP classes cannot be cloned:

+
    +
  • ion\Reader\Reader
  • +
  • ion\Writer\Writer
  • +
  • ion\Serializer\PHP
  • +
  • ion\Unserializer\PHP
  • +
+ + + +

Functions:

+
    + +
  • +

    serialize

    +

    Serialize a PHP value as ION data.

    + +

    string ion\serialize(mixed $data, [?ion\Serializer $serializer = NULL])

    +
  • + +
  • +

    unserialize

    +

    Unserialize ION data (stream) as PHP value(s).

    + +

    mixed ion\unserialize(string|resource $data, [?ion\Unserializer $unserializer = NULL])

    +
  • + +
+ + +

Namespaces, Interfaces and Classes:

+
    + +
  • +

    Catalog

    +

    The Catalog holds a collection of ion\Symbol\Table instances queried from ion\Reader and ion\Writer instances.

    + +

    class ion\Catalog implements Countable

    +
  • + +
  • +

    Decimal

    +

    An arbitrary precision fixed point decimal.

    + +

    class ion\Decimal implements Stringable

    +
  • + +
  • +

    Exception

    +

    Base exception for the ION extension.

    + +

    class ion\Exception extends Exception implements Stringable, Throwable

    +
  • + +
  • +

    LOB

    +

    A large object.

    + +

    class ion\LOB

    +
  • + +
  • +

    Reader

    +

    ION reader API.

    + +

    interface ion\Reader implements Iterator, RecursiveIterator, Traversable

    +
  • + +
  • +

    Serializer

    +

    Serializer interface, used to customize ion\serialize()'s behavior.

    + +

    interface ion\Serializer

    +
  • + +
  • +

    Symbol

    + +

    class ion\Symbol implements Stringable

    +
  • + +
  • +

    Timestamp

    +

    An ION Timestamp.

    + +

    class ion\Timestamp extends DateTime implements DateTimeInterface, Stringable

    +
  • + +
  • +

    Type

    +

    ION data type.

    + +

    enum ion\Type implements BackedEnum, UnitEnum

    +
  • + +
  • +

    Unserializer

    +

    Unserializer interface, used to customize ion\unserialize()'s behavior.

    + +

    interface ion\Unserializer

    +
  • + +
  • +

    Writer

    +

    ION writer API.

    + +

    interface ion\Writer

    +
  • + +
+ +
+ + + + + + +
+ + diff --git a/docs/html/ion/Catalog.html b/docs/html/ion/Catalog.html new file mode 100644 index 0000000..7c334e8 --- /dev/null +++ b/docs/html/ion/Catalog.html @@ -0,0 +1,183 @@ + + + + + + Catalog - + mdref + + + + + + + + + + + +
+ + + +

class ion\Catalog implements Countable

+

The Catalog holds a collection of ion\Symbol\Table instances queried from ion\Reader and ion\Writer instances.

+

See also the ION spec's symbol guide chapter on catalog..

+

Constants:

+

None.

+

Properties:

+
    +
  • private array $symbolTables = array ( +)
    +Internal cache.
  • +
+ + + +

Functions:

+
    + +
  • +

    Catalog::__construct

    +

    Create a new Catalog.

    + +

    void ion\Catalog::__construct()

    +
  • + +
  • +

    Catalog::add

    +

    Add a shared symbol table to the catalog.

    + +

    void ion\Catalog::add(ion\Symbol\Table $table)

    +
  • + +
  • +

    Catalog::find

    +

    Find a shared symbol table within the catalog.

    + +

    ?ion\Symbol\Table ion\Catalog::find(string $name, [int $version = 0])

    +
  • + +
  • +

    Catalog::findBest

    +

    Find a "best match" for a shared symbol table within the catalog.

    + +

    ?ion\Symbol\Table ion\Catalog::findBest(string $name, [int $version = 0])

    +
  • + +
  • +

    Catalog::remove

    +

    Remove a shared symbol table from the catalog.

    + +

    bool ion\Catalog::remove(ion\Symbol\Table|string $table)

    +
  • + +
+ + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Catalog/__construct.html b/docs/html/ion/Catalog/__construct.html new file mode 100644 index 0000000..5313440 --- /dev/null +++ b/docs/html/ion/Catalog/__construct.html @@ -0,0 +1,99 @@ + + + + + + Catalog::__construct - + mdref + + + + + + + + + + + +
+ + + +

void ion\Catalog::__construct()

+

Create a new Catalog.

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Catalog/add.html b/docs/html/ion/Catalog/add.html new file mode 100644 index 0000000..9fb5872 --- /dev/null +++ b/docs/html/ion/Catalog/add.html @@ -0,0 +1,106 @@ + + + + + + Catalog::add - + mdref + + + + + + + + + + + +
+ + + +

void ion\Catalog::add(ion\Symbol\Table $table)

+

Add a shared symbol table to the catalog.

+

Params:

+
    +
  • ion\Symbol\Table $table
    +The new table to add.
  • +
+

Returns:

+
    +
  • void,
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Catalog/find.html b/docs/html/ion/Catalog/find.html new file mode 100644 index 0000000..651d912 --- /dev/null +++ b/docs/html/ion/Catalog/find.html @@ -0,0 +1,108 @@ + + + + + + Catalog::find - + mdref + + + + + + + + + + + +
+ + + +

?ion\Symbol\Table ion\Catalog::find(string $name, [int $version = 0])

+

Find a shared symbol table within the catalog.

+

Params:

+
    +
  • string $name
    +The name of the symbol table.
  • +
  • Optional int $version = 0
    +The version the symbol table should match.
  • +
+

Returns:

+
    +
  • \Symbol\Table|null, The symbol table found, if any.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Catalog/findBest.html b/docs/html/ion/Catalog/findBest.html new file mode 100644 index 0000000..54ad399 --- /dev/null +++ b/docs/html/ion/Catalog/findBest.html @@ -0,0 +1,108 @@ + + + + + + Catalog::findBest - + mdref + + + + + + + + + + + +
+ + + +

?ion\Symbol\Table ion\Catalog::findBest(string $name, [int $version = 0])

+

Find a "best match" for a shared symbol table within the catalog.

+

Params:

+
    +
  • string $name
    +The name of the symbol table,
  • +
  • Optional int $version = 0
    +The minimum version of the symbol table.
  • +
+

Returns:

+
    +
  • \Symbol\Table|null, The symbol table found, if any.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Catalog/remove.html b/docs/html/ion/Catalog/remove.html new file mode 100644 index 0000000..9bb62ff --- /dev/null +++ b/docs/html/ion/Catalog/remove.html @@ -0,0 +1,106 @@ + + + + + + Catalog::remove - + mdref + + + + + + + + + + + +
+ + + +

bool ion\Catalog::remove(ion\Symbol\Table|string $table)

+

Remove a shared symbol table from the catalog.

+

Params:

+
    +
  • ion\Symbol\Table|string $table
    +The symbol table to renmove.
  • +
+

Returns:

+
    +
  • bool, Success.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Decimal.html b/docs/html/ion/Decimal.html new file mode 100644 index 0000000..4cec146 --- /dev/null +++ b/docs/html/ion/Decimal.html @@ -0,0 +1,220 @@ + + + + + + Decimal - + mdref + + + + + + + + + + + +
+ + + +

class ion\Decimal implements Stringable

+

An arbitrary precision fixed point decimal.

+

See also \ion\Decimal\Context, and the ION spec's decimal docs.

+

Constants:

+

None.

+

Properties:

+
    +
  • public string|int $number
    +The decimal number.
  • +
  • public ?ion\Decimal\Context $context
    +The decimal context.
  • +
+ + + +

Functions:

+
    + +
  • +

    Decimal::__construct

    +

    Create a new fixed point decimal.

    + +

    void ion\Decimal::__construct(string|int $number, [?ion\Decimal\Context $context = NULL])

    +
  • + +
  • +

    Decimal::equals

    +

    Check two decimals for equality.

    + +

    bool ion\Decimal::equals(ion\Decimal $decimal)

    +
  • + +
  • +

    Decimal::isInt

    +

    Check whether the decimal is actually a big integer.

    + +

    bool ion\Decimal::isInt()

    +
  • + +
  • +

    Decimal::toInt

    +

    Get the integer represention of the decimal.

    + +

    int ion\Decimal::toInt()

    +
  • + +
  • +

    Decimal::toString

    +

    Get the string representation of the decimal.

    + +

    string ion\Decimal::toString()

    +
  • + +
+ + +

Namespaces, Interfaces and Classes:

+
    + +
  • +

    Context

    +

    An ion\Decimal's context.

    + +

    class ion\Decimal\Context

    +
  • + +
+ +
+ + + + + + +
+ + diff --git a/docs/html/ion/Decimal/Context.html b/docs/html/ion/Decimal/Context.html new file mode 100644 index 0000000..bb059be --- /dev/null +++ b/docs/html/ion/Decimal/Context.html @@ -0,0 +1,200 @@ + + + + + + Context - + mdref + + + + + + + + + + + +
+ + + +

class ion\Decimal\Context

+

An ion\Decimal's context.

+

Constants:

+

None.

+

Properties:

+
    +
  • public int $digits
    +Maximum digits.
  • +
  • public int $eMax
    +Maximum exponent.
  • +
  • public int $eMin
    +Minimum exponent.
  • +
  • public ion\Decimal\Context\Rounding|int $round
    +Rounding mode.
  • +
  • public bool $clamp
    +Whether to clamp.
  • +
+ + + +

Functions:

+
    + +
  • +

    Context::__construct

    +

    Create a new decimal context.

    + +

    void ion\Decimal\Context::__construct(int $digits, int $eMax, int $eMin, ion\Decimal\Context\Rounding|int $round, bool $clamp)

    +
  • + +
+ + +

Namespaces, Interfaces and Classes:

+
    + +
  • +

    Dec128

    +

    Create a context suitable for 128bit decimals.

    + +

    static ion\Decimal\Context ion\Decimal\Context::Dec128()

    +
  • + +
  • +

    Dec32

    +

    Create a context suitable for 32bit decimals.

    + +

    static ion\Decimal\Context ion\Decimal\Context::Dec32()

    +
  • + +
  • +

    Dec64

    +

    Create a context suitable for 64bit decimals.

    + +

    static ion\Decimal\Context ion\Decimal\Context::Dec64()

    +
  • + +
  • +

    DecMax

    +

    Create a context with maximum settings.

    + +

    static ion\Decimal\Context ion\Decimal\Context::DecMax([ion\Decimal\Context\Rounding|int $round = ion\Decimal\Context\Rounding::HalfEven])

    +
  • + +
  • +

    Rounding

    +

    Rounding mode.

    + +

    enum ion\Decimal\Context\Rounding implements BackedEnum, UnitEnum

    +
  • + +
+ +
+ + + + + + +
+ + diff --git a/docs/html/ion/Decimal/Context/Dec128.html b/docs/html/ion/Decimal/Context/Dec128.html new file mode 100644 index 0000000..2f390c6 --- /dev/null +++ b/docs/html/ion/Decimal/Context/Dec128.html @@ -0,0 +1,111 @@ + + + + + + Dec128 - + mdref + + + + + + + + + + + +
+ + + +

static ion\Decimal\Context ion\Decimal\Context::Dec128()

+

Create a context suitable for 128bit decimals.

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Decimal/Context/Dec32.html b/docs/html/ion/Decimal/Context/Dec32.html new file mode 100644 index 0000000..bfcf16b --- /dev/null +++ b/docs/html/ion/Decimal/Context/Dec32.html @@ -0,0 +1,111 @@ + + + + + + Dec32 - + mdref + + + + + + + + + + + +
+ + + +

static ion\Decimal\Context ion\Decimal\Context::Dec32()

+

Create a context suitable for 32bit decimals.

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Decimal/Context/Dec64.html b/docs/html/ion/Decimal/Context/Dec64.html new file mode 100644 index 0000000..36cce0d --- /dev/null +++ b/docs/html/ion/Decimal/Context/Dec64.html @@ -0,0 +1,111 @@ + + + + + + Dec64 - + mdref + + + + + + + + + + + +
+ + + +

static ion\Decimal\Context ion\Decimal\Context::Dec64()

+

Create a context suitable for 64bit decimals.

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Decimal/Context/DecMax.html b/docs/html/ion/Decimal/Context/DecMax.html new file mode 100644 index 0000000..e23cf8f --- /dev/null +++ b/docs/html/ion/Decimal/Context/DecMax.html @@ -0,0 +1,114 @@ + + + + + + DecMax - + mdref + + + + + + + + + + + +
+ + + +

static ion\Decimal\Context ion\Decimal\Context::DecMax([ion\Decimal\Context\Rounding|int $round = ion\Decimal\Context\Rounding::HalfEven])

+

Create a context with maximum settings.

+

Params:

+
    +
  • Optional ion\Decimal\Context\Rounding|int $round = ion\Decimal\Context\Rounding::HalfEven
    +Rounding mode.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Decimal/Context/Rounding.html b/docs/html/ion/Decimal/Context/Rounding.html new file mode 100644 index 0000000..16c903a --- /dev/null +++ b/docs/html/ion/Decimal/Context/Rounding.html @@ -0,0 +1,143 @@ + + + + + + Rounding - + mdref + + + + + + + + + + + +
+ + + +

enum ion\Decimal\Context\Rounding implements BackedEnum, UnitEnum

+

Rounding mode.

+

Constants:

+
    +
  • +Ceiling = 0 +
  • +
  • +Up = 1 +
  • +
  • +HalfUp = 2 +
  • +
  • +HalfEven = 3 +
  • +
  • +HalfDown = 4 +
  • +
  • +Down = 5 +
  • +
  • +Floor = 6 +
  • +
  • +Down05Up = 7 +
  • +
+

Properties:

+
    +
  • public string $name
    +Rounding mode.
  • +
  • public int $value
    +Rounding mode.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Decimal/Context/__construct.html b/docs/html/ion/Decimal/Context/__construct.html new file mode 100644 index 0000000..9a71e37 --- /dev/null +++ b/docs/html/ion/Decimal/Context/__construct.html @@ -0,0 +1,122 @@ + + + + + + Context::__construct - + mdref + + + + + + + + + + + +
+ + + +

void ion\Decimal\Context::__construct(int $digits, int $eMax, int $eMin, ion\Decimal\Context\Rounding|int $round, bool $clamp)

+

Create a new decimal context.

+

Params:

+
    +
  • int $digits
    +Maximum digits.
  • +
  • int $eMax
    +Maximum exponent.
  • +
  • int $eMin
    +Minimum exponent.
  • +
  • ion\Decimal\Context\Rounding|int $round
    +Rounding mode.
  • +
  • bool $clamp
    +Whether to clamp.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Decimal/__construct.html b/docs/html/ion/Decimal/__construct.html new file mode 100644 index 0000000..e870037 --- /dev/null +++ b/docs/html/ion/Decimal/__construct.html @@ -0,0 +1,106 @@ + + + + + + Decimal::__construct - + mdref + + + + + + + + + + + +
+ + + +

void ion\Decimal::__construct(string|int $number, [?ion\Decimal\Context $context = NULL])

+

Create a new fixed point decimal.

+

Params:

+
    +
  • string|int $number
    +The decimal number.
  • +
  • Optional ?ion\Decimal\Context $context = NULL
    +The decimal context.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Decimal/equals.html b/docs/html/ion/Decimal/equals.html new file mode 100644 index 0000000..90c7569 --- /dev/null +++ b/docs/html/ion/Decimal/equals.html @@ -0,0 +1,108 @@ + + + + + + Decimal::equals - + mdref + + + + + + + + + + + +
+ + + +

bool ion\Decimal::equals(ion\Decimal $decimal)

+

Check two decimals for equality.

+

Params:

+
    +
  • ion\Decimal $decimal
    +The decimal to compare to.
  • +
+

Returns:

+
    +
  • bool, Whether both decimals equal.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Decimal/isInt.html b/docs/html/ion/Decimal/isInt.html new file mode 100644 index 0000000..4fd1e89 --- /dev/null +++ b/docs/html/ion/Decimal/isInt.html @@ -0,0 +1,105 @@ + + + + + + Decimal::isInt - + mdref + + + + + + + + + + + +
+ + + +

bool ion\Decimal::isInt()

+

Check whether the decimal is actually a big integer.

+

Params:

+

None.

+

Returns:

+
    +
  • bool, Whether the decimal is actually an integer.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Decimal/toInt.html b/docs/html/ion/Decimal/toInt.html new file mode 100644 index 0000000..74a71fc --- /dev/null +++ b/docs/html/ion/Decimal/toInt.html @@ -0,0 +1,101 @@ + + + + + + Decimal::toInt - + mdref + + + + + + + + + + + +
+ + + +

int ion\Decimal::toInt()

+

Get the integer represention of the decimal.

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Decimal/toString.html b/docs/html/ion/Decimal/toString.html new file mode 100644 index 0000000..53cac70 --- /dev/null +++ b/docs/html/ion/Decimal/toString.html @@ -0,0 +1,101 @@ + + + + + + Decimal::toString - + mdref + + + + + + + + + + + +
+ + + +

string ion\Decimal::toString()

+

Get the string representation of the decimal.

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Exception.html b/docs/html/ion/Exception.html new file mode 100644 index 0000000..a940a87 --- /dev/null +++ b/docs/html/ion/Exception.html @@ -0,0 +1,109 @@ + + + + + + Exception - + mdref + + + + + + + + + + + +
+ + + +

class ion\Exception extends Exception implements Stringable, Throwable

+

Base exception for the ION extension.

+

Constants:

+

None.

+

Properties:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/LOB.html b/docs/html/ion/LOB.html new file mode 100644 index 0000000..db8cca9 --- /dev/null +++ b/docs/html/ion/LOB.html @@ -0,0 +1,136 @@ + + + + + + LOB - + mdref + + + + + + + + + + + +
+ + + +

class ion\LOB

+

A large object.

+

See also \ion\Type, the ION spec's BLob definition, and the ION sepc's CLob definition.

+

Constants:

+

None.

+

Properties:

+
    +
  • public string $value
    +The value of the large object.
  • +
  • public ion\Type $type
    +The type (CLob/BLob).
  • +
+ + + +

Functions:

+
    + +
  • +

    LOB::__construct

    +

    Create an ION large object.

    + +

    void ion\LOB::__construct(string $value, [ion\Type $type = ion\Type::CLob])

    +
  • + +
+ + +
+ + + + + + +
+ + diff --git a/docs/html/ion/LOB/__construct.html b/docs/html/ion/LOB/__construct.html new file mode 100644 index 0000000..d63b348 --- /dev/null +++ b/docs/html/ion/LOB/__construct.html @@ -0,0 +1,96 @@ + + + + + + LOB::__construct - + mdref + + + + + + + + + + + +
+ + + +

void ion\LOB::__construct(string $value, [ion\Type $type = ion\Type::CLob])

+

Create an ION large object.

+

Params:

+
    +
  • string $value
    +The value of the large object.
  • +
  • Optional ion\Type $type = ion\Type::CLob
    +The type (CLob/BLob).
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader.html b/docs/html/ion/Reader.html new file mode 100644 index 0000000..6451871 --- /dev/null +++ b/docs/html/ion/Reader.html @@ -0,0 +1,493 @@ + + + + + + Reader - + mdref + + + + + + + + + + + +
+ + + +

interface ion\Reader implements Iterator, RecursiveIterator, Traversable

+

ION reader API.

+

Constants:

+

None.

+

Properties:

+

None.

+ + + +

Functions:

+ + + +

Namespaces, Interfaces and Classes:

+
    + +
  • +

    Buffer

    +

    ION string buffer reader API.

    + +

    interface ion\Reader\Buffer implements Iterator, RecursiveIterator, Traversable, ion\Reader

    +
  • + +
  • +

    Options

    +

    Reader options.

    + +

    class ion\Reader\Options

    +
  • + +
  • +

    Reader

    +

    Base implementation of ION readers.

    + +

    abstract class ion\Reader\Reader implements Iterator, RecursiveIterator, Traversable, ion\Reader

    +
  • + +
  • +

    Stream

    +

    ION stream reader API.

    + +

    interface ion\Reader\Stream implements Iterator, RecursiveIterator, Traversable, ion\Reader

    +
  • + +
+ +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/Buffer.html b/docs/html/ion/Reader/Buffer.html new file mode 100644 index 0000000..8eb93fc --- /dev/null +++ b/docs/html/ion/Reader/Buffer.html @@ -0,0 +1,193 @@ + + + + + + Buffer - + mdref + + + + + + + + + + + +
+ + + +

interface ion\Reader\Buffer implements Iterator, RecursiveIterator, Traversable, ion\Reader

+

ION string buffer reader API.

+

Constants:

+

None.

+

Properties:

+

None.

+ + + +

Functions:

+
    + +
  • +

    Buffer::getBuffer

    +

    Get the buffer read from.

    + +

    string ion\Reader\Buffer::getBuffer()

    +
  • + +
+ + +

Namespaces, Interfaces and Classes:

+
    + +
  • +

    Reader

    +

    ION string buffer reader.

    + +

    class ion\Reader\Buffer\Reader extends ion\Reader\Reader implements Iterator, RecursiveIterator, Traversable, ion\Reader, ion\Reader\Buffer

    +
  • + +
+ +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/Buffer/Reader.html b/docs/html/ion/Reader/Buffer/Reader.html new file mode 100644 index 0000000..a1efec1 --- /dev/null +++ b/docs/html/ion/Reader/Buffer/Reader.html @@ -0,0 +1,126 @@ + + + + + + Reader - + mdref + + + + + + + + + + + +
+ + + +

class ion\Reader\Buffer\Reader extends ion\Reader\Reader implements Iterator, RecursiveIterator, Traversable, ion\Reader, ion\Reader\Buffer

+

ION string buffer reader.

+

Constants:

+

None.

+

Properties:

+

None.

+ + + +

Functions:

+
    + +
  • +

    Reader::__construct

    +

    Create a new string buffer reader.

    + +

    void ion\Reader\Buffer\Reader::__construct(string $buffer, [?ion\Reader\Options $options = NULL])

    +
  • + +
+ + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/Buffer/Reader/__construct.html b/docs/html/ion/Reader/Buffer/Reader/__construct.html new file mode 100644 index 0000000..8b1e7d5 --- /dev/null +++ b/docs/html/ion/Reader/Buffer/Reader/__construct.html @@ -0,0 +1,116 @@ + + + + + + Reader::__construct - + mdref + + + + + + + + + + + +
+ + + +

void ion\Reader\Buffer\Reader::__construct(string $buffer, [?ion\Reader\Options $options = NULL])

+

Create a new string buffer reader.

+

Params:

+
    +
  • string $buffer
    +The buffer to read from.
  • +
  • Optional ?ion\Reader\Options $options = NULL
    +Reader options.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/Buffer/getBuffer.html b/docs/html/ion/Reader/Buffer/getBuffer.html new file mode 100644 index 0000000..f3f89f2 --- /dev/null +++ b/docs/html/ion/Reader/Buffer/getBuffer.html @@ -0,0 +1,107 @@ + + + + + + Buffer::getBuffer - + mdref + + + + + + + + + + + +
+ + + +

string ion\Reader\Buffer::getBuffer()

+

Get the buffer read from.

+

Params:

+

None.

+

Returns:

+
    +
  • string, The buffer read from.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/Options.html b/docs/html/ion/Reader/Options.html new file mode 100644 index 0000000..467f6cb --- /dev/null +++ b/docs/html/ion/Reader/Options.html @@ -0,0 +1,194 @@ + + + + + + Options - + mdref + + + + + + + + + + + +
+ + + +

class ion\Reader\Options

+

Reader options.

+

Constants:

+

None.

+

Properties:

+
    +
  • public ?ion\Catalog $catalog
    +ION catalog to use for symbol lookup.
  • +
  • public ?ion\Decimal\Context $decimalContext
    +Decimal context to use.
  • +
  • public ?Closure $onContextChange
    +Callback as function(\ion\Reader):void called upon local symbol table context change.
  • +
  • public bool $returnSystemValues
    +Whether to return otherwise hidden system values.
  • +
  • public int $maxContainerDepth
    +The maximum depth of nested containers.
  • +
  • public int $maxAnnotations
    +The maximum number of annotations allowed on a single value.
  • +
  • public int $annotationBufferSize
    +The maximum number of bytes of all annotations on a single value.
  • +
  • public int $tempBufferSize
    +The maximum number of bytes of a symbol/value/chunk.
  • +
  • public bool $skipCharacterValidation
    +Whether to skip UTF-8 validation.
  • +
+ + + +

Functions:

+
    + +
  • +

    Options::__construct

    + +

    void ion\Reader\Options::__construct([?ion\Catalog $catalog = NULL, [?ion\Decimal\Context $decimalContext = NULL, [?Closure $onContextChange = NULL, [bool $returnSystemValues = false, [int $maxContainerDepth = 10, [int $maxAnnotations = 10, [int $annotationBufferSize = 16384, [int $tempBufferSize = 16384, [bool $skipCharacterValidation = false]]]]]]]]])

    +
  • + +
+ + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/Options/__construct.html b/docs/html/ion/Reader/Options/__construct.html new file mode 100644 index 0000000..056e165 --- /dev/null +++ b/docs/html/ion/Reader/Options/__construct.html @@ -0,0 +1,119 @@ + + + + + + Options::__construct - + mdref + + + + + + + + + + + +
+ + + +

void ion\Reader\Options::__construct([?ion\Catalog $catalog = NULL, [?ion\Decimal\Context $decimalContext = NULL, [?Closure $onContextChange = NULL, [bool $returnSystemValues = false, [int $maxContainerDepth = 10, [int $maxAnnotations = 10, [int $annotationBufferSize = 16384, [int $tempBufferSize = 16384, [bool $skipCharacterValidation = false]]]]]]]]])

+

Params:

+
    +
  • Optional ?ion\Catalog $catalog = NULL
    +ION catalog to use for symbol lookup.
  • +
  • Optional ?ion\Decimal\Context $decimalContext = NULL
    +Decimal context to use.
  • +
  • Optional ?Closure $onContextChange = NULL
    +Callback as function(\ion\Reader):void called upon local symbol table context change.
  • +
  • Optional bool $returnSystemValues = false
    +Whether to return otherwise hidden system values.
  • +
  • Optional int $maxContainerDepth = 10
    +The maximum depth of nested containers.
  • +
  • Optional int $maxAnnotations = 10
    +The maximum number of annotations allowed on a single value.
  • +
  • Optional int $annotationBufferSize = 16384
    +The maximum number of bytes of all annotations on a single value.
  • +
  • Optional int $tempBufferSize = 16384
    +The maximum number of bytes of a symbol/value/chunk.
  • +
  • Optional bool $skipCharacterValidation = false
    +Whether to skip UTF-8 validation.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/Reader.html b/docs/html/ion/Reader/Reader.html new file mode 100644 index 0000000..da785dc --- /dev/null +++ b/docs/html/ion/Reader/Reader.html @@ -0,0 +1,158 @@ + + + + + + Reader - + mdref + + + + + + + + + + + +
+ + + +

abstract class ion\Reader\Reader implements Iterator, RecursiveIterator, Traversable, ion\Reader

+

Base implementation of ION readers.

+

Constants:

+

None.

+

Properties:

+
    +
  • public ?ion\Reader\Options $options
    +Reader options.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/Stream.html b/docs/html/ion/Reader/Stream.html new file mode 100644 index 0000000..a04ea7f --- /dev/null +++ b/docs/html/ion/Reader/Stream.html @@ -0,0 +1,217 @@ + + + + + + Stream - + mdref + + + + + + + + + + + +
+ + + +

interface ion\Reader\Stream implements Iterator, RecursiveIterator, Traversable, ion\Reader

+

ION stream reader API.

+

Constants:

+

None.

+

Properties:

+

None.

+ + + +

Functions:

+
    + +
  • +

    Stream::getStream

    +

    Get the stream read from.

    + +

    void ion\Reader\Stream::getStream()

    +
  • + +
  • +

    Stream::resetStream

    +

    Reset the stream read from.

    + +

    void ion\Reader\Stream::resetStream(resource $stream)

    +
  • + +
  • +

    Stream::resetStreamWithLength

    +

    Reset the stream read from, limiting length to read.

    + +

    void ion\Reader\Stream::resetStreamWithLength(resource $stream, int $length)

    +
  • + +
+ + +

Namespaces, Interfaces and Classes:

+
    + +
  • +

    Reader

    +

    ION stream reader.

    + +

    class ion\Reader\Stream\Reader extends ion\Reader\Reader implements Iterator, RecursiveIterator, Traversable, ion\Reader, ion\Reader\Stream

    +
  • + +
+ +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/Stream/Reader.html b/docs/html/ion/Reader/Stream/Reader.html new file mode 100644 index 0000000..d411ad4 --- /dev/null +++ b/docs/html/ion/Reader/Stream/Reader.html @@ -0,0 +1,130 @@ + + + + + + Reader - + mdref + + + + + + + + + + + +
+ + + +

class ion\Reader\Stream\Reader extends ion\Reader\Reader implements Iterator, RecursiveIterator, Traversable, ion\Reader, ion\Reader\Stream

+

ION stream reader.

+

Constants:

+

None.

+

Properties:

+

None.

+ + + +

Functions:

+
    + +
  • +

    Reader::__construct

    +

    Create a new stream reader.

    + +

    void ion\Reader\Stream\Reader::__construct(resource $stream, [?ion\Reader\Options $options = NULL])

    +
  • + +
+ + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/Stream/Reader/__construct.html b/docs/html/ion/Reader/Stream/Reader/__construct.html new file mode 100644 index 0000000..c7e694e --- /dev/null +++ b/docs/html/ion/Reader/Stream/Reader/__construct.html @@ -0,0 +1,116 @@ + + + + + + Reader::__construct - + mdref + + + + + + + + + + + +
+ + + +

void ion\Reader\Stream\Reader::__construct(resource $stream, [?ion\Reader\Options $options = NULL])

+

Create a new stream reader.

+

Params:

+
    +
  • resource $stream
    +The stream to read from.
  • +
  • Optional ?ion\Reader\Options $options = NULL
    +Reader options.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/Stream/getStream.html b/docs/html/ion/Reader/Stream/getStream.html new file mode 100644 index 0000000..592c67a --- /dev/null +++ b/docs/html/ion/Reader/Stream/getStream.html @@ -0,0 +1,111 @@ + + + + + + Stream::getStream - + mdref + + + + + + + + + + + +
+ + + +

void ion\Reader\Stream::getStream()

+

Get the stream read from.

+

Params:

+

None.

+

Returns:

+
    +
  • resource, The stream read from.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/Stream/resetStream.html b/docs/html/ion/Reader/Stream/resetStream.html new file mode 100644 index 0000000..5f3c4be --- /dev/null +++ b/docs/html/ion/Reader/Stream/resetStream.html @@ -0,0 +1,110 @@ + + + + + + Stream::resetStream - + mdref + + + + + + + + + + + +
+ + + +

void ion\Reader\Stream::resetStream(resource $stream)

+

Reset the stream read from.

+

Params:

+
    +
  • resource $stream
    +The new stream to from.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/Stream/resetStreamWithLength.html b/docs/html/ion/Reader/Stream/resetStreamWithLength.html new file mode 100644 index 0000000..6a2d440 --- /dev/null +++ b/docs/html/ion/Reader/Stream/resetStreamWithLength.html @@ -0,0 +1,112 @@ + + + + + + Stream::resetStreamWithLength - + mdref + + + + + + + + + + + +
+ + + +

void ion\Reader\Stream::resetStreamWithLength(resource $stream, int $length)

+

Reset the stream read from, limiting length to read.

+

Params:

+
    +
  • resource $stream
    +The stream to read from.
  • +
  • int $length
    +The maximum length to read from $stream.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/countAnnotations.html b/docs/html/ion/Reader/countAnnotations.html new file mode 100644 index 0000000..677a675 --- /dev/null +++ b/docs/html/ion/Reader/countAnnotations.html @@ -0,0 +1,152 @@ + + + + + + Reader::countAnnotations - + mdref + + + + + + + + + + + +
+ + + +

int ion\Reader::countAnnotations()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/getAnnotation.html b/docs/html/ion/Reader/getAnnotation.html new file mode 100644 index 0000000..4b1f8c7 --- /dev/null +++ b/docs/html/ion/Reader/getAnnotation.html @@ -0,0 +1,154 @@ + + + + + + Reader::getAnnotation - + mdref + + + + + + + + + + + +
+ + + +

string ion\Reader::getAnnotation(int $index)

+

Params:

+
    +
  • int $index
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/getAnnotationSymbol.html b/docs/html/ion/Reader/getAnnotationSymbol.html new file mode 100644 index 0000000..16f9d3c --- /dev/null +++ b/docs/html/ion/Reader/getAnnotationSymbol.html @@ -0,0 +1,154 @@ + + + + + + Reader::getAnnotationSymbol - + mdref + + + + + + + + + + + +
+ + + +

ion\Symbol ion\Reader::getAnnotationSymbol(int $index)

+

Params:

+
    +
  • int $index
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/getAnnotationSymbols.html b/docs/html/ion/Reader/getAnnotationSymbols.html new file mode 100644 index 0000000..b074cc6 --- /dev/null +++ b/docs/html/ion/Reader/getAnnotationSymbols.html @@ -0,0 +1,152 @@ + + + + + + Reader::getAnnotationSymbols - + mdref + + + + + + + + + + + +
+ + + +

array ion\Reader::getAnnotationSymbols()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/getAnnotations.html b/docs/html/ion/Reader/getAnnotations.html new file mode 100644 index 0000000..bf02c2b --- /dev/null +++ b/docs/html/ion/Reader/getAnnotations.html @@ -0,0 +1,152 @@ + + + + + + Reader::getAnnotations - + mdref + + + + + + + + + + + +
+ + + +

array ion\Reader::getAnnotations()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/getDepth.html b/docs/html/ion/Reader/getDepth.html new file mode 100644 index 0000000..3cb3057 --- /dev/null +++ b/docs/html/ion/Reader/getDepth.html @@ -0,0 +1,152 @@ + + + + + + Reader::getDepth - + mdref + + + + + + + + + + + +
+ + + +

int ion\Reader::getDepth()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/getFieldName.html b/docs/html/ion/Reader/getFieldName.html new file mode 100644 index 0000000..0d1ab30 --- /dev/null +++ b/docs/html/ion/Reader/getFieldName.html @@ -0,0 +1,152 @@ + + + + + + Reader::getFieldName - + mdref + + + + + + + + + + + +
+ + + +

string ion\Reader::getFieldName()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/getFieldNameSymbol.html b/docs/html/ion/Reader/getFieldNameSymbol.html new file mode 100644 index 0000000..fc88526 --- /dev/null +++ b/docs/html/ion/Reader/getFieldNameSymbol.html @@ -0,0 +1,152 @@ + + + + + + Reader::getFieldNameSymbol - + mdref + + + + + + + + + + + +
+ + + +

ion\Symbol ion\Reader::getFieldNameSymbol()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/getPosition.html b/docs/html/ion/Reader/getPosition.html new file mode 100644 index 0000000..90620ad --- /dev/null +++ b/docs/html/ion/Reader/getPosition.html @@ -0,0 +1,152 @@ + + + + + + Reader::getPosition - + mdref + + + + + + + + + + + +
+ + + +

int ion\Reader::getPosition()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/getType.html b/docs/html/ion/Reader/getType.html new file mode 100644 index 0000000..cf6c3bc --- /dev/null +++ b/docs/html/ion/Reader/getType.html @@ -0,0 +1,152 @@ + + + + + + Reader::getType - + mdref + + + + + + + + + + + +
+ + + +

ion\Type ion\Reader::getType()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/getValueLength.html b/docs/html/ion/Reader/getValueLength.html new file mode 100644 index 0000000..87ad9a5 --- /dev/null +++ b/docs/html/ion/Reader/getValueLength.html @@ -0,0 +1,152 @@ + + + + + + Reader::getValueLength - + mdref + + + + + + + + + + + +
+ + + +

int ion\Reader::getValueLength()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/getValueOffset.html b/docs/html/ion/Reader/getValueOffset.html new file mode 100644 index 0000000..40ea04b --- /dev/null +++ b/docs/html/ion/Reader/getValueOffset.html @@ -0,0 +1,152 @@ + + + + + + Reader::getValueOffset - + mdref + + + + + + + + + + + +
+ + + +

int ion\Reader::getValueOffset()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/hasAnnotation.html b/docs/html/ion/Reader/hasAnnotation.html new file mode 100644 index 0000000..c62c923 --- /dev/null +++ b/docs/html/ion/Reader/hasAnnotation.html @@ -0,0 +1,154 @@ + + + + + + Reader::hasAnnotation - + mdref + + + + + + + + + + + +
+ + + +

bool ion\Reader::hasAnnotation(string $annotation)

+

Params:

+
    +
  • string $annotation
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/hasAnnotations.html b/docs/html/ion/Reader/hasAnnotations.html new file mode 100644 index 0000000..b943aa5 --- /dev/null +++ b/docs/html/ion/Reader/hasAnnotations.html @@ -0,0 +1,152 @@ + + + + + + Reader::hasAnnotations - + mdref + + + + + + + + + + + +
+ + + +

bool ion\Reader::hasAnnotations()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/isInStruct.html b/docs/html/ion/Reader/isInStruct.html new file mode 100644 index 0000000..bf55eae --- /dev/null +++ b/docs/html/ion/Reader/isInStruct.html @@ -0,0 +1,152 @@ + + + + + + Reader::isInStruct - + mdref + + + + + + + + + + + +
+ + + +

bool ion\Reader::isInStruct()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/isNull.html b/docs/html/ion/Reader/isNull.html new file mode 100644 index 0000000..e3191c0 --- /dev/null +++ b/docs/html/ion/Reader/isNull.html @@ -0,0 +1,152 @@ + + + + + + Reader::isNull - + mdref + + + + + + + + + + + +
+ + + +

bool ion\Reader::isNull()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/readBool.html b/docs/html/ion/Reader/readBool.html new file mode 100644 index 0000000..722c20e --- /dev/null +++ b/docs/html/ion/Reader/readBool.html @@ -0,0 +1,152 @@ + + + + + + Reader::readBool - + mdref + + + + + + + + + + + +
+ + + +

bool ion\Reader::readBool()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/readDecimal.html b/docs/html/ion/Reader/readDecimal.html new file mode 100644 index 0000000..bde9c02 --- /dev/null +++ b/docs/html/ion/Reader/readDecimal.html @@ -0,0 +1,152 @@ + + + + + + Reader::readDecimal - + mdref + + + + + + + + + + + +
+ + + +

ion\Decimal ion\Reader::readDecimal()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/readFloat.html b/docs/html/ion/Reader/readFloat.html new file mode 100644 index 0000000..cb3c7c7 --- /dev/null +++ b/docs/html/ion/Reader/readFloat.html @@ -0,0 +1,152 @@ + + + + + + Reader::readFloat - + mdref + + + + + + + + + + + +
+ + + +

float ion\Reader::readFloat()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/readInt.html b/docs/html/ion/Reader/readInt.html new file mode 100644 index 0000000..9927f00 --- /dev/null +++ b/docs/html/ion/Reader/readInt.html @@ -0,0 +1,152 @@ + + + + + + Reader::readInt - + mdref + + + + + + + + + + + +
+ + + +

string|int ion\Reader::readInt()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/readLob.html b/docs/html/ion/Reader/readLob.html new file mode 100644 index 0000000..7cbd465 --- /dev/null +++ b/docs/html/ion/Reader/readLob.html @@ -0,0 +1,152 @@ + + + + + + Reader::readLob - + mdref + + + + + + + + + + + +
+ + + +

string ion\Reader::readLob()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/readLobPart.html b/docs/html/ion/Reader/readLobPart.html new file mode 100644 index 0000000..7e1fb35 --- /dev/null +++ b/docs/html/ion/Reader/readLobPart.html @@ -0,0 +1,159 @@ + + + + + + Reader::readLobPart - + mdref + + + + + + + + + + + +
+ + + +

bool ion\Reader::readLobPart( &$string, [int $length = 4096])

+

Params:

+
    +
  • +

    Reference &$string

    +
  • +
  • +

    Optional int $length = 4096

    +
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/readNull.html b/docs/html/ion/Reader/readNull.html new file mode 100644 index 0000000..05b2df3 --- /dev/null +++ b/docs/html/ion/Reader/readNull.html @@ -0,0 +1,152 @@ + + + + + + Reader::readNull - + mdref + + + + + + + + + + + +
+ + + +

ion\Type ion\Reader::readNull()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/readString.html b/docs/html/ion/Reader/readString.html new file mode 100644 index 0000000..a49dc33 --- /dev/null +++ b/docs/html/ion/Reader/readString.html @@ -0,0 +1,152 @@ + + + + + + Reader::readString - + mdref + + + + + + + + + + + +
+ + + +

string ion\Reader::readString()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/readStringPart.html b/docs/html/ion/Reader/readStringPart.html new file mode 100644 index 0000000..da5d5e0 --- /dev/null +++ b/docs/html/ion/Reader/readStringPart.html @@ -0,0 +1,159 @@ + + + + + + Reader::readStringPart - + mdref + + + + + + + + + + + +
+ + + +

bool ion\Reader::readStringPart( &$string, [int $length = 4096])

+

Params:

+
    +
  • +

    Reference &$string

    +
  • +
  • +

    Optional int $length = 4096

    +
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/readSymbol.html b/docs/html/ion/Reader/readSymbol.html new file mode 100644 index 0000000..9716f1d --- /dev/null +++ b/docs/html/ion/Reader/readSymbol.html @@ -0,0 +1,152 @@ + + + + + + Reader::readSymbol - + mdref + + + + + + + + + + + +
+ + + +

ion\Symbol ion\Reader::readSymbol()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/readTimestamp.html b/docs/html/ion/Reader/readTimestamp.html new file mode 100644 index 0000000..bdd93ae --- /dev/null +++ b/docs/html/ion/Reader/readTimestamp.html @@ -0,0 +1,152 @@ + + + + + + Reader::readTimestamp - + mdref + + + + + + + + + + + +
+ + + +

ion\Timestamp ion\Reader::readTimestamp()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Reader/seek.html b/docs/html/ion/Reader/seek.html new file mode 100644 index 0000000..e32da8c --- /dev/null +++ b/docs/html/ion/Reader/seek.html @@ -0,0 +1,155 @@ + + + + + + Reader::seek - + mdref + + + + + + + + + + + +
+ + + +

void ion\Reader::seek(int $offset, [int $length = -1])

+

Params:

+
    +
  • int $offset
  • +
  • Optional int $length = -1
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Serializer.html b/docs/html/ion/Serializer.html new file mode 100644 index 0000000..b37cbd9 --- /dev/null +++ b/docs/html/ion/Serializer.html @@ -0,0 +1,146 @@ + + + + + + Serializer - + mdref + + + + + + + + + + + +
+ + + +

interface ion\Serializer

+

Serializer interface, used to customize ion\serialize()'s behavior.

+

Constants:

+

None.

+

Properties:

+

None.

+ + + +

Functions:

+ + + +

Namespaces, Interfaces and Classes:

+
    + +
  • +

    PHP

    +

    Specialization of the serializer for PHP.

    + +

    class ion\Serializer\PHP implements ion\Serializer

    +
  • + +
+ +
+ + + + + + +
+ + diff --git a/docs/html/ion/Serializer/PHP.html b/docs/html/ion/Serializer/PHP.html new file mode 100644 index 0000000..6417f09 --- /dev/null +++ b/docs/html/ion/Serializer/PHP.html @@ -0,0 +1,125 @@ + + + + + + PHP - + mdref + + + + + + + + + + + +
+ + + +

class ion\Serializer\PHP implements ion\Serializer

+

Specialization of the serializer for PHP.

+

Constants:

+

None.

+

Properties:

+
    +
  • public ?ion\Writer\Options $writerOptions
    +Writer options.
  • +
  • public bool $multiSequence
    +Whether to write the top level array as multiple ION sequences.
  • +
  • public bool $callMagicSerialize
    +Whether to call magic __serialize() methods on objects to serialize.
  • +
  • public ?string $callCustomSerialize
    +Whether and which custom serialize method to call on objects to serialize.
  • +
+ + + +

Functions:

+
    + +
  • +

    PHP::__construct

    +

    Create a new PHP ION serializer.

    + +

    void ion\Serializer\PHP::__construct([?ion\Writer\Options $writerOptions = NULL, [bool $multiSequence = false, [bool $callMagicSerialize = true, [?string $callCustomSerialize = NULL]]]])

    +
  • + +
+ + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Serializer/PHP/__construct.html b/docs/html/ion/Serializer/PHP/__construct.html new file mode 100644 index 0000000..ac85ab2 --- /dev/null +++ b/docs/html/ion/Serializer/PHP/__construct.html @@ -0,0 +1,110 @@ + + + + + + PHP::__construct - + mdref + + + + + + + + + + + +
+ + + +

void ion\Serializer\PHP::__construct([?ion\Writer\Options $writerOptions = NULL, [bool $multiSequence = false, [bool $callMagicSerialize = true, [?string $callCustomSerialize = NULL]]]])

+

Create a new PHP ION serializer.

+

Params:

+
    +
  • Optional ?ion\Writer\Options $writerOptions = NULL
    +Writer options.
  • +
  • Optional bool $multiSequence = false
    +Whether to write the top level array as multiple ION sequences.
  • +
  • Optional bool $callMagicSerialize = true
    +Whether to call magic __serialize() methods on objects to serialize.
  • +
  • Optional ?string $callCustomSerialize = NULL
    +Whether and which custom serialize method to call on objects to serialize.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Serializer/serialize.html b/docs/html/ion/Serializer/serialize.html new file mode 100644 index 0000000..c48d81d --- /dev/null +++ b/docs/html/ion/Serializer/serialize.html @@ -0,0 +1,94 @@ + + + + + + Serializer::serialize - + mdref + + + + + + + + + + + +
+ + + +

string ion\Serializer::serialize(mixed $data)

+

Params:

+
    +
  • mixed $data
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Symbol.html b/docs/html/ion/Symbol.html new file mode 100644 index 0000000..6126ed1 --- /dev/null +++ b/docs/html/ion/Symbol.html @@ -0,0 +1,217 @@ + + + + + + Symbol - + mdref + + + + + + + + + + + +
+ + + +

class ion\Symbol implements Stringable

+

See also ION spec's symbol definition, and ION spec's symbol guide.

+

Constants:

+

None.

+

Properties:

+
    +
  • public ?string $value
    +The symbol's text representation.
  • +
  • public int $sid
    +The symbols ID, referencing its location within a shared symbol table.
  • +
  • public ?ion\Symbol\ImportLocation $importLocation
    +The import location referencing a shared symbol table.
  • +
+ + + +

Functions:

+
    + +
  • +

    Symbol::__construct

    +

    Create an ION symbol.

    + +

    void ion\Symbol::__construct([?string $value = NULL, [int $sid = -1, [?ion\Symbol\ImportLocation $importLocation = NULL]]])

    +
  • + +
  • +

    Symbol::equals

    +

    Compare two symbols for equality.

    + +

    bool ion\Symbol::equals(ion\Symbol $symbol)

    +
  • + +
  • +

    Symbol::toString

    + +

    string ion\Symbol::toString()

    +
  • + +
+ + +

Namespaces, Interfaces and Classes:

+
    + +
  • +

    Enum

    +

    Base interface of built-in shared symbol tables.

    + +

    interface ion\Symbol\Enum

    +
  • + +
  • +

    ImportLocation

    +

    The import location (referring to a shared table= of a symbol.

    + +

    class ion\Symbol\ImportLocation

    +
  • + +
  • +

    Table

    +

    Base interface of an ION symbol table.

    + +

    interface ion\Symbol\Table

    +
  • + +
+ +
+ + + + + + +
+ + diff --git a/docs/html/ion/Symbol/Enum.html b/docs/html/ion/Symbol/Enum.html new file mode 100644 index 0000000..e8c5091 --- /dev/null +++ b/docs/html/ion/Symbol/Enum.html @@ -0,0 +1,145 @@ + + + + + + Enum - + mdref + + + + + + + + + + + +
+ + + +

interface ion\Symbol\Enum

+

Base interface of built-in shared symbol tables.

+

Constants:

+

None.

+

Properties:

+

None.

+ + + +

Functions:

+ + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Symbol/Enum/toSID.html b/docs/html/ion/Symbol/Enum/toSID.html new file mode 100644 index 0000000..ee3b8c1 --- /dev/null +++ b/docs/html/ion/Symbol/Enum/toSID.html @@ -0,0 +1,108 @@ + + + + + + Enum::toSID - + mdref + + + + + + + + + + + +
+ + + +

int ion\Symbol\Enum::toSID()

+

Params:

+

None.

+

Returns:

+
    +
  • int, The symbol id.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Symbol/Enum/toString.html b/docs/html/ion/Symbol/Enum/toString.html new file mode 100644 index 0000000..6c1b152 --- /dev/null +++ b/docs/html/ion/Symbol/Enum/toString.html @@ -0,0 +1,108 @@ + + + + + + Enum::toString - + mdref + + + + + + + + + + + +
+ + + +

string ion\Symbol\Enum::toString()

+

Params:

+

None.

+

Returns:

+
    +
  • string, The symbol's textual representation.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Symbol/Enum/toSymbol.html b/docs/html/ion/Symbol/Enum/toSymbol.html new file mode 100644 index 0000000..2c6207a --- /dev/null +++ b/docs/html/ion/Symbol/Enum/toSymbol.html @@ -0,0 +1,108 @@ + + + + + + Enum::toSymbol - + mdref + + + + + + + + + + + +
+ + + +

ion\Symbol ion\Symbol\Enum::toSymbol()

+

Params:

+

None.

+

Returns:

+
    +
  • \ion\Symbol, Instance of the symbol.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Symbol/ImportLocation.html b/docs/html/ion/Symbol/ImportLocation.html new file mode 100644 index 0000000..2e83a8d --- /dev/null +++ b/docs/html/ion/Symbol/ImportLocation.html @@ -0,0 +1,129 @@ + + + + + + ImportLocation - + mdref + + + + + + + + + + + +
+ + + +

class ion\Symbol\ImportLocation

+

The import location (referring to a shared table= of a symbol.

+

Constants:

+

None.

+

Properties:

+
    +
  • public string $name
    +The name of the shared symbol table.
  • +
  • public int $location
    +The location (sid) of the symbol within the table.
  • +
+ + + +

Functions:

+
    + +
  • +

    ImportLocation::__construct

    +

    Create a new import location.

    + +

    void ion\Symbol\ImportLocation::__construct(string $name, int $location)

    +
  • + +
+ + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Symbol/ImportLocation/__construct.html b/docs/html/ion/Symbol/ImportLocation/__construct.html new file mode 100644 index 0000000..28dd4ce --- /dev/null +++ b/docs/html/ion/Symbol/ImportLocation/__construct.html @@ -0,0 +1,106 @@ + + + + + + ImportLocation::__construct - + mdref + + + + + + + + + + + +
+ + + +

void ion\Symbol\ImportLocation::__construct(string $name, int $location)

+

Create a new import location.

+

Params:

+
    +
  • string $name
    +The name of the shared symbol table.
  • +
  • int $location
    +The location (sid) of the symbol within the table.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Symbol/Table.html b/docs/html/ion/Symbol/Table.html new file mode 100644 index 0000000..d7b01ab --- /dev/null +++ b/docs/html/ion/Symbol/Table.html @@ -0,0 +1,213 @@ + + + + + + Table - + mdref + + + + + + + + + + + +
+ + + +

interface ion\Symbol\Table

+

Base interface of an ION symbol table.

+

Constants:

+

None.

+

Properties:

+

None.

+ + + +

Functions:

+
    + +
  • +

    Table::add

    +

    Add a symbol to the table.

    + +

    int ion\Symbol\Table::add(ion\Symbol|string $symbol)

    +
  • + +
  • +

    Table::find

    +

    Find a symbol within the symbol table, including imports.

    + +

    ?ion\Symbol ion\Symbol\Table::find(string|int $id)

    +
  • + +
  • +

    Table::findLocal

    +

    Find a symbol within only this symbol table, ignoring imports.

    + +

    ?ion\Symbol ion\Symbol\Table::findLocal(string|int $id)

    +
  • + +
  • +

    Table::getMaxId

    +

    Get the maximum symbol ID within the symbol table.

    + +

    int ion\Symbol\Table::getMaxId()

    +
  • + +
+ + +

Namespaces, Interfaces and Classes:

+
    + +
  • +

    Local

    +

    A local symbol table.

    + +

    class ion\Symbol\Table\Local implements ion\Symbol\Table

    +
  • + +
  • +

    PHP

    +

    The built-in PHP symbols.

    + +

    enum ion\Symbol\Table\PHP implements BackedEnum, UnitEnum, ion\Symbol\Enum

    +
  • + +
  • +

    Shared

    +

    A shared symbol table.

    + +

    class ion\Symbol\Table\Shared implements ion\Symbol\Table

    +
  • + +
  • +

    System

    +

    The built-in ION system symbols.

    + +

    enum ion\Symbol\Table\System implements BackedEnum, UnitEnum, ion\Symbol\Enum

    +
  • + +
+ +
+ + + + + + +
+ + diff --git a/docs/html/ion/Symbol/Table/Local.html b/docs/html/ion/Symbol/Table/Local.html new file mode 100644 index 0000000..1ddb8ac --- /dev/null +++ b/docs/html/ion/Symbol/Table/Local.html @@ -0,0 +1,158 @@ + + + + + + Local - + mdref + + + + + + + + + + + +
+ + + +

class ion\Symbol\Table\Local implements ion\Symbol\Table

+

A local symbol table.

+

See also the ION spec's symbol guide, and the ION doc's cookbook.

+

Constants:

+

None.

+

Properties:

+
    +
  • private array $imports = array ( +)
    +Internal cache.
  • +
  • private array $symbols = array ( +)
    +Internal cache.
  • +
+ + + +

Functions:

+
    + +
  • +

    Local::__construct

    +

    Create a local symbol table.

    + +

    void ion\Symbol\Table\Local::__construct()

    +
  • + +
  • +

    Local::import

    +

    Import a symbol table.

    + +

    void ion\Symbol\Table\Local::import(ion\Symbol\Table $table)

    +
  • + +
+ + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Symbol/Table/Local/__construct.html b/docs/html/ion/Symbol/Table/Local/__construct.html new file mode 100644 index 0000000..a44ad64 --- /dev/null +++ b/docs/html/ion/Symbol/Table/Local/__construct.html @@ -0,0 +1,113 @@ + + + + + + Local::__construct - + mdref + + + + + + + + + + + +
+ + + +

void ion\Symbol\Table\Local::__construct()

+

Create a local symbol table.

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Symbol/Table/Local/import.html b/docs/html/ion/Symbol/Table/Local/import.html new file mode 100644 index 0000000..6e8edaf --- /dev/null +++ b/docs/html/ion/Symbol/Table/Local/import.html @@ -0,0 +1,120 @@ + + + + + + Local::import - + mdref + + + + + + + + + + + +
+ + + +

void ion\Symbol\Table\Local::import(ion\Symbol\Table $table)

+

Import a symbol table.

+

Params:

+
    +
  • ion\Symbol\Table $table
    +The symbol table to import.
  • +
+

Returns:

+
    +
  • void,
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Symbol/Table/PHP.html b/docs/html/ion/Symbol/Table/PHP.html new file mode 100644 index 0000000..6b42b6b --- /dev/null +++ b/docs/html/ion/Symbol/Table/PHP.html @@ -0,0 +1,153 @@ + + + + + + PHP - + mdref + + + + + + + + + + + +
+ + + +

enum ion\Symbol\Table\PHP implements BackedEnum, UnitEnum, ion\Symbol\Enum

+

The built-in PHP symbols.

+

Constants:

+
    +
  • +PHP = 'PHP' +
  • +
  • +Reference = 'R' +
  • +
  • +Backref = 'r' +
  • +
  • +Property = 'p' +
  • +
  • +Object = 'o' +
  • +
  • +ClassObject = 'c' +
  • +
  • +MagicObject = 'O' +
  • +
  • +CustomObject = 'C' +
  • +
  • +Enum = 'E' +
  • +
  • +Serializable = 'S' +
  • +
+

Properties:

+
    +
  • public string $name
    +The built-in PHP symbols.
  • +
  • public string $value
    +The built-in PHP symbols.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Symbol/Table/Shared.html b/docs/html/ion/Symbol/Table/Shared.html new file mode 100644 index 0000000..38f37ed --- /dev/null +++ b/docs/html/ion/Symbol/Table/Shared.html @@ -0,0 +1,147 @@ + + + + + + Shared - + mdref + + + + + + + + + + + +
+ + + +

class ion\Symbol\Table\Shared implements ion\Symbol\Table

+

A shared symbol table.

+

See also the ION spec's symbol guide, and the ION doc's cookbook.

+

Constants:

+

None.

+

Properties:

+
    +
  • public string $name
    +The name of the shared symbol table.
  • +
  • public int $version
    +The version of the shared symbol table.
  • +
  • private array $symbols = array ( +)
    +Internal cache.
  • +
+ + + +

Functions:

+
    + +
  • +

    Shared::__construct

    +

    Create a shared symbol table.

    + +

    void ion\Symbol\Table\Shared::__construct(string $name, [int $version = 1, [?array $symbols = NULL]])

    +
  • + +
+ + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Symbol/Table/Shared/__construct.html b/docs/html/ion/Symbol/Table/Shared/__construct.html new file mode 100644 index 0000000..21b7d78 --- /dev/null +++ b/docs/html/ion/Symbol/Table/Shared/__construct.html @@ -0,0 +1,118 @@ + + + + + + Shared::__construct - + mdref + + + + + + + + + + + +
+ + + +

void ion\Symbol\Table\Shared::__construct(string $name, [int $version = 1, [?array $symbols = NULL]])

+

Create a shared symbol table.

+

Params:

+
    +
  • string $name
    +The name of the shared symbol table.
  • +
  • Optional int $version = 1
    +The version of the shared symbol table.
  • +
  • Optional ?array $symbols = NULL
    +Internal cache.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Symbol/Table/System.html b/docs/html/ion/Symbol/Table/System.html new file mode 100644 index 0000000..534a281 --- /dev/null +++ b/docs/html/ion/Symbol/Table/System.html @@ -0,0 +1,150 @@ + + + + + + System - + mdref + + + + + + + + + + + +
+ + + +

enum ion\Symbol\Table\System implements BackedEnum, UnitEnum, ion\Symbol\Enum

+

The built-in ION system symbols.

+

Constants:

+
    +
  • +Ion = '$ion' +
  • +
  • +Ivm_1_0 = '$ion_1_0' +
  • +
  • +IonSymbolTable = '$ion_symbol_table' +
  • +
  • +Name = 'name' +
  • +
  • +Version = 'version' +
  • +
  • +Imports = 'imports' +
  • +
  • +Symbols = 'symbols' +
  • +
  • +MaxId = 'max_id' +
  • +
  • +SharedSymbolTable = '$ion_shared_symbol_table' +
  • +
+

Properties:

+
    +
  • public string $name
    +The built-in ION system symbols.
  • +
  • public string $value
    +The built-in ION system symbols.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Symbol/Table/add.html b/docs/html/ion/Symbol/Table/add.html new file mode 100644 index 0000000..e79e62f --- /dev/null +++ b/docs/html/ion/Symbol/Table/add.html @@ -0,0 +1,122 @@ + + + + + + Table::add - + mdref + + + + + + + + + + + +
+ + + +

int ion\Symbol\Table::add(ion\Symbol|string $symbol)

+

Add a symbol to the table.

+

Params:

+
    +
  • ion\Symbol|string $symbol
    +The symbol (value) to add.
  • +
+

Returns:

+
    +
  • int, The symbol ID.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Symbol/Table/find.html b/docs/html/ion/Symbol/Table/find.html new file mode 100644 index 0000000..0a194fc --- /dev/null +++ b/docs/html/ion/Symbol/Table/find.html @@ -0,0 +1,122 @@ + + + + + + Table::find - + mdref + + + + + + + + + + + +
+ + + +

?ion\Symbol ion\Symbol\Table::find(string|int $id)

+

Find a symbol within the symbol table, including imports.

+

Params:

+
    +
  • string|int $id
    +The ID or text of the symbol to find.
  • +
+

Returns:

+
    +
  • \ion\Symbol|null, The symbol found, if any.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Symbol/Table/findLocal.html b/docs/html/ion/Symbol/Table/findLocal.html new file mode 100644 index 0000000..8d82cd6 --- /dev/null +++ b/docs/html/ion/Symbol/Table/findLocal.html @@ -0,0 +1,122 @@ + + + + + + Table::findLocal - + mdref + + + + + + + + + + + +
+ + + +

?ion\Symbol ion\Symbol\Table::findLocal(string|int $id)

+

Find a symbol within only this symbol table, ignoring imports.

+

Params:

+
    +
  • string|int $id
    +The ID or text of the symbol to find.
  • +
+

Returns:

+
    +
  • \ion\Symbol|null, The symbol found, if any.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Symbol/Table/getMaxId.html b/docs/html/ion/Symbol/Table/getMaxId.html new file mode 100644 index 0000000..1cf67a1 --- /dev/null +++ b/docs/html/ion/Symbol/Table/getMaxId.html @@ -0,0 +1,119 @@ + + + + + + Table::getMaxId - + mdref + + + + + + + + + + + +
+ + + +

int ion\Symbol\Table::getMaxId()

+

Get the maximum symbol ID within the symbol table.

+

Params:

+

None.

+

Returns:

+
    +
  • int, The maximum symbol ID.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Symbol/__construct.html b/docs/html/ion/Symbol/__construct.html new file mode 100644 index 0000000..b14dcc9 --- /dev/null +++ b/docs/html/ion/Symbol/__construct.html @@ -0,0 +1,108 @@ + + + + + + Symbol::__construct - + mdref + + + + + + + + + + + +
+ + + +

void ion\Symbol::__construct([?string $value = NULL, [int $sid = -1, [?ion\Symbol\ImportLocation $importLocation = NULL]]])

+

Create an ION symbol.

+

Params:

+
    +
  • Optional ?string $value = NULL
    +The symbol's text representation.
  • +
  • Optional int $sid = -1
    +The symbols ID, referencing its location within a shared symbol table.
  • +
  • Optional ?ion\Symbol\ImportLocation $importLocation = NULL
    +The import location referencing a shared symbol table.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Symbol/equals.html b/docs/html/ion/Symbol/equals.html new file mode 100644 index 0000000..8514f5b --- /dev/null +++ b/docs/html/ion/Symbol/equals.html @@ -0,0 +1,113 @@ + + + + + + Symbol::equals - + mdref + + + + + + + + + + + +
+ + + +

bool ion\Symbol::equals(ion\Symbol $symbol)

+

Compare two symbols for equality.

+

Two symbols are considered equal, if either:

+
    +
  • both are the same object or NULL
  • +
  • both values are NULL (unknown text), and both $importLocations match
  • +
  • both values match, regardless of $sid and $importLocation
  • +
+

Params:

+
    +
  • ion\Symbol $symbol
  • +
+

Returns:

+
    +
  • bool, whether the two Symbols equal
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Symbol/toString.html b/docs/html/ion/Symbol/toString.html new file mode 100644 index 0000000..ad456b2 --- /dev/null +++ b/docs/html/ion/Symbol/toString.html @@ -0,0 +1,100 @@ + + + + + + Symbol::toString - + mdref + + + + + + + + + + + +
+ + + +

string ion\Symbol::toString()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Timestamp.html b/docs/html/ion/Timestamp.html new file mode 100644 index 0000000..f413166 --- /dev/null +++ b/docs/html/ion/Timestamp.html @@ -0,0 +1,165 @@ + + + + + + Timestamp - + mdref + + + + + + + + + + + +
+ + + +

class ion\Timestamp extends DateTime implements DateTimeInterface, Stringable

+

An ION Timestamp.

+

See also the ION sepc's timestamp definintion, and PHP's date documentation.

+

Constants:

+

None.

+

Properties:

+
    +
  • public int $precision
    +The timestamp's precision. See ion\Timestamp\Precision.
  • +
  • public string $format
    +The timestamp's format. See ion\Timestamp\Format.
  • +
+ + + +

Functions:

+
    + +
  • +

    Timestamp::__construct

    +

    Create a new ION timestamp.

    + +

    void ion\Timestamp::__construct(ion\Timestamp\Precision|int $precision, [ion\Timestamp\Format|string|null $format = NULL, [?string $datetime = NULL, [?DateTimeZone $timezone = NULL]]])

    +
  • + +
+ + +

Namespaces, Interfaces and Classes:

+
    + +
  • +

    Format

    +

    Timestamp format.

    + +

    enum ion\Timestamp\Format implements BackedEnum, UnitEnum

    +
  • + +
  • +

    Precision

    +

    Timestamp precision.

    + +

    enum ion\Timestamp\Precision implements BackedEnum, UnitEnum

    +
  • + +
+ +
+ + + + + + +
+ + diff --git a/docs/html/ion/Timestamp/Format.html b/docs/html/ion/Timestamp/Format.html new file mode 100644 index 0000000..51d0821 --- /dev/null +++ b/docs/html/ion/Timestamp/Format.html @@ -0,0 +1,130 @@ + + + + + + Format - + mdref + + + + + + + + + + + +
+ + + +

enum ion\Timestamp\Format implements BackedEnum, UnitEnum

+

Timestamp format.

+

Constants:

+
    +
  • +Year = 'Y\T' +
  • +
  • +Month = 'Y-m\T' +
  • +
  • +Day = 'Y-m-d\T' +
  • +
  • +Min = 'Y-m-d\TH:i' +
  • +
  • +Sec = 'Y-m-d\TH:i:s' +
  • +
  • +Frac = 'Y-m-d\TH:i:s.v' +
  • +
  • +MinTZ = 'Y-m-d\TH:iP' +
  • +
  • +SecTZ = 'Y-m-d\TH:i:sP' +
  • +
  • +FracTZ = 'Y-m-d\TH:i:s.vP' +
  • +
+

Properties:

+
    +
  • public string $name
    +Timestamp format.
  • +
  • public string $value
    +Timestamp format.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Timestamp/Precision.html b/docs/html/ion/Timestamp/Precision.html new file mode 100644 index 0000000..e1029fa --- /dev/null +++ b/docs/html/ion/Timestamp/Precision.html @@ -0,0 +1,130 @@ + + + + + + Precision - + mdref + + + + + + + + + + + +
+ + + +

enum ion\Timestamp\Precision implements BackedEnum, UnitEnum

+

Timestamp precision.

+

Constants:

+
    +
  • +Year = 1 +
  • +
  • +Month = 3 +
  • +
  • +Day = 7 +
  • +
  • +Min = 23 +
  • +
  • +Sec = 55 +
  • +
  • +Frac = 119 +
  • +
  • +MinTZ = 151 +
  • +
  • +SecTZ = 183 +
  • +
  • +FracTZ = 247 +
  • +
+

Properties:

+
    +
  • public string $name
    +Timestamp precision.
  • +
  • public int $value
    +Timestamp precision.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Timestamp/__construct.html b/docs/html/ion/Timestamp/__construct.html new file mode 100644 index 0000000..3351d9b --- /dev/null +++ b/docs/html/ion/Timestamp/__construct.html @@ -0,0 +1,104 @@ + + + + + + Timestamp::__construct - + mdref + + + + + + + + + + + +
+ + + +

void ion\Timestamp::__construct(ion\Timestamp\Precision|int $precision, [ion\Timestamp\Format|string|null $format = NULL, [?string $datetime = NULL, [?DateTimeZone $timezone = NULL]]])

+

Create a new ION timestamp.

+

Params:

+
    +
  • ion\Timestamp\Precision|int $precision
    +The timestamp's precision. See ion\Timestamp\Precision.
  • +
  • Optional ion\Timestamp\Format|string|null $format = NULL
    +The timestamp's format. See ion\Timestamp\Format.
  • +
  • Optional ?string $datetime = NULL
    +The timestamp's value.
  • +
  • Optional ?DateTimeZone $timezone = NULL
    +The timestamp's timezone.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Type.html b/docs/html/ion/Type.html new file mode 100644 index 0000000..40724cd --- /dev/null +++ b/docs/html/ion/Type.html @@ -0,0 +1,170 @@ + + + + + + Type - + mdref + + + + + + + + + + + +
+ + + +

enum ion\Type implements BackedEnum, UnitEnum

+

ION data type.

+

The following special PHP classes are provided for some data types:

+
    +
  • ion\Decimal
  • +
  • ion\Timestamp
  • +
  • ion\Symbol
  • +
  • ion\Lob
  • +
+

Constants:

+
    +
  • +Null = 0 +
  • +
  • +Bool = 256 +
  • +
  • +Int = 512 +
  • +
  • +Float = 1024 +
  • +
  • +Decimal = 1280 +
  • +
  • +Timestamp = 1536 +
  • +
  • +Symbol = 1792 +
  • +
  • +String = 2048 +
  • +
  • +CLob = 2304 +
  • +
  • +BLob = 2560 +
  • +
  • +List = 2816 +
  • +
  • +SExp = 3072 +
  • +
  • +Struct = 3328 +
  • +
  • +Datagram = 3840 +
  • +
  • +EOF = -256 +
  • +
  • +NONE = -512 +
  • +
+

Properties:

+
    +
  • public string $name
    +ION data type.
  • +
  • public int $value
    +ION data type.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Unserializer.html b/docs/html/ion/Unserializer.html new file mode 100644 index 0000000..1f67ec6 --- /dev/null +++ b/docs/html/ion/Unserializer.html @@ -0,0 +1,146 @@ + + + + + + Unserializer - + mdref + + + + + + + + + + + +
+ + + +

interface ion\Unserializer

+

Unserializer interface, used to customize ion\unserialize()'s behavior.

+

Constants:

+

None.

+

Properties:

+

None.

+ + + +

Functions:

+ + + +

Namespaces, Interfaces and Classes:

+
    + +
  • +

    PHP

    +

    Specialization of the unserializer for PHP.

    + +

    class ion\Unserializer\PHP implements ion\Unserializer

    +
  • + +
+ +
+ + + + + + +
+ + diff --git a/docs/html/ion/Unserializer/PHP.html b/docs/html/ion/Unserializer/PHP.html new file mode 100644 index 0000000..24a5fba --- /dev/null +++ b/docs/html/ion/Unserializer/PHP.html @@ -0,0 +1,125 @@ + + + + + + PHP - + mdref + + + + + + + + + + + +
+ + + +

class ion\Unserializer\PHP implements ion\Unserializer

+

Specialization of the unserializer for PHP.

+

Constants:

+

None.

+

Properties:

+
    +
  • public ?ion\Reader\Options $readerOptions
    +Reader options.
  • +
  • public bool $multiSequence
    +Whether to continue reading multiple ION sequences after the first one.
  • +
  • public bool $callMagicUnserialize
    +Whether to call magic __unserialize() methods on objects to unserialize.
  • +
  • public ?string $callCustomUnserialize
    +Whether and which custom unserialize method to call on objects to unserialize.
  • +
+ + + +

Functions:

+
    + +
  • +

    PHP::__construct

    +

    Create a new ION PHP unserializer.

    + +

    void ion\Unserializer\PHP::__construct([?ion\Reader\Options $readerOptions = NULL, [bool $multiSequence = false, [bool $callMagicUnserialize = true, [?string $callCustomUnserialize = NULL]]]])

    +
  • + +
+ + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Unserializer/PHP/__construct.html b/docs/html/ion/Unserializer/PHP/__construct.html new file mode 100644 index 0000000..482da6a --- /dev/null +++ b/docs/html/ion/Unserializer/PHP/__construct.html @@ -0,0 +1,110 @@ + + + + + + PHP::__construct - + mdref + + + + + + + + + + + +
+ + + +

void ion\Unserializer\PHP::__construct([?ion\Reader\Options $readerOptions = NULL, [bool $multiSequence = false, [bool $callMagicUnserialize = true, [?string $callCustomUnserialize = NULL]]]])

+

Create a new ION PHP unserializer.

+

Params:

+
    +
  • Optional ?ion\Reader\Options $readerOptions = NULL
    +Reader options.
  • +
  • Optional bool $multiSequence = false
    +Whether to continue reading multiple ION sequences after the first one.
  • +
  • Optional bool $callMagicUnserialize = true
    +Whether to call magic __unserialize() methods on objects to unserialize.
  • +
  • Optional ?string $callCustomUnserialize = NULL
    +Whether and which custom unserialize method to call on objects to unserialize.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Unserializer/unserialize.html b/docs/html/ion/Unserializer/unserialize.html new file mode 100644 index 0000000..39922c5 --- /dev/null +++ b/docs/html/ion/Unserializer/unserialize.html @@ -0,0 +1,94 @@ + + + + + + Unserializer::unserialize - + mdref + + + + + + + + + + + +
+ + + +

mixed ion\Unserializer::unserialize(string|resource $data)

+

Params:

+
    +
  • string|resource $data
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer.html b/docs/html/ion/Writer.html new file mode 100644 index 0000000..3a32ae8 --- /dev/null +++ b/docs/html/ion/Writer.html @@ -0,0 +1,416 @@ + + + + + + Writer - + mdref + + + + + + + + + + + +
+ + + +

interface ion\Writer

+

ION writer API.

+

Constants:

+

None.

+

Properties:

+

None.

+ + + +

Functions:

+ + + +

Namespaces, Interfaces and Classes:

+
    + +
  • +

    Buffer

    +

    ION buffer writer API.

    + +

    interface ion\Writer\Buffer implements ion\Writer

    +
  • + +
  • +

    Options

    +

    ION writer options.

    + +

    class ion\Writer\Options

    +
  • + +
  • +

    Stream

    +

    ION stream writer API.

    + +

    interface ion\Writer\Stream implements ion\Writer

    +
  • + +
  • +

    Writer

    +

    Base implementation of common functionality of ION writers.

    + +

    abstract class ion\Writer\Writer implements ion\Writer

    +
  • + +
+ +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/Buffer.html b/docs/html/ion/Writer/Buffer.html new file mode 100644 index 0000000..46aee18 --- /dev/null +++ b/docs/html/ion/Writer/Buffer.html @@ -0,0 +1,191 @@ + + + + + + Buffer - + mdref + + + + + + + + + + + +
+ + + +

interface ion\Writer\Buffer implements ion\Writer

+

ION buffer writer API.

+

Constants:

+

None.

+

Properties:

+

None.

+ + + +

Functions:

+
    + +
  • +

    Buffer::getBuffer

    +

    Get the buffer written to.

    + +

    string ion\Writer\Buffer::getBuffer()

    +
  • + +
  • +

    Buffer::resetBuffer

    +

    Reset the buffer written to.

    + +

    void ion\Writer\Buffer::resetBuffer()

    +
  • + +
+ + +

Namespaces, Interfaces and Classes:

+
    + +
  • +

    Writer

    +

    IO buffer writer.

    + +

    class ion\Writer\Buffer\Writer extends ion\Writer\Writer implements ion\Writer, ion\Writer\Buffer

    +
  • + +
+ +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/Buffer/Writer.html b/docs/html/ion/Writer/Buffer/Writer.html new file mode 100644 index 0000000..6fb2aec --- /dev/null +++ b/docs/html/ion/Writer/Buffer/Writer.html @@ -0,0 +1,128 @@ + + + + + + Writer - + mdref + + + + + + + + + + + +
+ + + +

class ion\Writer\Buffer\Writer extends ion\Writer\Writer implements ion\Writer, ion\Writer\Buffer

+

IO buffer writer.

+

Constants:

+

None.

+

Properties:

+

None.

+ + + +

Functions:

+
    + +
  • +

    Writer::__construct

    +

    Create a new buffer writer.

    + +

    void ion\Writer\Buffer\Writer::__construct([?ion\Writer\Options $options = NULL])

    +
  • + +
+ + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/Buffer/Writer/__construct.html b/docs/html/ion/Writer/Buffer/Writer/__construct.html new file mode 100644 index 0000000..58fdae7 --- /dev/null +++ b/docs/html/ion/Writer/Buffer/Writer/__construct.html @@ -0,0 +1,114 @@ + + + + + + Writer::__construct - + mdref + + + + + + + + + + + +
+ + + +

void ion\Writer\Buffer\Writer::__construct([?ion\Writer\Options $options = NULL])

+

Create a new buffer writer.

+

Params:

+
    +
  • Optional ?ion\Writer\Options $options = NULL
    +Writer options.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/Buffer/getBuffer.html b/docs/html/ion/Writer/Buffer/getBuffer.html new file mode 100644 index 0000000..7ea8eff --- /dev/null +++ b/docs/html/ion/Writer/Buffer/getBuffer.html @@ -0,0 +1,105 @@ + + + + + + Buffer::getBuffer - + mdref + + + + + + + + + + + +
+ + + +

string ion\Writer\Buffer::getBuffer()

+

Get the buffer written to.

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/Buffer/resetBuffer.html b/docs/html/ion/Writer/Buffer/resetBuffer.html new file mode 100644 index 0000000..0e25545 --- /dev/null +++ b/docs/html/ion/Writer/Buffer/resetBuffer.html @@ -0,0 +1,105 @@ + + + + + + Buffer::resetBuffer - + mdref + + + + + + + + + + + +
+ + + +

void ion\Writer\Buffer::resetBuffer()

+

Reset the buffer written to.

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/Options.html b/docs/html/ion/Writer/Options.html new file mode 100644 index 0000000..b7364ad --- /dev/null +++ b/docs/html/ion/Writer/Options.html @@ -0,0 +1,187 @@ + + + + + + Options - + mdref + + + + + + + + + + + +
+ + + +

class ion\Writer\Options

+

ION writer options.

+

Constants:

+

None.

+

Properties:

+
    +
  • public ?ion\Catalog $catalog
    +ION catalog to use for symbol lookup.
  • +
  • public ?ion\Decimal\Context $decimalContext
    +Decimal context to use.
  • +
  • public bool $outputBinary
    +Whether to output binary ION.
  • +
  • public bool $compactFloats
    +Whether to write doubles which fit in 32 bits as floats.
  • +
  • public bool $escapeNonAscii
    +Whether to slash-escape all non ASCII bytes.
  • +
  • public bool $prettyPrint
    +Whether to produce pretty-printed output.
  • +
  • public bool $indentTabs
    +Whether to indent with tabs, when pretty-printing.
  • +
  • public int $indentSize
    +The number of spaces to use for indentation instead of tabs, when pretty-printing.
  • +
  • public bool $flushEveryValue
    +Whether to immediately flush every value written.
  • +
  • public int $maxContainerDepth
    +Maximum depth of nested containers.
  • +
  • public int $maxAnnotations
    +The maximum number of annotations allowed on a single value.
  • +
  • public int $tempBufferSize
    +Temporary buffer size.
  • +
+ + + +

Functions:

+
    + +
  • +

    Options::__construct

    +

    Create custom ION writer options.

    + +

    void ion\Writer\Options::__construct([?ion\Catalog $catalog = NULL, [?ion\Decimal\Context $decimalContext = NULL, [bool $outputBinary = false, [bool $compactFloats = false, [bool $escapeNonAscii = false, [bool $prettyPrint = false, [bool $indentTabs = true, [int $indentSize = 2, [bool $flushEveryValue = false, [int $maxContainerDepth = 10, [int $maxAnnotations = 10, [int $tempBufferSize = 16384]]]]]]]]]]]])

    +
  • + +
+ + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/Options/__construct.html b/docs/html/ion/Writer/Options/__construct.html new file mode 100644 index 0000000..4e5d259 --- /dev/null +++ b/docs/html/ion/Writer/Options/__construct.html @@ -0,0 +1,126 @@ + + + + + + Options::__construct - + mdref + + + + + + + + + + + +
+ + + +

void ion\Writer\Options::__construct([?ion\Catalog $catalog = NULL, [?ion\Decimal\Context $decimalContext = NULL, [bool $outputBinary = false, [bool $compactFloats = false, [bool $escapeNonAscii = false, [bool $prettyPrint = false, [bool $indentTabs = true, [int $indentSize = 2, [bool $flushEveryValue = false, [int $maxContainerDepth = 10, [int $maxAnnotations = 10, [int $tempBufferSize = 16384]]]]]]]]]]]])

+

Create custom ION writer options.

+

Params:

+
    +
  • Optional ?ion\Catalog $catalog = NULL
    +ION catalog to use for symbol lookup.
  • +
  • Optional ?ion\Decimal\Context $decimalContext = NULL
    +Decimal context to use.
  • +
  • Optional bool $outputBinary = false
    +Whether to output binary ION.
  • +
  • Optional bool $compactFloats = false
    +Whether to write doubles which fit in 32 bits as floats.
  • +
  • Optional bool $escapeNonAscii = false
    +Whether to slash-escape all non ASCII bytes.
  • +
  • Optional bool $prettyPrint = false
    +Whether to produce pretty-printed output.
  • +
  • Optional bool $indentTabs = true
    +Whether to indent with tabs, when pretty-printing.
  • +
  • Optional int $indentSize = 2
    +The number of spaces to use for indentation instead of tabs, when pretty-printing.
  • +
  • Optional bool $flushEveryValue = false
    +Whether to immediately flush every value written.
  • +
  • Optional int $maxContainerDepth = 10
    +Maximum depth of nested containers.
  • +
  • Optional int $maxAnnotations = 10
    +The maximum number of annotations allowed on a single value.
  • +
  • Optional int $tempBufferSize = 16384
    +Temporary buffer size.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/Stream.html b/docs/html/ion/Writer/Stream.html new file mode 100644 index 0000000..54d332f --- /dev/null +++ b/docs/html/ion/Writer/Stream.html @@ -0,0 +1,179 @@ + + + + + + Stream - + mdref + + + + + + + + + + + +
+ + + +

interface ion\Writer\Stream implements ion\Writer

+

ION stream writer API.

+

Constants:

+

None.

+

Properties:

+

None.

+ + + +

Functions:

+
    + +
  • +

    Stream::getStream

    +

    Get the stream being written to.

    + +

    void ion\Writer\Stream::getStream()

    +
  • + +
+ + +

Namespaces, Interfaces and Classes:

+
    + +
  • +

    Writer

    +

    ION stream writer.

    + +

    class ion\Writer\Stream\Writer extends ion\Writer\Writer implements ion\Writer, ion\Writer\Stream

    +
  • + +
+ +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/Stream/Writer.html b/docs/html/ion/Writer/Stream/Writer.html new file mode 100644 index 0000000..a2f7a2e --- /dev/null +++ b/docs/html/ion/Writer/Stream/Writer.html @@ -0,0 +1,126 @@ + + + + + + Writer - + mdref + + + + + + + + + + + +
+ + + +

class ion\Writer\Stream\Writer extends ion\Writer\Writer implements ion\Writer, ion\Writer\Stream

+

ION stream writer.

+

Constants:

+

None.

+

Properties:

+

None.

+ + + +

Functions:

+
    + +
  • +

    Writer::__construct

    +

    Create a new stream writer.

    + +

    void ion\Writer\Stream\Writer::__construct(resource $stream, [?ion\Writer\Options $options = NULL])

    +
  • + +
+ + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/Stream/Writer/__construct.html b/docs/html/ion/Writer/Stream/Writer/__construct.html new file mode 100644 index 0000000..a3de760 --- /dev/null +++ b/docs/html/ion/Writer/Stream/Writer/__construct.html @@ -0,0 +1,116 @@ + + + + + + Writer::__construct - + mdref + + + + + + + + + + + +
+ + + +

void ion\Writer\Stream\Writer::__construct(resource $stream, [?ion\Writer\Options $options = NULL])

+

Create a new stream writer.

+

Params:

+
    +
  • resource $stream
    +The stream to write to.
  • +
  • Optional ?ion\Writer\Options $options = NULL
    +Writer options.
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/Stream/getStream.html b/docs/html/ion/Writer/Stream/getStream.html new file mode 100644 index 0000000..9bb1412 --- /dev/null +++ b/docs/html/ion/Writer/Stream/getStream.html @@ -0,0 +1,107 @@ + + + + + + Stream::getStream - + mdref + + + + + + + + + + + +
+ + + +

void ion\Writer\Stream::getStream()

+

Get the stream being written to.

+

Params:

+

None.

+

Returns:

+
    +
  • resource,
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/Writer.html b/docs/html/ion/Writer/Writer.html new file mode 100644 index 0000000..296bef1 --- /dev/null +++ b/docs/html/ion/Writer/Writer.html @@ -0,0 +1,141 @@ + + + + + + Writer - + mdref + + + + + + + + + + + +
+ + + +

abstract class ion\Writer\Writer implements ion\Writer

+

Base implementation of common functionality of ION writers.

+

Constants:

+

None.

+

Properties:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/appendLob.html b/docs/html/ion/Writer/appendLob.html new file mode 100644 index 0000000..de141fb --- /dev/null +++ b/docs/html/ion/Writer/appendLob.html @@ -0,0 +1,140 @@ + + + + + + Writer::appendLob - + mdref + + + + + + + + + + + +
+ + + +

void ion\Writer::appendLob(string $data)

+

Params:

+
    +
  • string $data
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/finish.html b/docs/html/ion/Writer/finish.html new file mode 100644 index 0000000..de6d10a --- /dev/null +++ b/docs/html/ion/Writer/finish.html @@ -0,0 +1,138 @@ + + + + + + Writer::finish - + mdref + + + + + + + + + + + +
+ + + +

int ion\Writer::finish()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/finishContainer.html b/docs/html/ion/Writer/finishContainer.html new file mode 100644 index 0000000..4429d5e --- /dev/null +++ b/docs/html/ion/Writer/finishContainer.html @@ -0,0 +1,138 @@ + + + + + + Writer::finishContainer - + mdref + + + + + + + + + + + +
+ + + +

void ion\Writer::finishContainer()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/finishLob.html b/docs/html/ion/Writer/finishLob.html new file mode 100644 index 0000000..1b7b77e --- /dev/null +++ b/docs/html/ion/Writer/finishLob.html @@ -0,0 +1,138 @@ + + + + + + Writer::finishLob - + mdref + + + + + + + + + + + +
+ + + +

void ion\Writer::finishLob()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/flush.html b/docs/html/ion/Writer/flush.html new file mode 100644 index 0000000..70afb8f --- /dev/null +++ b/docs/html/ion/Writer/flush.html @@ -0,0 +1,138 @@ + + + + + + Writer::flush - + mdref + + + + + + + + + + + +
+ + + +

int ion\Writer::flush()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/getDepth.html b/docs/html/ion/Writer/getDepth.html new file mode 100644 index 0000000..8e74323 --- /dev/null +++ b/docs/html/ion/Writer/getDepth.html @@ -0,0 +1,138 @@ + + + + + + Writer::getDepth - + mdref + + + + + + + + + + + +
+ + + +

int ion\Writer::getDepth()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/startContainer.html b/docs/html/ion/Writer/startContainer.html new file mode 100644 index 0000000..e8de287 --- /dev/null +++ b/docs/html/ion/Writer/startContainer.html @@ -0,0 +1,140 @@ + + + + + + Writer::startContainer - + mdref + + + + + + + + + + + +
+ + + +

void ion\Writer::startContainer(ion\Type $type)

+

Params:

+
    +
  • ion\Type $type
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/startLob.html b/docs/html/ion/Writer/startLob.html new file mode 100644 index 0000000..7a746d4 --- /dev/null +++ b/docs/html/ion/Writer/startLob.html @@ -0,0 +1,140 @@ + + + + + + Writer::startLob - + mdref + + + + + + + + + + + +
+ + + +

void ion\Writer::startLob(ion\Type $type)

+

Params:

+
    +
  • ion\Type $type
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/writeAnnotation.html b/docs/html/ion/Writer/writeAnnotation.html new file mode 100644 index 0000000..58331d4 --- /dev/null +++ b/docs/html/ion/Writer/writeAnnotation.html @@ -0,0 +1,140 @@ + + + + + + Writer::writeAnnotation - + mdref + + + + + + + + + + + +
+ + + +

void ion\Writer::writeAnnotation([ion\Symbol|string ?>...$annotation])

+

Params:

+
    +
  • Optional ion\Symbol|string ?>...$annotation
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/writeBLob.html b/docs/html/ion/Writer/writeBLob.html new file mode 100644 index 0000000..cae1e69 --- /dev/null +++ b/docs/html/ion/Writer/writeBLob.html @@ -0,0 +1,140 @@ + + + + + + Writer::writeBLob - + mdref + + + + + + + + + + + +
+ + + +

void ion\Writer::writeBLob(string $value)

+

Params:

+
    +
  • string $value
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/writeBool.html b/docs/html/ion/Writer/writeBool.html new file mode 100644 index 0000000..b077308 --- /dev/null +++ b/docs/html/ion/Writer/writeBool.html @@ -0,0 +1,140 @@ + + + + + + Writer::writeBool - + mdref + + + + + + + + + + + +
+ + + +

void ion\Writer::writeBool(bool $value)

+

Params:

+
    +
  • bool $value
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/writeCLob.html b/docs/html/ion/Writer/writeCLob.html new file mode 100644 index 0000000..9024b64 --- /dev/null +++ b/docs/html/ion/Writer/writeCLob.html @@ -0,0 +1,140 @@ + + + + + + Writer::writeCLob - + mdref + + + + + + + + + + + +
+ + + +

void ion\Writer::writeCLob(string $value)

+

Params:

+
    +
  • string $value
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/writeDecimal.html b/docs/html/ion/Writer/writeDecimal.html new file mode 100644 index 0000000..f80a23c --- /dev/null +++ b/docs/html/ion/Writer/writeDecimal.html @@ -0,0 +1,140 @@ + + + + + + Writer::writeDecimal - + mdref + + + + + + + + + + + +
+ + + +

void ion\Writer::writeDecimal(ion\Decimal|string $value)

+

Params:

+
    +
  • ion\Decimal|string $value
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/writeFieldName.html b/docs/html/ion/Writer/writeFieldName.html new file mode 100644 index 0000000..3894a13 --- /dev/null +++ b/docs/html/ion/Writer/writeFieldName.html @@ -0,0 +1,140 @@ + + + + + + Writer::writeFieldName - + mdref + + + + + + + + + + + +
+ + + +

void ion\Writer::writeFieldName(string $name)

+

Params:

+
    +
  • string $name
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/writeFloat.html b/docs/html/ion/Writer/writeFloat.html new file mode 100644 index 0000000..11400f5 --- /dev/null +++ b/docs/html/ion/Writer/writeFloat.html @@ -0,0 +1,140 @@ + + + + + + Writer::writeFloat - + mdref + + + + + + + + + + + +
+ + + +

void ion\Writer::writeFloat(float $value)

+

Params:

+
    +
  • float $value
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/writeInt.html b/docs/html/ion/Writer/writeInt.html new file mode 100644 index 0000000..b034ec9 --- /dev/null +++ b/docs/html/ion/Writer/writeInt.html @@ -0,0 +1,140 @@ + + + + + + Writer::writeInt - + mdref + + + + + + + + + + + +
+ + + +

void ion\Writer::writeInt(string|int $value)

+

Params:

+
    +
  • string|int $value
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/writeNull.html b/docs/html/ion/Writer/writeNull.html new file mode 100644 index 0000000..975cda7 --- /dev/null +++ b/docs/html/ion/Writer/writeNull.html @@ -0,0 +1,138 @@ + + + + + + Writer::writeNull - + mdref + + + + + + + + + + + +
+ + + +

void ion\Writer::writeNull()

+

Params:

+

None.

+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/writeString.html b/docs/html/ion/Writer/writeString.html new file mode 100644 index 0000000..fd56299 --- /dev/null +++ b/docs/html/ion/Writer/writeString.html @@ -0,0 +1,140 @@ + + + + + + Writer::writeString - + mdref + + + + + + + + + + + +
+ + + +

void ion\Writer::writeString(string $value)

+

Params:

+
    +
  • string $value
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/writeSymbol.html b/docs/html/ion/Writer/writeSymbol.html new file mode 100644 index 0000000..af5500c --- /dev/null +++ b/docs/html/ion/Writer/writeSymbol.html @@ -0,0 +1,140 @@ + + + + + + Writer::writeSymbol - + mdref + + + + + + + + + + + +
+ + + +

void ion\Writer::writeSymbol(ion\Symbol|string $value)

+

Params:

+
    +
  • ion\Symbol|string $value
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/writeTimestamp.html b/docs/html/ion/Writer/writeTimestamp.html new file mode 100644 index 0000000..cd574d8 --- /dev/null +++ b/docs/html/ion/Writer/writeTimestamp.html @@ -0,0 +1,140 @@ + + + + + + Writer::writeTimestamp - + mdref + + + + + + + + + + + +
+ + + +

void ion\Writer::writeTimestamp(ion\Timestamp|string $value)

+

Params:

+
    +
  • ion\Timestamp|string $value
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/Writer/writeTypedNull.html b/docs/html/ion/Writer/writeTypedNull.html new file mode 100644 index 0000000..9295b2c --- /dev/null +++ b/docs/html/ion/Writer/writeTypedNull.html @@ -0,0 +1,140 @@ + + + + + + Writer::writeTypedNull - + mdref + + + + + + + + + + + +
+ + + +

void ion\Writer::writeTypedNull(ion\Type $type)

+

Params:

+
    +
  • ion\Type $type
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/serialize.html b/docs/html/ion/serialize.html new file mode 100644 index 0000000..9265d24 --- /dev/null +++ b/docs/html/ion/serialize.html @@ -0,0 +1,127 @@ + + + + + + serialize - + mdref + + + + + + + + + + + +
+ + + +

string ion\serialize(mixed $data, [?ion\Serializer $serializer = NULL])

+

Serialize a PHP value as ION data.

+

Serializes supported PHP values with the optionally provided \ion\Serializer:

+
    +
  • NULL
  • +
  • bool
  • +
  • int
  • +
  • float
  • +
  • string
  • +
  • references
  • +
  • arrays
  • +
  • objects (incl. \Serializable, and classes implementing magic and custom __serialize)
  • +
+

Params:

+
    +
  • mixed $data
    +PHP value(s).
  • +
  • Optional ?ion\Serializer $serializer = NULL
    +Custom serializer.
  • +
+

Returns:

+
    +
  • string, serialized ION data
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/html/ion/unserialize.html b/docs/html/ion/unserialize.html new file mode 100644 index 0000000..45c9cf3 --- /dev/null +++ b/docs/html/ion/unserialize.html @@ -0,0 +1,116 @@ + + + + + + unserialize - + mdref + + + + + + + + + + + +
+ + + +

mixed ion\unserialize(string|resource $data, [?ion\Unserializer $unserializer = NULL])

+

Unserialize ION data (stream) as PHP value(s).

+

Params:

+
    +
  • string|resource $data
    +Serialized ION data, either as string buffer or stream,.
  • +
  • Optional ?ion\Unserializer $unserializer = NULL
    +Unserialize ION data (stream) as PHP value(s).
  • +
+

Returns:

+
    +
  • mixed, unserialized PHP values
  • +
+ + + + +
+ + + + + + +
+ + diff --git a/docs/src/ion.md b/docs/src/ion.md new file mode 100644 index 0000000..66e6d4e --- /dev/null +++ b/docs/src/ion.md @@ -0,0 +1,45 @@ +# pecl/ion + +## About: +PHP extension wrapping [amzn/ion-c](https://github.com/amzn/ion-c). +See the [Amazon ION specification](https://amzn.github.io/ion-docs/). + +## License: +[BSD-2-Clause](https://github.com/awesomized/ext-ion/blob/master/LICENSE); +see [spdx.org](https://spdx.org/licenses/BSD-2-Clause.html). + +## Installation: + +[PECL](https://pecl.php.net) and [PHARext](https://pharext.org) is WIP. + +### Dependencies: +#### Required: +* PHP-8.1 + * ext/date (standard) + * ext/spl (standard) +#### Optional: +* [amzn/ion-c](https://github.com/amzn/ion-c) (bundled as git submodule) + +### Trinity: +```shell +phpize +./configure +make # -j$(nproc) +sudo make install # INSTALL=install +``` +### Try with Docker: +```shell +docker build -t php-ion +docker run --rm php-ion -r 'echo ion\serialize(ion\Symbol\Table\PHP());' +``` + +## Editor Stub: +See [ion.stub.php](https://github.com/awesomized/ext-ion/blob/master/ion.stub.php). + +## Known Issues: +Due to private internal state of ion-c's readers and writers, +instances of the following PHP classes cannot be cloned: +* ion\Reader\Reader +* ion\Writer\Writer +* ion\Serializer\PHP +* ion\Unserializer\PHP diff --git a/docs/src/ion.mdref b/docs/src/ion.mdref new file mode 100644 index 0000000..3c65265 --- /dev/null +++ b/docs/src/ion.mdref @@ -0,0 +1 @@ +./%s \ No newline at end of file diff --git a/docs/src/ion/Catalog.md b/docs/src/ion/Catalog.md new file mode 100644 index 0000000..8cd4bae --- /dev/null +++ b/docs/src/ion/Catalog.md @@ -0,0 +1,19 @@ +# class ion\Catalog implements Countable + +The Catalog holds a collection of ion\Symbol\Table instances queried from ion\Reader and ion\Writer instances. + + + +See also [the ION spec's symbol guide chapter on catalog.](https://amzn.github.io/ion-docs/docs/symbols.html#the-catalog). + + +## Constants: + +None. + +## Properties: + + * private array $symbolTables = array ( +) + Internal cache. + diff --git a/docs/src/ion/Catalog/__construct.md b/docs/src/ion/Catalog/__construct.md new file mode 100644 index 0000000..4f5f703 --- /dev/null +++ b/docs/src/ion/Catalog/__construct.md @@ -0,0 +1,13 @@ +# void ion\Catalog::__construct() + +Create a new Catalog. + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Catalog/add.md b/docs/src/ion/Catalog/add.md new file mode 100644 index 0000000..0cf16ed --- /dev/null +++ b/docs/src/ion/Catalog/add.md @@ -0,0 +1,20 @@ +# void ion\Catalog::add(ion\Symbol\Table $table) + +Add a shared symbol table to the catalog. + + + + + + +## Params: + +* ion\Symbol\Table $table + The new table to add. + + +## Returns: + +* void, + + diff --git a/docs/src/ion/Catalog/find.md b/docs/src/ion/Catalog/find.md new file mode 100644 index 0000000..f43917e --- /dev/null +++ b/docs/src/ion/Catalog/find.md @@ -0,0 +1,22 @@ +# ?ion\Symbol\Table ion\Catalog::find(string $name, [int $version = 0]) + +Find a shared symbol table within the catalog. + + + + + + +## Params: + +* string $name + The name of the symbol table. +* Optional int $version = 0 + The version the symbol table should match. + + +## Returns: + +* \Symbol\Table|null, The symbol table found, if any. + + diff --git a/docs/src/ion/Catalog/findBest.md b/docs/src/ion/Catalog/findBest.md new file mode 100644 index 0000000..f779baf --- /dev/null +++ b/docs/src/ion/Catalog/findBest.md @@ -0,0 +1,22 @@ +# ?ion\Symbol\Table ion\Catalog::findBest(string $name, [int $version = 0]) + +Find a "best match" for a shared symbol table within the catalog. + + + + + + +## Params: + +* string $name + The name of the symbol table, +* Optional int $version = 0 + The minimum version of the symbol table. + + +## Returns: + +* \Symbol\Table|null, The symbol table found, if any. + + diff --git a/docs/src/ion/Catalog/remove.md b/docs/src/ion/Catalog/remove.md new file mode 100644 index 0000000..ff0d184 --- /dev/null +++ b/docs/src/ion/Catalog/remove.md @@ -0,0 +1,20 @@ +# bool ion\Catalog::remove(ion\Symbol\Table|string $table) + +Remove a shared symbol table from the catalog. + + + + + + +## Params: + +* ion\Symbol\Table|string $table + The symbol table to renmove. + + +## Returns: + +* bool, Success. + + diff --git a/docs/src/ion/Decimal.md b/docs/src/ion/Decimal.md new file mode 100644 index 0000000..8a91cfe --- /dev/null +++ b/docs/src/ion/Decimal.md @@ -0,0 +1,20 @@ +# class ion\Decimal implements Stringable + +An arbitrary precision fixed point decimal. + + + +See also \ion\Decimal\Context, and [the ION spec's decimal docs](https://amzn.github.io/ion-docs/docs/decimal.html). + + +## Constants: + +None. + +## Properties: + + * public string|int $number + The decimal number. + * public ?ion\Decimal\Context $context + The decimal context. + diff --git a/docs/src/ion/Decimal/Context.md b/docs/src/ion/Decimal/Context.md new file mode 100644 index 0000000..df471ba --- /dev/null +++ b/docs/src/ion/Decimal/Context.md @@ -0,0 +1,26 @@ +# class ion\Decimal\Context + +An ion\Decimal's context. + + + + + + +## Constants: + +None. + +## Properties: + + * public int $digits + Maximum digits. + * public int $eMax + Maximum exponent. + * public int $eMin + Minimum exponent. + * public ion\Decimal\Context\Rounding|int $round + Rounding mode. + * public bool $clamp + Whether to clamp. + diff --git a/docs/src/ion/Decimal/Context/Dec128.md b/docs/src/ion/Decimal/Context/Dec128.md new file mode 100644 index 0000000..31f047e --- /dev/null +++ b/docs/src/ion/Decimal/Context/Dec128.md @@ -0,0 +1,13 @@ +# static ion\Decimal\Context ion\Decimal\Context::Dec128() + +Create a context suitable for 128bit decimals. + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Decimal/Context/Dec32.md b/docs/src/ion/Decimal/Context/Dec32.md new file mode 100644 index 0000000..eb0d090 --- /dev/null +++ b/docs/src/ion/Decimal/Context/Dec32.md @@ -0,0 +1,13 @@ +# static ion\Decimal\Context ion\Decimal\Context::Dec32() + +Create a context suitable for 32bit decimals. + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Decimal/Context/Dec64.md b/docs/src/ion/Decimal/Context/Dec64.md new file mode 100644 index 0000000..46ea1b4 --- /dev/null +++ b/docs/src/ion/Decimal/Context/Dec64.md @@ -0,0 +1,13 @@ +# static ion\Decimal\Context ion\Decimal\Context::Dec64() + +Create a context suitable for 64bit decimals. + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Decimal/Context/DecMax.md b/docs/src/ion/Decimal/Context/DecMax.md new file mode 100644 index 0000000..9d1cf7f --- /dev/null +++ b/docs/src/ion/Decimal/Context/DecMax.md @@ -0,0 +1,15 @@ +# static ion\Decimal\Context ion\Decimal\Context::DecMax([ion\Decimal\Context\Rounding|int $round = ion\Decimal\Context\Rounding::HalfEven]) + +Create a context with maximum settings. + + + + + + +## Params: + +* Optional ion\Decimal\Context\Rounding|int $round = ion\Decimal\Context\Rounding::HalfEven + Rounding mode. + + diff --git a/docs/src/ion/Decimal/Context/Rounding.md b/docs/src/ion/Decimal/Context/Rounding.md new file mode 100644 index 0000000..64aded3 --- /dev/null +++ b/docs/src/ion/Decimal/Context/Rounding.md @@ -0,0 +1,28 @@ +# enum ion\Decimal\Context\Rounding implements BackedEnum, UnitEnum + +Rounding mode. + + + + + + +## Constants: + + * Ceiling = 0 + * Up = 1 + * HalfUp = 2 + * HalfEven = 3 + * HalfDown = 4 + * Down = 5 + * Floor = 6 + * Down05Up = 7 + + +## Properties: + + * public string $name + Rounding mode. + * public int $value + Rounding mode. + diff --git a/docs/src/ion/Decimal/Context/__construct.md b/docs/src/ion/Decimal/Context/__construct.md new file mode 100644 index 0000000..38f1f69 --- /dev/null +++ b/docs/src/ion/Decimal/Context/__construct.md @@ -0,0 +1,23 @@ +# void ion\Decimal\Context::__construct(int $digits, int $eMax, int $eMin, ion\Decimal\Context\Rounding|int $round, bool $clamp) + +Create a new decimal context. + + + + + + +## Params: + +* int $digits + Maximum digits. +* int $eMax + Maximum exponent. +* int $eMin + Minimum exponent. +* ion\Decimal\Context\Rounding|int $round + Rounding mode. +* bool $clamp + Whether to clamp. + + diff --git a/docs/src/ion/Decimal/__construct.md b/docs/src/ion/Decimal/__construct.md new file mode 100644 index 0000000..3beef24 --- /dev/null +++ b/docs/src/ion/Decimal/__construct.md @@ -0,0 +1,17 @@ +# void ion\Decimal::__construct(string|int $number, [?ion\Decimal\Context $context = NULL]) + +Create a new fixed point decimal. + + + + + + +## Params: + +* string|int $number + The decimal number. +* Optional ?ion\Decimal\Context $context = NULL + The decimal context. + + diff --git a/docs/src/ion/Decimal/equals.md b/docs/src/ion/Decimal/equals.md new file mode 100644 index 0000000..56e25e1 --- /dev/null +++ b/docs/src/ion/Decimal/equals.md @@ -0,0 +1,20 @@ +# bool ion\Decimal::equals(ion\Decimal $decimal) + +Check two decimals for equality. + + + + + + +## Params: + +* ion\Decimal $decimal + The decimal to compare to. + + +## Returns: + +* bool, Whether both decimals equal. + + diff --git a/docs/src/ion/Decimal/isInt.md b/docs/src/ion/Decimal/isInt.md new file mode 100644 index 0000000..211643b --- /dev/null +++ b/docs/src/ion/Decimal/isInt.md @@ -0,0 +1,18 @@ +# bool ion\Decimal::isInt() + +Check whether the decimal is actually a big integer. + + + + + + +## Params: + +None. + +## Returns: + +* bool, Whether the decimal is actually an integer. + + diff --git a/docs/src/ion/Decimal/toInt.md b/docs/src/ion/Decimal/toInt.md new file mode 100644 index 0000000..741be28 --- /dev/null +++ b/docs/src/ion/Decimal/toInt.md @@ -0,0 +1,13 @@ +# int ion\Decimal::toInt() + +Get the integer represention of the decimal. + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Decimal/toString.md b/docs/src/ion/Decimal/toString.md new file mode 100644 index 0000000..f5da7b5 --- /dev/null +++ b/docs/src/ion/Decimal/toString.md @@ -0,0 +1,13 @@ +# string ion\Decimal::toString() + +Get the string representation of the decimal. + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Exception.md b/docs/src/ion/Exception.md new file mode 100644 index 0000000..73f3f54 --- /dev/null +++ b/docs/src/ion/Exception.md @@ -0,0 +1,16 @@ +# class ion\Exception extends Exception implements Stringable, Throwable + +Base exception for the ION extension. + + + + + + +## Constants: + +None. + +## Properties: + +None. diff --git a/docs/src/ion/LOB.md b/docs/src/ion/LOB.md new file mode 100644 index 0000000..e6a3afe --- /dev/null +++ b/docs/src/ion/LOB.md @@ -0,0 +1,20 @@ +# class ion\LOB + +A large object. + + + +See also \ion\Type, [the ION spec's BLob definition](https://amzn.github.io/ion-docs/docs/spec.html#blob), and [the ION sepc's CLob definition](https://amzn.github.io/ion-docs/docs/spec.html#clob). + + +## Constants: + +None. + +## Properties: + + * public string $value + The value of the large object. + * public ion\Type $type + The type (CLob/BLob). + diff --git a/docs/src/ion/LOB/__construct.md b/docs/src/ion/LOB/__construct.md new file mode 100644 index 0000000..d1b7324 --- /dev/null +++ b/docs/src/ion/LOB/__construct.md @@ -0,0 +1,17 @@ +# void ion\LOB::__construct(string $value, [ion\Type $type = ion\Type::CLob]) + +Create an ION large object. + + + + + + +## Params: + +* string $value + The value of the large object. +* Optional ion\Type $type = ion\Type::CLob + The type (CLob/BLob). + + diff --git a/docs/src/ion/Reader.md b/docs/src/ion/Reader.md new file mode 100644 index 0000000..3de045f --- /dev/null +++ b/docs/src/ion/Reader.md @@ -0,0 +1,16 @@ +# interface ion\Reader implements Iterator, RecursiveIterator, Traversable + +ION reader API. + + + + + + +## Constants: + +None. + +## Properties: + +None. diff --git a/docs/src/ion/Reader/Buffer.md b/docs/src/ion/Reader/Buffer.md new file mode 100644 index 0000000..32a9f99 --- /dev/null +++ b/docs/src/ion/Reader/Buffer.md @@ -0,0 +1,16 @@ +# interface ion\Reader\Buffer implements Iterator, RecursiveIterator, Traversable, ion\Reader + +ION string buffer reader API. + + + + + + +## Constants: + +None. + +## Properties: + +None. diff --git a/docs/src/ion/Reader/Buffer/Reader.md b/docs/src/ion/Reader/Buffer/Reader.md new file mode 100644 index 0000000..bcdabf9 --- /dev/null +++ b/docs/src/ion/Reader/Buffer/Reader.md @@ -0,0 +1,16 @@ +# class ion\Reader\Buffer\Reader extends ion\Reader\Reader implements Iterator, RecursiveIterator, Traversable, ion\Reader, ion\Reader\Buffer + +ION string buffer reader. + + + + + + +## Constants: + +None. + +## Properties: + +None. diff --git a/docs/src/ion/Reader/Buffer/Reader/__construct.md b/docs/src/ion/Reader/Buffer/Reader/__construct.md new file mode 100644 index 0000000..01ba839 --- /dev/null +++ b/docs/src/ion/Reader/Buffer/Reader/__construct.md @@ -0,0 +1,17 @@ +# void ion\Reader\Buffer\Reader::__construct(string $buffer, [?ion\Reader\Options $options = NULL]) + +Create a new string buffer reader. + + + + + + +## Params: + +* string $buffer + The buffer to read from. +* Optional ?ion\Reader\Options $options = NULL + Reader options. + + diff --git a/docs/src/ion/Reader/Buffer/getBuffer.md b/docs/src/ion/Reader/Buffer/getBuffer.md new file mode 100644 index 0000000..98c93da --- /dev/null +++ b/docs/src/ion/Reader/Buffer/getBuffer.md @@ -0,0 +1,18 @@ +# string ion\Reader\Buffer::getBuffer() + +Get the buffer read from. + + + + + + +## Params: + +None. + +## Returns: + +* string, The buffer read from. + + diff --git a/docs/src/ion/Reader/Options.md b/docs/src/ion/Reader/Options.md new file mode 100644 index 0000000..76245b7 --- /dev/null +++ b/docs/src/ion/Reader/Options.md @@ -0,0 +1,34 @@ +# class ion\Reader\Options + +Reader options. + + + + + + +## Constants: + +None. + +## Properties: + + * public ?ion\Catalog $catalog + ION catalog to use for symbol lookup. + * public ?ion\Decimal\Context $decimalContext + Decimal context to use. + * public ?Closure $onContextChange + Callback as function(\ion\Reader):void called upon local symbol table context change. + * public bool $returnSystemValues + Whether to return otherwise hidden system values. + * public int $maxContainerDepth + The maximum depth of nested containers. + * public int $maxAnnotations + The maximum number of annotations allowed on a single value. + * public int $annotationBufferSize + The maximum number of bytes of all annotations on a single value. + * public int $tempBufferSize + The maximum number of bytes of a symbol/value/chunk. + * public bool $skipCharacterValidation + Whether to skip UTF-8 validation. + diff --git a/docs/src/ion/Reader/Options/__construct.md b/docs/src/ion/Reader/Options/__construct.md new file mode 100644 index 0000000..1ff508c --- /dev/null +++ b/docs/src/ion/Reader/Options/__construct.md @@ -0,0 +1,31 @@ +# void ion\Reader\Options::__construct([?ion\Catalog $catalog = NULL, [?ion\Decimal\Context $decimalContext = NULL, [?Closure $onContextChange = NULL, [bool $returnSystemValues = false, [int $maxContainerDepth = 10, [int $maxAnnotations = 10, [int $annotationBufferSize = 16384, [int $tempBufferSize = 16384, [bool $skipCharacterValidation = false]]]]]]]]]) + + + + + + + + +## Params: + +* Optional ?ion\Catalog $catalog = NULL + ION catalog to use for symbol lookup. +* Optional ?ion\Decimal\Context $decimalContext = NULL + Decimal context to use. +* Optional ?Closure $onContextChange = NULL + Callback as function(\ion\Reader):void called upon local symbol table context change. +* Optional bool $returnSystemValues = false + Whether to return otherwise hidden system values. +* Optional int $maxContainerDepth = 10 + The maximum depth of nested containers. +* Optional int $maxAnnotations = 10 + The maximum number of annotations allowed on a single value. +* Optional int $annotationBufferSize = 16384 + The maximum number of bytes of all annotations on a single value. +* Optional int $tempBufferSize = 16384 + The maximum number of bytes of a symbol/value/chunk. +* Optional bool $skipCharacterValidation = false + Whether to skip UTF-8 validation. + + diff --git a/docs/src/ion/Reader/Reader.md b/docs/src/ion/Reader/Reader.md new file mode 100644 index 0000000..d97f194 --- /dev/null +++ b/docs/src/ion/Reader/Reader.md @@ -0,0 +1,18 @@ +# abstract class ion\Reader\Reader implements Iterator, RecursiveIterator, Traversable, ion\Reader + +Base implementation of ION readers. + + + + + + +## Constants: + +None. + +## Properties: + + * public ?ion\Reader\Options $options + Reader options. + diff --git a/docs/src/ion/Reader/Stream.md b/docs/src/ion/Reader/Stream.md new file mode 100644 index 0000000..82cd808 --- /dev/null +++ b/docs/src/ion/Reader/Stream.md @@ -0,0 +1,16 @@ +# interface ion\Reader\Stream implements Iterator, RecursiveIterator, Traversable, ion\Reader + +ION stream reader API. + + + + + + +## Constants: + +None. + +## Properties: + +None. diff --git a/docs/src/ion/Reader/Stream/Reader.md b/docs/src/ion/Reader/Stream/Reader.md new file mode 100644 index 0000000..351f926 --- /dev/null +++ b/docs/src/ion/Reader/Stream/Reader.md @@ -0,0 +1,16 @@ +# class ion\Reader\Stream\Reader extends ion\Reader\Reader implements Iterator, RecursiveIterator, Traversable, ion\Reader, ion\Reader\Stream + +ION stream reader. + + + + + + +## Constants: + +None. + +## Properties: + +None. diff --git a/docs/src/ion/Reader/Stream/Reader/__construct.md b/docs/src/ion/Reader/Stream/Reader/__construct.md new file mode 100644 index 0000000..badd8fb --- /dev/null +++ b/docs/src/ion/Reader/Stream/Reader/__construct.md @@ -0,0 +1,17 @@ +# void ion\Reader\Stream\Reader::__construct(resource $stream, [?ion\Reader\Options $options = NULL]) + +Create a new stream reader. + + + + + + +## Params: + +* resource $stream + The stream to read from. +* Optional ?ion\Reader\Options $options = NULL + Reader options. + + diff --git a/docs/src/ion/Reader/Stream/getStream.md b/docs/src/ion/Reader/Stream/getStream.md new file mode 100644 index 0000000..ac5c1a8 --- /dev/null +++ b/docs/src/ion/Reader/Stream/getStream.md @@ -0,0 +1,18 @@ +# void ion\Reader\Stream::getStream() + +Get the stream read from. + + + + + + +## Params: + +None. + +## Returns: + +* resource, The stream read from. + + diff --git a/docs/src/ion/Reader/Stream/resetStream.md b/docs/src/ion/Reader/Stream/resetStream.md new file mode 100644 index 0000000..54fd83c --- /dev/null +++ b/docs/src/ion/Reader/Stream/resetStream.md @@ -0,0 +1,15 @@ +# void ion\Reader\Stream::resetStream(resource $stream) + +Reset the stream read from. + + + + + + +## Params: + +* resource $stream + The new stream to from. + + diff --git a/docs/src/ion/Reader/Stream/resetStreamWithLength.md b/docs/src/ion/Reader/Stream/resetStreamWithLength.md new file mode 100644 index 0000000..5bd3436 --- /dev/null +++ b/docs/src/ion/Reader/Stream/resetStreamWithLength.md @@ -0,0 +1,17 @@ +# void ion\Reader\Stream::resetStreamWithLength(resource $stream, int $length) + +Reset the stream read from, limiting length to read. + + + + + + +## Params: + +* resource $stream + The stream to read from. +* int $length + The maximum length to read from $stream. + + diff --git a/docs/src/ion/Reader/countAnnotations.md b/docs/src/ion/Reader/countAnnotations.md new file mode 100644 index 0000000..c6ce471 --- /dev/null +++ b/docs/src/ion/Reader/countAnnotations.md @@ -0,0 +1,13 @@ +# int ion\Reader::countAnnotations() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Reader/getAnnotation.md b/docs/src/ion/Reader/getAnnotation.md new file mode 100644 index 0000000..f9d1ea6 --- /dev/null +++ b/docs/src/ion/Reader/getAnnotation.md @@ -0,0 +1,14 @@ +# string ion\Reader::getAnnotation(int $index) + + + + + + + + +## Params: + +* int $index + + diff --git a/docs/src/ion/Reader/getAnnotationSymbol.md b/docs/src/ion/Reader/getAnnotationSymbol.md new file mode 100644 index 0000000..c81654c --- /dev/null +++ b/docs/src/ion/Reader/getAnnotationSymbol.md @@ -0,0 +1,14 @@ +# ion\Symbol ion\Reader::getAnnotationSymbol(int $index) + + + + + + + + +## Params: + +* int $index + + diff --git a/docs/src/ion/Reader/getAnnotationSymbols.md b/docs/src/ion/Reader/getAnnotationSymbols.md new file mode 100644 index 0000000..7ce7d7f --- /dev/null +++ b/docs/src/ion/Reader/getAnnotationSymbols.md @@ -0,0 +1,13 @@ +# array ion\Reader::getAnnotationSymbols() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Reader/getAnnotations.md b/docs/src/ion/Reader/getAnnotations.md new file mode 100644 index 0000000..8ff8d5c --- /dev/null +++ b/docs/src/ion/Reader/getAnnotations.md @@ -0,0 +1,13 @@ +# array ion\Reader::getAnnotations() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Reader/getDepth.md b/docs/src/ion/Reader/getDepth.md new file mode 100644 index 0000000..a47ccdf --- /dev/null +++ b/docs/src/ion/Reader/getDepth.md @@ -0,0 +1,13 @@ +# int ion\Reader::getDepth() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Reader/getFieldName.md b/docs/src/ion/Reader/getFieldName.md new file mode 100644 index 0000000..9f4c904 --- /dev/null +++ b/docs/src/ion/Reader/getFieldName.md @@ -0,0 +1,13 @@ +# string ion\Reader::getFieldName() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Reader/getFieldNameSymbol.md b/docs/src/ion/Reader/getFieldNameSymbol.md new file mode 100644 index 0000000..98481e7 --- /dev/null +++ b/docs/src/ion/Reader/getFieldNameSymbol.md @@ -0,0 +1,13 @@ +# ion\Symbol ion\Reader::getFieldNameSymbol() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Reader/getPosition.md b/docs/src/ion/Reader/getPosition.md new file mode 100644 index 0000000..80e0ad0 --- /dev/null +++ b/docs/src/ion/Reader/getPosition.md @@ -0,0 +1,13 @@ +# int ion\Reader::getPosition() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Reader/getType.md b/docs/src/ion/Reader/getType.md new file mode 100644 index 0000000..e1961a1 --- /dev/null +++ b/docs/src/ion/Reader/getType.md @@ -0,0 +1,13 @@ +# ion\Type ion\Reader::getType() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Reader/getValueLength.md b/docs/src/ion/Reader/getValueLength.md new file mode 100644 index 0000000..180c30e --- /dev/null +++ b/docs/src/ion/Reader/getValueLength.md @@ -0,0 +1,13 @@ +# int ion\Reader::getValueLength() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Reader/getValueOffset.md b/docs/src/ion/Reader/getValueOffset.md new file mode 100644 index 0000000..703643d --- /dev/null +++ b/docs/src/ion/Reader/getValueOffset.md @@ -0,0 +1,13 @@ +# int ion\Reader::getValueOffset() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Reader/hasAnnotation.md b/docs/src/ion/Reader/hasAnnotation.md new file mode 100644 index 0000000..0301a49 --- /dev/null +++ b/docs/src/ion/Reader/hasAnnotation.md @@ -0,0 +1,14 @@ +# bool ion\Reader::hasAnnotation(string $annotation) + + + + + + + + +## Params: + +* string $annotation + + diff --git a/docs/src/ion/Reader/hasAnnotations.md b/docs/src/ion/Reader/hasAnnotations.md new file mode 100644 index 0000000..cc54365 --- /dev/null +++ b/docs/src/ion/Reader/hasAnnotations.md @@ -0,0 +1,13 @@ +# bool ion\Reader::hasAnnotations() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Reader/isInStruct.md b/docs/src/ion/Reader/isInStruct.md new file mode 100644 index 0000000..b1e74f6 --- /dev/null +++ b/docs/src/ion/Reader/isInStruct.md @@ -0,0 +1,13 @@ +# bool ion\Reader::isInStruct() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Reader/isNull.md b/docs/src/ion/Reader/isNull.md new file mode 100644 index 0000000..bd341ae --- /dev/null +++ b/docs/src/ion/Reader/isNull.md @@ -0,0 +1,13 @@ +# bool ion\Reader::isNull() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Reader/readBool.md b/docs/src/ion/Reader/readBool.md new file mode 100644 index 0000000..3ae3dc6 --- /dev/null +++ b/docs/src/ion/Reader/readBool.md @@ -0,0 +1,13 @@ +# bool ion\Reader::readBool() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Reader/readDecimal.md b/docs/src/ion/Reader/readDecimal.md new file mode 100644 index 0000000..dfbfe1d --- /dev/null +++ b/docs/src/ion/Reader/readDecimal.md @@ -0,0 +1,13 @@ +# ion\Decimal ion\Reader::readDecimal() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Reader/readFloat.md b/docs/src/ion/Reader/readFloat.md new file mode 100644 index 0000000..4e93dd5 --- /dev/null +++ b/docs/src/ion/Reader/readFloat.md @@ -0,0 +1,13 @@ +# float ion\Reader::readFloat() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Reader/readInt.md b/docs/src/ion/Reader/readInt.md new file mode 100644 index 0000000..bcb1cb2 --- /dev/null +++ b/docs/src/ion/Reader/readInt.md @@ -0,0 +1,13 @@ +# string|int ion\Reader::readInt() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Reader/readLob.md b/docs/src/ion/Reader/readLob.md new file mode 100644 index 0000000..22e2a9d --- /dev/null +++ b/docs/src/ion/Reader/readLob.md @@ -0,0 +1,13 @@ +# string ion\Reader::readLob() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Reader/readLobPart.md b/docs/src/ion/Reader/readLobPart.md new file mode 100644 index 0000000..81136af --- /dev/null +++ b/docs/src/ion/Reader/readLobPart.md @@ -0,0 +1,16 @@ +# bool ion\Reader::readLobPart( &$string, [int $length = 4096]) + + + + + + + + +## Params: + +* Reference &$string + +* Optional int $length = 4096 + + diff --git a/docs/src/ion/Reader/readNull.md b/docs/src/ion/Reader/readNull.md new file mode 100644 index 0000000..6a962fe --- /dev/null +++ b/docs/src/ion/Reader/readNull.md @@ -0,0 +1,13 @@ +# ion\Type ion\Reader::readNull() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Reader/readString.md b/docs/src/ion/Reader/readString.md new file mode 100644 index 0000000..dfd9732 --- /dev/null +++ b/docs/src/ion/Reader/readString.md @@ -0,0 +1,13 @@ +# string ion\Reader::readString() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Reader/readStringPart.md b/docs/src/ion/Reader/readStringPart.md new file mode 100644 index 0000000..65258b0 --- /dev/null +++ b/docs/src/ion/Reader/readStringPart.md @@ -0,0 +1,16 @@ +# bool ion\Reader::readStringPart( &$string, [int $length = 4096]) + + + + + + + + +## Params: + +* Reference &$string + +* Optional int $length = 4096 + + diff --git a/docs/src/ion/Reader/readSymbol.md b/docs/src/ion/Reader/readSymbol.md new file mode 100644 index 0000000..ca64dea --- /dev/null +++ b/docs/src/ion/Reader/readSymbol.md @@ -0,0 +1,13 @@ +# ion\Symbol ion\Reader::readSymbol() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Reader/readTimestamp.md b/docs/src/ion/Reader/readTimestamp.md new file mode 100644 index 0000000..c01d40b --- /dev/null +++ b/docs/src/ion/Reader/readTimestamp.md @@ -0,0 +1,13 @@ +# ion\Timestamp ion\Reader::readTimestamp() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Reader/seek.md b/docs/src/ion/Reader/seek.md new file mode 100644 index 0000000..c6bad2a --- /dev/null +++ b/docs/src/ion/Reader/seek.md @@ -0,0 +1,15 @@ +# void ion\Reader::seek(int $offset, [int $length = -1]) + + + + + + + + +## Params: + +* int $offset +* Optional int $length = -1 + + diff --git a/docs/src/ion/Serializer.md b/docs/src/ion/Serializer.md new file mode 100644 index 0000000..f55b5d2 --- /dev/null +++ b/docs/src/ion/Serializer.md @@ -0,0 +1,16 @@ +# interface ion\Serializer + +Serializer interface, used to customize ion\serialize()'s behavior. + + + + + + +## Constants: + +None. + +## Properties: + +None. diff --git a/docs/src/ion/Serializer/PHP.md b/docs/src/ion/Serializer/PHP.md new file mode 100644 index 0000000..4dec9eb --- /dev/null +++ b/docs/src/ion/Serializer/PHP.md @@ -0,0 +1,24 @@ +# class ion\Serializer\PHP implements ion\Serializer + +Specialization of the serializer for PHP. + + + + + + +## Constants: + +None. + +## Properties: + + * public ?ion\Writer\Options $writerOptions + Writer options. + * public bool $multiSequence + Whether to write the top level array as multiple ION sequences. + * public bool $callMagicSerialize + Whether to call magic __serialize() methods on objects to serialize. + * public ?string $callCustomSerialize + Whether and which custom serialize method to call on objects to serialize. + diff --git a/docs/src/ion/Serializer/PHP/__construct.md b/docs/src/ion/Serializer/PHP/__construct.md new file mode 100644 index 0000000..4cbce8a --- /dev/null +++ b/docs/src/ion/Serializer/PHP/__construct.md @@ -0,0 +1,21 @@ +# void ion\Serializer\PHP::__construct([?ion\Writer\Options $writerOptions = NULL, [bool $multiSequence = false, [bool $callMagicSerialize = true, [?string $callCustomSerialize = NULL]]]]) + +Create a new PHP ION serializer. + + + + + + +## Params: + +* Optional ?ion\Writer\Options $writerOptions = NULL + Writer options. +* Optional bool $multiSequence = false + Whether to write the top level array as multiple ION sequences. +* Optional bool $callMagicSerialize = true + Whether to call magic __serialize() methods on objects to serialize. +* Optional ?string $callCustomSerialize = NULL + Whether and which custom serialize method to call on objects to serialize. + + diff --git a/docs/src/ion/Serializer/serialize.md b/docs/src/ion/Serializer/serialize.md new file mode 100644 index 0000000..f0c89a6 --- /dev/null +++ b/docs/src/ion/Serializer/serialize.md @@ -0,0 +1,14 @@ +# string ion\Serializer::serialize(mixed $data) + + + + + + + + +## Params: + +* mixed $data + + diff --git a/docs/src/ion/Symbol.md b/docs/src/ion/Symbol.md new file mode 100644 index 0000000..9ccfad9 --- /dev/null +++ b/docs/src/ion/Symbol.md @@ -0,0 +1,22 @@ +# class ion\Symbol implements Stringable + + + + + +See also [ION spec's symbol definition](https://amzn.github.io/ion-docs/docs/spec.html#symbol), and [ION spec's symbol guide](https://amzn.github.io/ion-docs/guides/symbols-guide.html). + + +## Constants: + +None. + +## Properties: + + * public ?string $value + The symbol's text representation. + * public int $sid + The symbols ID, referencing its location within a shared symbol table. + * public ?ion\Symbol\ImportLocation $importLocation + The import location referencing a shared symbol table. + diff --git a/docs/src/ion/Symbol/Enum.md b/docs/src/ion/Symbol/Enum.md new file mode 100644 index 0000000..26ff533 --- /dev/null +++ b/docs/src/ion/Symbol/Enum.md @@ -0,0 +1,16 @@ +# interface ion\Symbol\Enum + +Base interface of built-in shared symbol tables. + + + + + + +## Constants: + +None. + +## Properties: + +None. diff --git a/docs/src/ion/Symbol/Enum/toSID.md b/docs/src/ion/Symbol/Enum/toSID.md new file mode 100644 index 0000000..3b61090 --- /dev/null +++ b/docs/src/ion/Symbol/Enum/toSID.md @@ -0,0 +1,18 @@ +# int ion\Symbol\Enum::toSID() + + + + + + + + +## Params: + +None. + +## Returns: + +* int, The symbol id. + + diff --git a/docs/src/ion/Symbol/Enum/toString.md b/docs/src/ion/Symbol/Enum/toString.md new file mode 100644 index 0000000..dd67145 --- /dev/null +++ b/docs/src/ion/Symbol/Enum/toString.md @@ -0,0 +1,18 @@ +# string ion\Symbol\Enum::toString() + + + + + + + + +## Params: + +None. + +## Returns: + +* string, The symbol's textual representation. + + diff --git a/docs/src/ion/Symbol/Enum/toSymbol.md b/docs/src/ion/Symbol/Enum/toSymbol.md new file mode 100644 index 0000000..7701670 --- /dev/null +++ b/docs/src/ion/Symbol/Enum/toSymbol.md @@ -0,0 +1,18 @@ +# ion\Symbol ion\Symbol\Enum::toSymbol() + + + + + + + + +## Params: + +None. + +## Returns: + +* \ion\Symbol, Instance of the symbol. + + diff --git a/docs/src/ion/Symbol/ImportLocation.md b/docs/src/ion/Symbol/ImportLocation.md new file mode 100644 index 0000000..18280d6 --- /dev/null +++ b/docs/src/ion/Symbol/ImportLocation.md @@ -0,0 +1,20 @@ +# class ion\Symbol\ImportLocation + +The import location (referring to a shared table= of a symbol. + + + + + + +## Constants: + +None. + +## Properties: + + * public string $name + The name of the shared symbol table. + * public int $location + The location (sid) of the symbol within the table. + diff --git a/docs/src/ion/Symbol/ImportLocation/__construct.md b/docs/src/ion/Symbol/ImportLocation/__construct.md new file mode 100644 index 0000000..2697eb6 --- /dev/null +++ b/docs/src/ion/Symbol/ImportLocation/__construct.md @@ -0,0 +1,17 @@ +# void ion\Symbol\ImportLocation::__construct(string $name, int $location) + +Create a new import location. + + + + + + +## Params: + +* string $name + The name of the shared symbol table. +* int $location + The location (sid) of the symbol within the table. + + diff --git a/docs/src/ion/Symbol/Table.md b/docs/src/ion/Symbol/Table.md new file mode 100644 index 0000000..12403eb --- /dev/null +++ b/docs/src/ion/Symbol/Table.md @@ -0,0 +1,16 @@ +# interface ion\Symbol\Table + +Base interface of an ION symbol table. + + + + + + +## Constants: + +None. + +## Properties: + +None. diff --git a/docs/src/ion/Symbol/Table/Local.md b/docs/src/ion/Symbol/Table/Local.md new file mode 100644 index 0000000..31ce291 --- /dev/null +++ b/docs/src/ion/Symbol/Table/Local.md @@ -0,0 +1,22 @@ +# class ion\Symbol\Table\Local implements ion\Symbol\Table + +A local symbol table. + + + +See also [the ION spec's symbol guide](https://amzn.github.io/ion-docs/guides/symbols-guide.html), and [the ION doc's cookbook](https://amzn.github.io/ion-docs/guides/cookbook.html#using-a-local-symbol-table). + + +## Constants: + +None. + +## Properties: + + * private array $imports = array ( +) + Internal cache. + * private array $symbols = array ( +) + Internal cache. + diff --git a/docs/src/ion/Symbol/Table/Local/__construct.md b/docs/src/ion/Symbol/Table/Local/__construct.md new file mode 100644 index 0000000..1221557 --- /dev/null +++ b/docs/src/ion/Symbol/Table/Local/__construct.md @@ -0,0 +1,13 @@ +# void ion\Symbol\Table\Local::__construct() + +Create a local symbol table. + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Symbol/Table/Local/import.md b/docs/src/ion/Symbol/Table/Local/import.md new file mode 100644 index 0000000..bc39050 --- /dev/null +++ b/docs/src/ion/Symbol/Table/Local/import.md @@ -0,0 +1,20 @@ +# void ion\Symbol\Table\Local::import(ion\Symbol\Table $table) + +Import a symbol table. + + + + + + +## Params: + +* ion\Symbol\Table $table + The symbol table to import. + + +## Returns: + +* void, + + diff --git a/docs/src/ion/Symbol/Table/PHP.md b/docs/src/ion/Symbol/Table/PHP.md new file mode 100644 index 0000000..e7662ba --- /dev/null +++ b/docs/src/ion/Symbol/Table/PHP.md @@ -0,0 +1,30 @@ +# enum ion\Symbol\Table\PHP implements BackedEnum, UnitEnum, ion\Symbol\Enum + +The built-in PHP symbols. + + + + + + +## Constants: + + * PHP = 'PHP' + * Reference = 'R' + * Backref = 'r' + * Property = 'p' + * Object = 'o' + * ClassObject = 'c' + * MagicObject = 'O' + * CustomObject = 'C' + * Enum = 'E' + * Serializable = 'S' + + +## Properties: + + * public string $name + The built-in PHP symbols. + * public string $value + The built-in PHP symbols. + diff --git a/docs/src/ion/Symbol/Table/Shared.md b/docs/src/ion/Symbol/Table/Shared.md new file mode 100644 index 0000000..59d9b32 --- /dev/null +++ b/docs/src/ion/Symbol/Table/Shared.md @@ -0,0 +1,23 @@ +# class ion\Symbol\Table\Shared implements ion\Symbol\Table + +A shared symbol table. + + + +See also [the ION spec's symbol guide](https://amzn.github.io/ion-docs/guides/symbols-guide.html), and [the ION doc's cookbook](https://amzn.github.io/ion-docs/guides/cookbook.html#using-a-shared-symbol-table). + + +## Constants: + +None. + +## Properties: + + * public string $name + The name of the shared symbol table. + * public int $version + The version of the shared symbol table. + * private array $symbols = array ( +) + Internal cache. + diff --git a/docs/src/ion/Symbol/Table/Shared/__construct.md b/docs/src/ion/Symbol/Table/Shared/__construct.md new file mode 100644 index 0000000..047059c --- /dev/null +++ b/docs/src/ion/Symbol/Table/Shared/__construct.md @@ -0,0 +1,19 @@ +# void ion\Symbol\Table\Shared::__construct(string $name, [int $version = 1, [?array $symbols = NULL]]) + +Create a shared symbol table. + + + + + + +## Params: + +* string $name + The name of the shared symbol table. +* Optional int $version = 1 + The version of the shared symbol table. +* Optional ?array $symbols = NULL + Internal cache. + + diff --git a/docs/src/ion/Symbol/Table/System.md b/docs/src/ion/Symbol/Table/System.md new file mode 100644 index 0000000..4051228 --- /dev/null +++ b/docs/src/ion/Symbol/Table/System.md @@ -0,0 +1,29 @@ +# enum ion\Symbol\Table\System implements BackedEnum, UnitEnum, ion\Symbol\Enum + +The built-in ION system symbols. + + + + + + +## Constants: + + * Ion = '$ion' + * Ivm_1_0 = '$ion_1_0' + * IonSymbolTable = '$ion_symbol_table' + * Name = 'name' + * Version = 'version' + * Imports = 'imports' + * Symbols = 'symbols' + * MaxId = 'max_id' + * SharedSymbolTable = '$ion_shared_symbol_table' + + +## Properties: + + * public string $name + The built-in ION system symbols. + * public string $value + The built-in ION system symbols. + diff --git a/docs/src/ion/Symbol/Table/add.md b/docs/src/ion/Symbol/Table/add.md new file mode 100644 index 0000000..293b7f1 --- /dev/null +++ b/docs/src/ion/Symbol/Table/add.md @@ -0,0 +1,20 @@ +# int ion\Symbol\Table::add(ion\Symbol|string $symbol) + +Add a symbol to the table. + + + + + + +## Params: + +* ion\Symbol|string $symbol + The symbol (value) to add. + + +## Returns: + +* int, The symbol ID. + + diff --git a/docs/src/ion/Symbol/Table/find.md b/docs/src/ion/Symbol/Table/find.md new file mode 100644 index 0000000..bc46bb2 --- /dev/null +++ b/docs/src/ion/Symbol/Table/find.md @@ -0,0 +1,20 @@ +# ?ion\Symbol ion\Symbol\Table::find(string|int $id) + +Find a symbol within the symbol table, including imports. + + + + + + +## Params: + +* string|int $id + The ID or text of the symbol to find. + + +## Returns: + +* \ion\Symbol|null, The symbol found, if any. + + diff --git a/docs/src/ion/Symbol/Table/findLocal.md b/docs/src/ion/Symbol/Table/findLocal.md new file mode 100644 index 0000000..0bee077 --- /dev/null +++ b/docs/src/ion/Symbol/Table/findLocal.md @@ -0,0 +1,20 @@ +# ?ion\Symbol ion\Symbol\Table::findLocal(string|int $id) + +Find a symbol within **only this** symbol table, ignoring imports. + + + + + + +## Params: + +* string|int $id + The ID or text of the symbol to find. + + +## Returns: + +* \ion\Symbol|null, The symbol found, if any. + + diff --git a/docs/src/ion/Symbol/Table/getMaxId.md b/docs/src/ion/Symbol/Table/getMaxId.md new file mode 100644 index 0000000..09e2b4c --- /dev/null +++ b/docs/src/ion/Symbol/Table/getMaxId.md @@ -0,0 +1,18 @@ +# int ion\Symbol\Table::getMaxId() + +Get the maximum symbol ID within the symbol table. + + + + + + +## Params: + +None. + +## Returns: + +* int, The maximum symbol ID. + + diff --git a/docs/src/ion/Symbol/__construct.md b/docs/src/ion/Symbol/__construct.md new file mode 100644 index 0000000..d4894e7 --- /dev/null +++ b/docs/src/ion/Symbol/__construct.md @@ -0,0 +1,19 @@ +# void ion\Symbol::__construct([?string $value = NULL, [int $sid = -1, [?ion\Symbol\ImportLocation $importLocation = NULL]]]) + +Create an ION symbol. + + + + + + +## Params: + +* Optional ?string $value = NULL + The symbol's text representation. +* Optional int $sid = -1 + The symbols ID, referencing its location within a shared symbol table. +* Optional ?ion\Symbol\ImportLocation $importLocation = NULL + The import location referencing a shared symbol table. + + diff --git a/docs/src/ion/Symbol/equals.md b/docs/src/ion/Symbol/equals.md new file mode 100644 index 0000000..8f98ba3 --- /dev/null +++ b/docs/src/ion/Symbol/equals.md @@ -0,0 +1,23 @@ +# bool ion\Symbol::equals(ion\Symbol $symbol) + +Compare two symbols for equality. + +Two symbols are considered equal, if either: +* both are the same object or NULL +* both values are NULL (unknown text), and both $importLocations match +* both values match, regardless of $sid and $importLocation + + + + +## Params: + +* ion\Symbol $symbol + + + +## Returns: + +* bool, whether the two Symbols equal + + diff --git a/docs/src/ion/Symbol/toString.md b/docs/src/ion/Symbol/toString.md new file mode 100644 index 0000000..7d6ce0b --- /dev/null +++ b/docs/src/ion/Symbol/toString.md @@ -0,0 +1,13 @@ +# string ion\Symbol::toString() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Timestamp.md b/docs/src/ion/Timestamp.md new file mode 100644 index 0000000..f771414 --- /dev/null +++ b/docs/src/ion/Timestamp.md @@ -0,0 +1,20 @@ +# class ion\Timestamp extends DateTime implements DateTimeInterface, Stringable + +An ION Timestamp. + + + +See also [the ION sepc's timestamp definintion](https://amzn.github.io/ion-docs/docs/spec.html#timestamp), and [PHP's date documentation](https://php.net/date). + + +## Constants: + +None. + +## Properties: + + * public int $precision + The timestamp's precision. See ion\Timestamp\Precision. + * public string $format + The timestamp's format. See ion\Timestamp\Format. + diff --git a/docs/src/ion/Timestamp/Format.md b/docs/src/ion/Timestamp/Format.md new file mode 100644 index 0000000..3adee4e --- /dev/null +++ b/docs/src/ion/Timestamp/Format.md @@ -0,0 +1,29 @@ +# enum ion\Timestamp\Format implements BackedEnum, UnitEnum + +Timestamp format. + + + + + + +## Constants: + + * Year = 'Y\\T' + * Month = 'Y-m\\T' + * Day = 'Y-m-d\\T' + * Min = 'Y-m-d\\TH:i' + * Sec = 'Y-m-d\\TH:i:s' + * Frac = 'Y-m-d\\TH:i:s.v' + * MinTZ = 'Y-m-d\\TH:iP' + * SecTZ = 'Y-m-d\\TH:i:sP' + * FracTZ = 'Y-m-d\\TH:i:s.vP' + + +## Properties: + + * public string $name + Timestamp format. + * public string $value + Timestamp format. + diff --git a/docs/src/ion/Timestamp/Precision.md b/docs/src/ion/Timestamp/Precision.md new file mode 100644 index 0000000..6c86ffa --- /dev/null +++ b/docs/src/ion/Timestamp/Precision.md @@ -0,0 +1,29 @@ +# enum ion\Timestamp\Precision implements BackedEnum, UnitEnum + +Timestamp precision. + + + + + + +## Constants: + + * Year = 1 + * Month = 3 + * Day = 7 + * Min = 23 + * Sec = 55 + * Frac = 119 + * MinTZ = 151 + * SecTZ = 183 + * FracTZ = 247 + + +## Properties: + + * public string $name + Timestamp precision. + * public int $value + Timestamp precision. + diff --git a/docs/src/ion/Timestamp/__construct.md b/docs/src/ion/Timestamp/__construct.md new file mode 100644 index 0000000..77b8953 --- /dev/null +++ b/docs/src/ion/Timestamp/__construct.md @@ -0,0 +1,21 @@ +# void ion\Timestamp::__construct(ion\Timestamp\Precision|int $precision, [ion\Timestamp\Format|string|null $format = NULL, [?string $datetime = NULL, [?DateTimeZone $timezone = NULL]]]) + +Create a new ION timestamp. + + + + + + +## Params: + +* ion\Timestamp\Precision|int $precision + The timestamp's precision. See ion\Timestamp\Precision. +* Optional ion\Timestamp\Format|string|null $format = NULL + The timestamp's format. See ion\Timestamp\Format. +* Optional ?string $datetime = NULL + The timestamp's value. +* Optional ?DateTimeZone $timezone = NULL + The timestamp's timezone. + + diff --git a/docs/src/ion/Type.md b/docs/src/ion/Type.md new file mode 100644 index 0000000..428bc68 --- /dev/null +++ b/docs/src/ion/Type.md @@ -0,0 +1,40 @@ +# enum ion\Type implements BackedEnum, UnitEnum + +ION data type. + +The following special PHP classes are provided for some data types: +* ion\Decimal +* ion\Timestamp +* ion\Symbol +* ion\Lob + + + + +## Constants: + + * Null = 0 + * Bool = 256 + * Int = 512 + * Float = 1024 + * Decimal = 1280 + * Timestamp = 1536 + * Symbol = 1792 + * String = 2048 + * CLob = 2304 + * BLob = 2560 + * List = 2816 + * SExp = 3072 + * Struct = 3328 + * Datagram = 3840 + * EOF = -256 + * NONE = -512 + + +## Properties: + + * public string $name + ION data type. + * public int $value + ION data type. + diff --git a/docs/src/ion/Unserializer.md b/docs/src/ion/Unserializer.md new file mode 100644 index 0000000..d0622ce --- /dev/null +++ b/docs/src/ion/Unserializer.md @@ -0,0 +1,16 @@ +# interface ion\Unserializer + +Unserializer interface, used to customize ion\unserialize()'s behavior. + + + + + + +## Constants: + +None. + +## Properties: + +None. diff --git a/docs/src/ion/Unserializer/PHP.md b/docs/src/ion/Unserializer/PHP.md new file mode 100644 index 0000000..f64da55 --- /dev/null +++ b/docs/src/ion/Unserializer/PHP.md @@ -0,0 +1,24 @@ +# class ion\Unserializer\PHP implements ion\Unserializer + +Specialization of the unserializer for PHP. + + + + + + +## Constants: + +None. + +## Properties: + + * public ?ion\Reader\Options $readerOptions + Reader options. + * public bool $multiSequence + Whether to continue reading multiple ION sequences after the first one. + * public bool $callMagicUnserialize + Whether to call magic __unserialize() methods on objects to unserialize. + * public ?string $callCustomUnserialize + Whether and which custom unserialize method to call on objects to unserialize. + diff --git a/docs/src/ion/Unserializer/PHP/__construct.md b/docs/src/ion/Unserializer/PHP/__construct.md new file mode 100644 index 0000000..e8ccbec --- /dev/null +++ b/docs/src/ion/Unserializer/PHP/__construct.md @@ -0,0 +1,21 @@ +# void ion\Unserializer\PHP::__construct([?ion\Reader\Options $readerOptions = NULL, [bool $multiSequence = false, [bool $callMagicUnserialize = true, [?string $callCustomUnserialize = NULL]]]]) + +Create a new ION PHP unserializer. + + + + + + +## Params: + +* Optional ?ion\Reader\Options $readerOptions = NULL + Reader options. +* Optional bool $multiSequence = false + Whether to continue reading multiple ION sequences after the first one. +* Optional bool $callMagicUnserialize = true + Whether to call magic __unserialize() methods on objects to unserialize. +* Optional ?string $callCustomUnserialize = NULL + Whether and which custom unserialize method to call on objects to unserialize. + + diff --git a/docs/src/ion/Unserializer/unserialize.md b/docs/src/ion/Unserializer/unserialize.md new file mode 100644 index 0000000..1b15722 --- /dev/null +++ b/docs/src/ion/Unserializer/unserialize.md @@ -0,0 +1,15 @@ +# mixed ion\Unserializer::unserialize(string|resource $data) + + + + + + + + +## Params: + +* string|resource $data + + + diff --git a/docs/src/ion/Writer.md b/docs/src/ion/Writer.md new file mode 100644 index 0000000..82250d5 --- /dev/null +++ b/docs/src/ion/Writer.md @@ -0,0 +1,16 @@ +# interface ion\Writer + +ION writer API. + + + + + + +## Constants: + +None. + +## Properties: + +None. diff --git a/docs/src/ion/Writer/Buffer.md b/docs/src/ion/Writer/Buffer.md new file mode 100644 index 0000000..4f82f52 --- /dev/null +++ b/docs/src/ion/Writer/Buffer.md @@ -0,0 +1,16 @@ +# interface ion\Writer\Buffer implements ion\Writer + +ION buffer writer API. + + + + + + +## Constants: + +None. + +## Properties: + +None. diff --git a/docs/src/ion/Writer/Buffer/Writer.md b/docs/src/ion/Writer/Buffer/Writer.md new file mode 100644 index 0000000..da37e42 --- /dev/null +++ b/docs/src/ion/Writer/Buffer/Writer.md @@ -0,0 +1,16 @@ +# class ion\Writer\Buffer\Writer extends ion\Writer\Writer implements ion\Writer, ion\Writer\Buffer + +IO buffer writer. + + + + + + +## Constants: + +None. + +## Properties: + +None. diff --git a/docs/src/ion/Writer/Buffer/Writer/__construct.md b/docs/src/ion/Writer/Buffer/Writer/__construct.md new file mode 100644 index 0000000..841add5 --- /dev/null +++ b/docs/src/ion/Writer/Buffer/Writer/__construct.md @@ -0,0 +1,15 @@ +# void ion\Writer\Buffer\Writer::__construct([?ion\Writer\Options $options = NULL]) + +Create a new buffer writer. + + + + + + +## Params: + +* Optional ?ion\Writer\Options $options = NULL + Writer options. + + diff --git a/docs/src/ion/Writer/Buffer/getBuffer.md b/docs/src/ion/Writer/Buffer/getBuffer.md new file mode 100644 index 0000000..8124851 --- /dev/null +++ b/docs/src/ion/Writer/Buffer/getBuffer.md @@ -0,0 +1,13 @@ +# string ion\Writer\Buffer::getBuffer() + +Get the buffer written to. + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Writer/Buffer/resetBuffer.md b/docs/src/ion/Writer/Buffer/resetBuffer.md new file mode 100644 index 0000000..f9b35d5 --- /dev/null +++ b/docs/src/ion/Writer/Buffer/resetBuffer.md @@ -0,0 +1,13 @@ +# void ion\Writer\Buffer::resetBuffer() + +Reset the buffer written to. + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Writer/Options.md b/docs/src/ion/Writer/Options.md new file mode 100644 index 0000000..d95da31 --- /dev/null +++ b/docs/src/ion/Writer/Options.md @@ -0,0 +1,40 @@ +# class ion\Writer\Options + +ION writer options. + + + + + + +## Constants: + +None. + +## Properties: + + * public ?ion\Catalog $catalog + ION catalog to use for symbol lookup. + * public ?ion\Decimal\Context $decimalContext + Decimal context to use. + * public bool $outputBinary + Whether to output binary ION. + * public bool $compactFloats + Whether to write doubles which fit in 32 bits as floats. + * public bool $escapeNonAscii + Whether to slash-escape all non ASCII bytes. + * public bool $prettyPrint + Whether to produce pretty-printed output. + * public bool $indentTabs + Whether to indent with tabs, when pretty-printing. + * public int $indentSize + The number of spaces to use for indentation instead of tabs, when pretty-printing. + * public bool $flushEveryValue + Whether to immediately flush every value written. + * public int $maxContainerDepth + Maximum depth of nested containers. + * public int $maxAnnotations + The maximum number of annotations allowed on a single value. + * public int $tempBufferSize + Temporary buffer size. + diff --git a/docs/src/ion/Writer/Options/__construct.md b/docs/src/ion/Writer/Options/__construct.md new file mode 100644 index 0000000..0f8bddc --- /dev/null +++ b/docs/src/ion/Writer/Options/__construct.md @@ -0,0 +1,37 @@ +# void ion\Writer\Options::__construct([?ion\Catalog $catalog = NULL, [?ion\Decimal\Context $decimalContext = NULL, [bool $outputBinary = false, [bool $compactFloats = false, [bool $escapeNonAscii = false, [bool $prettyPrint = false, [bool $indentTabs = true, [int $indentSize = 2, [bool $flushEveryValue = false, [int $maxContainerDepth = 10, [int $maxAnnotations = 10, [int $tempBufferSize = 16384]]]]]]]]]]]]) + +Create custom ION writer options. + + + + + + +## Params: + +* Optional ?ion\Catalog $catalog = NULL + ION catalog to use for symbol lookup. +* Optional ?ion\Decimal\Context $decimalContext = NULL + Decimal context to use. +* Optional bool $outputBinary = false + Whether to output binary ION. +* Optional bool $compactFloats = false + Whether to write doubles which fit in 32 bits as floats. +* Optional bool $escapeNonAscii = false + Whether to slash-escape all non ASCII bytes. +* Optional bool $prettyPrint = false + Whether to produce pretty-printed output. +* Optional bool $indentTabs = true + Whether to indent with tabs, when pretty-printing. +* Optional int $indentSize = 2 + The number of spaces to use for indentation instead of tabs, when pretty-printing. +* Optional bool $flushEveryValue = false + Whether to immediately flush every value written. +* Optional int $maxContainerDepth = 10 + Maximum depth of nested containers. +* Optional int $maxAnnotations = 10 + The maximum number of annotations allowed on a single value. +* Optional int $tempBufferSize = 16384 + Temporary buffer size. + + diff --git a/docs/src/ion/Writer/Stream.md b/docs/src/ion/Writer/Stream.md new file mode 100644 index 0000000..de84c44 --- /dev/null +++ b/docs/src/ion/Writer/Stream.md @@ -0,0 +1,16 @@ +# interface ion\Writer\Stream implements ion\Writer + +ION stream writer API. + + + + + + +## Constants: + +None. + +## Properties: + +None. diff --git a/docs/src/ion/Writer/Stream/Writer.md b/docs/src/ion/Writer/Stream/Writer.md new file mode 100644 index 0000000..9a4675a --- /dev/null +++ b/docs/src/ion/Writer/Stream/Writer.md @@ -0,0 +1,16 @@ +# class ion\Writer\Stream\Writer extends ion\Writer\Writer implements ion\Writer, ion\Writer\Stream + +ION stream writer. + + + + + + +## Constants: + +None. + +## Properties: + +None. diff --git a/docs/src/ion/Writer/Stream/Writer/__construct.md b/docs/src/ion/Writer/Stream/Writer/__construct.md new file mode 100644 index 0000000..d5fe0c5 --- /dev/null +++ b/docs/src/ion/Writer/Stream/Writer/__construct.md @@ -0,0 +1,17 @@ +# void ion\Writer\Stream\Writer::__construct(resource $stream, [?ion\Writer\Options $options = NULL]) + +Create a new stream writer. + + + + + + +## Params: + +* resource $stream + The stream to write to. +* Optional ?ion\Writer\Options $options = NULL + Writer options. + + diff --git a/docs/src/ion/Writer/Stream/getStream.md b/docs/src/ion/Writer/Stream/getStream.md new file mode 100644 index 0000000..883b0e5 --- /dev/null +++ b/docs/src/ion/Writer/Stream/getStream.md @@ -0,0 +1,18 @@ +# void ion\Writer\Stream::getStream() + +Get the stream being written to. + + + + + + +## Params: + +None. + +## Returns: + +* resource, + + diff --git a/docs/src/ion/Writer/Writer.md b/docs/src/ion/Writer/Writer.md new file mode 100644 index 0000000..424a96b --- /dev/null +++ b/docs/src/ion/Writer/Writer.md @@ -0,0 +1,16 @@ +# abstract class ion\Writer\Writer implements ion\Writer + +Base implementation of common functionality of ION writers. + + + + + + +## Constants: + +None. + +## Properties: + +None. diff --git a/docs/src/ion/Writer/appendLob.md b/docs/src/ion/Writer/appendLob.md new file mode 100644 index 0000000..042e38e --- /dev/null +++ b/docs/src/ion/Writer/appendLob.md @@ -0,0 +1,14 @@ +# void ion\Writer::appendLob(string $data) + + + + + + + + +## Params: + +* string $data + + diff --git a/docs/src/ion/Writer/finish.md b/docs/src/ion/Writer/finish.md new file mode 100644 index 0000000..c90c935 --- /dev/null +++ b/docs/src/ion/Writer/finish.md @@ -0,0 +1,13 @@ +# int ion\Writer::finish() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Writer/finishContainer.md b/docs/src/ion/Writer/finishContainer.md new file mode 100644 index 0000000..637cb36 --- /dev/null +++ b/docs/src/ion/Writer/finishContainer.md @@ -0,0 +1,13 @@ +# void ion\Writer::finishContainer() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Writer/finishLob.md b/docs/src/ion/Writer/finishLob.md new file mode 100644 index 0000000..4fa960d --- /dev/null +++ b/docs/src/ion/Writer/finishLob.md @@ -0,0 +1,13 @@ +# void ion\Writer::finishLob() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Writer/flush.md b/docs/src/ion/Writer/flush.md new file mode 100644 index 0000000..9ed2c84 --- /dev/null +++ b/docs/src/ion/Writer/flush.md @@ -0,0 +1,13 @@ +# int ion\Writer::flush() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Writer/getDepth.md b/docs/src/ion/Writer/getDepth.md new file mode 100644 index 0000000..f089235 --- /dev/null +++ b/docs/src/ion/Writer/getDepth.md @@ -0,0 +1,13 @@ +# int ion\Writer::getDepth() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Writer/startContainer.md b/docs/src/ion/Writer/startContainer.md new file mode 100644 index 0000000..7f7e83a --- /dev/null +++ b/docs/src/ion/Writer/startContainer.md @@ -0,0 +1,14 @@ +# void ion\Writer::startContainer(ion\Type $type) + + + + + + + + +## Params: + +* ion\Type $type + + diff --git a/docs/src/ion/Writer/startLob.md b/docs/src/ion/Writer/startLob.md new file mode 100644 index 0000000..9a8e173 --- /dev/null +++ b/docs/src/ion/Writer/startLob.md @@ -0,0 +1,14 @@ +# void ion\Writer::startLob(ion\Type $type) + + + + + + + + +## Params: + +* ion\Type $type + + diff --git a/docs/src/ion/Writer/writeAnnotation.md b/docs/src/ion/Writer/writeAnnotation.md new file mode 100644 index 0000000..9c18eda --- /dev/null +++ b/docs/src/ion/Writer/writeAnnotation.md @@ -0,0 +1,14 @@ +# void ion\Writer::writeAnnotation([ion\Symbol|string ?>...$annotation]) + + + + + + + + +## Params: + +* Optional ion\Symbol|string ?>...$annotation + + diff --git a/docs/src/ion/Writer/writeBLob.md b/docs/src/ion/Writer/writeBLob.md new file mode 100644 index 0000000..4c6ddbe --- /dev/null +++ b/docs/src/ion/Writer/writeBLob.md @@ -0,0 +1,14 @@ +# void ion\Writer::writeBLob(string $value) + + + + + + + + +## Params: + +* string $value + + diff --git a/docs/src/ion/Writer/writeBool.md b/docs/src/ion/Writer/writeBool.md new file mode 100644 index 0000000..f6fa611 --- /dev/null +++ b/docs/src/ion/Writer/writeBool.md @@ -0,0 +1,14 @@ +# void ion\Writer::writeBool(bool $value) + + + + + + + + +## Params: + +* bool $value + + diff --git a/docs/src/ion/Writer/writeCLob.md b/docs/src/ion/Writer/writeCLob.md new file mode 100644 index 0000000..33ea7af --- /dev/null +++ b/docs/src/ion/Writer/writeCLob.md @@ -0,0 +1,14 @@ +# void ion\Writer::writeCLob(string $value) + + + + + + + + +## Params: + +* string $value + + diff --git a/docs/src/ion/Writer/writeDecimal.md b/docs/src/ion/Writer/writeDecimal.md new file mode 100644 index 0000000..90a4bef --- /dev/null +++ b/docs/src/ion/Writer/writeDecimal.md @@ -0,0 +1,14 @@ +# void ion\Writer::writeDecimal(ion\Decimal|string $value) + + + + + + + + +## Params: + +* ion\Decimal|string $value + + diff --git a/docs/src/ion/Writer/writeFieldName.md b/docs/src/ion/Writer/writeFieldName.md new file mode 100644 index 0000000..a145e04 --- /dev/null +++ b/docs/src/ion/Writer/writeFieldName.md @@ -0,0 +1,14 @@ +# void ion\Writer::writeFieldName(string $name) + + + + + + + + +## Params: + +* string $name + + diff --git a/docs/src/ion/Writer/writeFloat.md b/docs/src/ion/Writer/writeFloat.md new file mode 100644 index 0000000..7258cd2 --- /dev/null +++ b/docs/src/ion/Writer/writeFloat.md @@ -0,0 +1,14 @@ +# void ion\Writer::writeFloat(float $value) + + + + + + + + +## Params: + +* float $value + + diff --git a/docs/src/ion/Writer/writeInt.md b/docs/src/ion/Writer/writeInt.md new file mode 100644 index 0000000..9ad467f --- /dev/null +++ b/docs/src/ion/Writer/writeInt.md @@ -0,0 +1,14 @@ +# void ion\Writer::writeInt(string|int $value) + + + + + + + + +## Params: + +* string|int $value + + diff --git a/docs/src/ion/Writer/writeNull.md b/docs/src/ion/Writer/writeNull.md new file mode 100644 index 0000000..52eba4a --- /dev/null +++ b/docs/src/ion/Writer/writeNull.md @@ -0,0 +1,13 @@ +# void ion\Writer::writeNull() + + + + + + + + +## Params: + +None. + diff --git a/docs/src/ion/Writer/writeString.md b/docs/src/ion/Writer/writeString.md new file mode 100644 index 0000000..1bee7b2 --- /dev/null +++ b/docs/src/ion/Writer/writeString.md @@ -0,0 +1,14 @@ +# void ion\Writer::writeString(string $value) + + + + + + + + +## Params: + +* string $value + + diff --git a/docs/src/ion/Writer/writeSymbol.md b/docs/src/ion/Writer/writeSymbol.md new file mode 100644 index 0000000..c39822e --- /dev/null +++ b/docs/src/ion/Writer/writeSymbol.md @@ -0,0 +1,14 @@ +# void ion\Writer::writeSymbol(ion\Symbol|string $value) + + + + + + + + +## Params: + +* ion\Symbol|string $value + + diff --git a/docs/src/ion/Writer/writeTimestamp.md b/docs/src/ion/Writer/writeTimestamp.md new file mode 100644 index 0000000..a098afb --- /dev/null +++ b/docs/src/ion/Writer/writeTimestamp.md @@ -0,0 +1,14 @@ +# void ion\Writer::writeTimestamp(ion\Timestamp|string $value) + + + + + + + + +## Params: + +* ion\Timestamp|string $value + + diff --git a/docs/src/ion/Writer/writeTypedNull.md b/docs/src/ion/Writer/writeTypedNull.md new file mode 100644 index 0000000..4da68c2 --- /dev/null +++ b/docs/src/ion/Writer/writeTypedNull.md @@ -0,0 +1,14 @@ +# void ion\Writer::writeTypedNull(ion\Type $type) + + + + + + + + +## Params: + +* ion\Type $type + + diff --git a/docs/src/ion/serialize.md b/docs/src/ion/serialize.md new file mode 100644 index 0000000..16015a0 --- /dev/null +++ b/docs/src/ion/serialize.md @@ -0,0 +1,30 @@ +# string ion\serialize(mixed $data, [?ion\Serializer $serializer = NULL]) + +Serialize a PHP value as ION data. + +Serializes supported PHP values with the optionally provided \ion\Serializer: +* NULL +* bool +* int +* float +* string +* references +* arrays +* objects (incl. \Serializable, and classes implementing magic and custom __serialize) + + + + +## Params: + +* mixed $data + PHP value(s). +* Optional ?ion\Serializer $serializer = NULL + Custom serializer. + + +## Returns: + +* string, serialized ION data + + diff --git a/docs/src/ion/unserialize.md b/docs/src/ion/unserialize.md new file mode 100644 index 0000000..e9ac009 --- /dev/null +++ b/docs/src/ion/unserialize.md @@ -0,0 +1,22 @@ +# mixed ion\unserialize(string|resource $data, [?ion\Unserializer $unserializer = NULL]) + +Unserialize ION data (stream) as PHP value(s). + + + + + + +## Params: + +* string|resource $data + Serialized ION data, either as string buffer or stream,. +* Optional ?ion\Unserializer $unserializer = NULL + Unserialize ION data (stream) as PHP value(s). + + +## Returns: + +* mixed, unserialized PHP values + + diff --git a/ion.stub.php b/ion.stub.php index aa89736..6fc9a4b 100644 --- a/ion.stub.php +++ b/ion.stub.php @@ -1,24 +1,78 @@