release v0.1.0
[awesomized/ext-ion] / docs / v0.0 / ion.html
index d8059b47b34419e758547b165d3ec6e2b4d9be6f..db3733bfef5140412efc5802bcc57d4f9b9beb41 100644 (file)
@@ -7,13 +7,13 @@
                                                mdref
                </title>
                <meta name="viewport" content="width=1200, initial-scale=0.5">
-                                       <base href="/v0.0/">
-                       <meta http-equiv="Content-Location" content="/v0.0/ion">
+                                       <base href="/ext-ion/v0.0/">
+                       <meta http-equiv="Content-Location" content="/ext-ion/v0.0/ion">
                        <link rel="stylesheet" href="index.css">
                
                <link href="https://fonts.googleapis.com/css?family=Inconsolata&amp;subset=latin-ext" rel="stylesheet">
                <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
-               <link rel="shortcut icon" href="/v0.0/favicon.ico">
+               <link rel="shortcut icon" href="/ext-ion/v0.0/favicon.ico">
        </head>
        <body>
                <div class="page">
                </li>
        </ul>
 </div>
-                                       
-<h1>pecl/ion</h1>
-<h2>About:<a id="About:" href="#About:" class="permalink" aria-hidden="true" title="">#</a></h2>
-<p>PHP extension wrapping <a href="https://github.com/amzn/ion-c">amzn/ion-c</a>.
-See the <a href="https://amzn.github.io/ion-docs/">Amazon ION specification</a>.</p>
-<h2>License:<a id="License:" href="#License:" class="permalink" aria-hidden="true" title="">#</a></h2>
-<p><a href="https://github.com/awesomized/ext-ion/blob/master/LICENSE">BSD-2-Clause</a>;
-see <a href="https://spdx.org/licenses/BSD-2-Clause.html">spdx.org</a>.</p>
-<h2>Installation:<a id="Installation:" href="#Installation:" class="permalink" aria-hidden="true" title="">#</a></h2>
-<p><a href="https://pecl.php.net">PECL</a> and <a href="https://pharext.org">PHARext</a> is WIP.</p>
-<h3>Dependencies:<a id="Dependencies:" href="#Dependencies:" class="permalink" aria-hidden="true" title="">#</a></h3>
-<h4>Required:<a id="Required:" href="#Required:" class="permalink" aria-hidden="true" title="">#</a></h4>
-<ul>
+                                       <meta charset="utf-8"><h1>
+<a class="permalink" href="ion#">#</a>pecl/ion</h1><h2 id="About:">About:<a class="permalink" href="ion#About:">#</a>
+</h2><p>PHP extension wrapping <a href="https://github.com/amzn/ion-c">amzn/ion-c</a>.
+See the <a href="https://amzn.github.io/ion-docs/">Amazon ION specification</a>.</p><h2 id="License:">License:<a class="permalink" href="ion#License:">#</a>
+</h2><p><a href="https://github.com/awesomized/ext-ion/blob/master/LICENSE">BSD-2-Clause</a>;
+see <a href="https://spdx.org/licenses/BSD-2-Clause.html">spdx.org</a>.</p><h2 id="Installation:">Installation:<a class="permalink" href="ion#Installation:">#</a>
+</h2><h3 id="PECL">PECL<a class="permalink" href="ion#PECL">#</a>
+</h3><pre><code><span style="color: inherit" class="html">
+pecl install ion<br></span>
+</code></pre><h3 id="PHARext">PHARext<a class="permalink" href="ion#PHARext">#</a>
+</h3><p>Watch out for <a href="https://replicator.pharext.org?ion">PECL replicates</a>
+and pharext packages attached to <a href="./releases">releases</a>.</p><h3 id="Checkout">Checkout<a class="permalink" href="ion#Checkout">#</a>
+</h3><pre><code><span style="color: inherit" class="html">
+git clone github.com:awesomized/ext-ion<br><br>cd ext-ion<br><br>/path/to/phpize<br>./configure --with-php-config=/path/to/php-config<br>make<br>sudo make install<br></span>
+</code></pre><h3 id="Dependencies:">Dependencies:<a class="permalink" href="ion#Dependencies:">#</a>
+</h3><h4 id="Required:">Required:<a class="permalink" href="ion#Required:">#</a>
+</h4><ul>
 <li>PHP-8.1
 <ul>
 <li>ext/date (standard)</li>
 <li>ext/spl (standard)</li>
 </ul>
 </li>
-</ul>
-<h4>Optional:<a id="Optional:" href="#Optional:" class="permalink" aria-hidden="true" title="">#</a></h4>
-<ul>
+</ul><h4 id="Optional:">Optional:<a class="permalink" href="ion#Optional:">#</a>
+</h4><ul>
 <li>
 <a href="https://github.com/amzn/ion-c">amzn/ion-c</a> (bundled as git submodule)</li>
-</ul>
-<h3>Trinity:<a id="Trinity:" href="#Trinity:" class="permalink" aria-hidden="true" title="">#</a></h3>
-<pre><code class="language-shell">phpize
-./configure
-make # -j$(nproc)
-sudo make install # INSTALL=install
-</code></pre>
-<h3>Try with Docker:<a id="Try.with.Docker:" href="#Try.with.Docker:" class="permalink" aria-hidden="true" title="">#</a></h3>
-<pre><code class="language-shell">docker build -t php-ion
-docker run --rm php-ion -r 'echo ion\serialize(ion\Symbol\Table\PHP());'
-</code></pre>
-<h2>Editor Stub:<a id="Editor.Stub:" href="#Editor.Stub:" class="permalink" aria-hidden="true" title="">#</a></h2>
-<p>See <a href="https://github.com/awesomized/ext-ion/blob/master/ion.stub.php">ion.stub.php</a>.</p>
-<h2>Known Issues:<a id="Known.Issues:" href="#Known.Issues:" class="permalink" aria-hidden="true" title="">#</a></h2>
-<p>Due to private internal state of ion-c's readers and writers,
-instances of the following PHP classes cannot be cloned:</p>
-<ul>
-<li>ion\Reader\Reader</li>
-<li>ion\Writer\Writer</li>
-<li>ion\Serializer\PHP</li>
-<li>ion\Unserializer\PHP</li>
-</ul>
-
-       <h2 id="Editor.Stub:">Editor Stub:</h2>
-       <p>This extension provides a stub file four your editor's auto-completion.</p>
-                                       <div>
+</ul><h3 id="Trinity:">Trinity:<a class="permalink" href="ion#Trinity:">#</a>
+</h3><pre><code><span style="color: inherit" class="html">
+phpize<br>./configure<br>make # -j$(nproc)<br>sudo make install # INSTALL=install<br></span>
+</code></pre><h3 id="Try.with.Docker:">Try with Docker:<a class="permalink" href="ion#Try.with.Docker:">#</a>
+</h3><pre><code><span style="color: inherit" class="html">
+docker build -t php-ion<br>docker run --rm php-ion -r 'echo ion\serialize(ion\Symbol\PHP::asTable());'<br></span>
+</code></pre><h2 id="Editor.Stub:">Editor Stub:<a class="permalink" href="ion#Editor.Stub:">#</a>
+</h2><p>See <a href="https://github.com/awesomized/ext-ion/blob/master/ion.stub.php">ion.stub.php</a>.</p><h2 id="Known.Issues:">Known Issues:<a class="permalink" href="ion#Known.Issues:">#</a>
+</h2><p>Due to <em>private</em> internal state of ion-c's readers and writers,
+instances of the following PHP classes cannot be cloned:</p><ul>
+<li><a href="ion/Reader/Reader">ion\Reader\Reader</a></li>
+<li><a href="ion/Writer/Writer">ion\Writer\Writer</a></li>
+<li><a href="ion/Serializer/PHP">ion\Serializer\PHP</a></li>
+<li><a href="ion/Unserializer/PHP">ion\Unserializer\PHP</a></li>
+</ul><h2 id="Editor.Stub:">Editor Stub:<a class="permalink" href="ion#Editor.Stub:">#</a>
+</h2><p>This extension provides a stub file four your editor's auto-completion.</p><div>
                                        <p><strong>Download the Stub file:</strong></p>
-                                       <ul style="list-style-type: '&raquo;'">
+                                       <ul style="list-style-type: '»'">
                                                <li>
                                                                                                                <a href="ion.stub.php">ion.stub.php</a><br>
                                                                                                                <small>
                                                                Last modified:
-                                                               2022-01-25 11:49:44 UTC                                                 </small>
+                                                               2022-01-28 09:29:47 UTC                                                 </small>
                                                </li>
                                        </ul>
-                               </div>
-
-
-<h2 id="Functions:">Functions:</h2>
-<ul>
+                               </div><h2 id="Functions:">Functions:<a class="permalink" href="ion#Functions:">#</a>
+</h2><ul>
        
        <li>
-               <h3><a href="ion/serialize">serialize</a></h3>
+               <h3 id="serialize">
+<a href="ion/serialize">serialize</a><a class="permalink" href="ion#serialize">#</a>
+</h3>
                <p>Serialize a PHP value as ION data.</p>
 
-               <p>string ion\serialize(mixed $data, [?ion\Serializer $serializer = NULL])</p>
+               <p><code><a href="https://php.net/manual/en/language.types.string">string</a></code> <a href="ion/serialize">ion\serialize</a>(<code><a href="https://php.net/manual/en/language.types.declarations#language.types.declarations.mixed">mixed</a></code> <span class="var">$data</span>, [?<a href="ion/Serializer">ion\Serializer</a> <span class="var">$serializer</span> = <code><a href="https://php.net/manual/en/language.types.null">NULL</a></code>])</p>
        </li>
        
        <li>
-               <h3><a href="ion/unserialize">unserialize</a></h3>
+               <h3 id="unserialize">
+<a href="ion/unserialize">unserialize</a><a class="permalink" href="ion#unserialize">#</a>
+</h3>
                <p>Unserialize ION data (stream) as PHP value(s).</p>
 
-               <p>mixed ion\unserialize(string|resource $data, [?ion\Unserializer $unserializer = NULL])</p>
+               <p><code><a href="https://php.net/manual/en/language.types.declarations#language.types.declarations.mixed">mixed</a></code> <a href="ion/unserialize">ion\unserialize</a>(<code><a href="https://php.net/manual/en/language.types.string">string</a></code>|<code><a href="https://php.net/manual/en/language.types.resource">resource</a></code> <span class="var">$data</span>, [?<a href="ion/Unserializer">ion\Unserializer</a> <span class="var">$unserializer</span> = <code><a href="https://php.net/manual/en/language.types.null">NULL</a></code>])</p>
        </li>
        
-</ul>
-
-
-<h2 id="Namespaces,.Interfaces.and.Classes:">Namespaces, Interfaces and Classes:</h2>
-<ul>
+</ul><h2 id="Namespaces.Interfaces.and.Classes:">Namespaces, Interfaces and Classes:<a class="permalink" href="ion#Namespaces.Interfaces.and.Classes:">#</a>
+</h2><ul>
        
        <li>
-               <h3><a href="ion/Catalog">Catalog</a></h3>
-               <p>The Catalog holds a collection of ion\Symbol\Table instances queried from ion\Reader and ion\Writer instances.</p>
+               <h3 id="Catalog">
+<a href="ion/Catalog">Catalog</a><a class="permalink" href="ion#Catalog">#</a>
+</h3>
+               <p>The Catalog holds a collection of <a href="ion/Symbol/Table">ion\Symbol\Table</a> instances queried from <a href="ion/Reader">ion\Reader</a> and <a href="ion/Writer">ion\Writer</a> instances.</p>
 
-               <p>class ion\Catalog implements Countable</p>
+               <p><em>class</em> <a href="ion/Catalog">ion\Catalog</a> <em>implements</em> <code><a href="https://php.net/manual/en/class.countable">Countable</a></code></p>
        </li>
        
        <li>
-               <h3><a href="ion/Decimal">Decimal</a></h3>
+               <h3 id="Decimal">
+<a href="ion/Decimal">Decimal</a><a class="permalink" href="ion#Decimal">#</a>
+</h3>
                <p>An arbitrary precision fixed point decimal.</p>
 
-               <p>class ion\Decimal implements Stringable</p>
+               <p><em>class</em> <a href="ion/Decimal">ion\Decimal</a> <em>implements</em> <code><a href="https://php.net/manual/en/class.stringable">Stringable</a></code></p>
        </li>
        
        <li>
-               <h3><a href="ion/Exception">Exception</a></h3>
+               <h3 id="Exception">
+<a href="ion/Exception">Exception</a><a class="permalink" href="ion#Exception">#</a>
+</h3>
                <p>Base exception for the ION extension.</p>
 
-               <p>class ion\Exception extends Exception implements Stringable, Throwable</p>
+               <p><em>class</em> <a href="ion/Exception">ion\Exception</a> <em>extends</em> <code><a href="https://php.net/manual/en/class.exception">Exception</a></code> <em>implements</em> <code><a href="https://php.net/manual/en/class.throwable">Throwable</a></code></p>
        </li>
        
        <li>
-               <h3><a href="ion/LOB">LOB</a></h3>
+               <h3 id="LOB">
+<a href="ion/LOB">LOB</a><a class="permalink" href="ion#LOB">#</a>
+</h3>
                <p>A large object.</p>
 
-               <p>class ion\LOB</p>
+               <p><em>class</em> <a href="ion/LOB">ion\LOB</a></p>
        </li>
        
        <li>
-               <h3><a href="ion/Reader">Reader</a></h3>
+               <h3 id="Reader">
+<a href="ion/Reader">Reader</a><a class="permalink" href="ion#Reader">#</a>
+</h3>
                <p>ION reader API.</p>
 
-               <p>interface ion\Reader implements Iterator, RecursiveIterator, Traversable</p>
+               <p><em>interface</em> <a href="ion/Reader">ion\Reader</a> <em>implements</em> <code><a href="https://php.net/manual/en/class.recursiveiterator">RecursiveIterator</a></code></p>
        </li>
        
        <li>
-               <h3><a href="ion/Serializer">Serializer</a></h3>
-               <p>Serializer interface, used to customize ion\serialize()'s behavior.</p>
+               <h3 id="Serializer">
+<a href="ion/Serializer">Serializer</a><a class="permalink" href="ion#Serializer">#</a>
+</h3>
+               <p>Serializer <em>interface</em>, used to customize <a href="ion/serialize">ion\serialize</a>()'s behavior.</p>
 
-               <p>interface ion\Serializer</p>
+               <p><em>interface</em> <a href="ion/Serializer">ion\Serializer</a></p>
        </li>
        
        <li>
-               <h3><a href="ion/Symbol">Symbol</a></h3>
+               <h3 id="Symbol">
+<a href="ion/Symbol">Symbol</a><a class="permalink" href="ion#Symbol">#</a>
+</h3>
                
-               <p>class ion\Symbol implements Stringable</p>
+               <p><em>class</em> <a href="ion/Symbol">ion\Symbol</a> <em>implements</em> <code><a href="https://php.net/manual/en/class.stringable">Stringable</a></code></p>
        </li>
        
        <li>
-               <h3><a href="ion/Timestamp">Timestamp</a></h3>
+               <h3 id="Timestamp">
+<a href="ion/Timestamp">Timestamp</a><a class="permalink" href="ion#Timestamp">#</a>
+</h3>
                <p>An ION Timestamp.</p>
 
-               <p>class ion\Timestamp extends DateTime implements DateTimeInterface, Stringable</p>
+               <p><em>class</em> <a href="ion/Timestamp">ion\Timestamp</a> <em>extends</em> <code><a href="https://php.net/manual/en/class.datetime">DateTime</a></code> <em>implements</em> <code><a href="https://php.net/manual/en/class.datetimeinterface">DateTimeInterface</a></code>, <code><a href="https://php.net/manual/en/class.stringable">Stringable</a></code></p>
        </li>
        
        <li>
-               <h3><a href="ion/Type">Type</a></h3>
+               <h3 id="Type">
+<a href="ion/Type">Type</a><a class="permalink" href="ion#Type">#</a>
+</h3>
                <p>ION data type.</p>
 
-               <p>enum ion\Type implements BackedEnum, UnitEnum</p>
+               <p><code><a href="https://php.net/manual/en/language.types.enumerations">enum</a></code> <a href="ion/Type">ion\Type</a> <em>implements</em> <code><a href="https://php.net/manual/en/class.backedenum">BackedEnum</a></code></p>
        </li>
        
        <li>
-               <h3><a href="ion/Unserializer">Unserializer</a></h3>
-               <p>Unserializer interface, used to customize ion\unserialize()'s behavior.</p>
+               <h3 id="Unserializer">
+<a href="ion/Unserializer">Unserializer</a><a class="permalink" href="ion#Unserializer">#</a>
+</h3>
+               <p>Unserializer <em>interface</em>, used to customize <a href="ion/unserialize">ion\unserialize</a>()'s behavior.</p>
 
-               <p>interface ion\Unserializer</p>
+               <p><em>interface</em> <a href="ion/Unserializer">ion\Unserializer</a></p>
        </li>
        
        <li>
-               <h3><a href="ion/Writer">Writer</a></h3>
+               <h3 id="Writer">
+<a href="ion/Writer">Writer</a><a class="permalink" href="ion#Writer">#</a>
+</h3>
                <p>ION writer API.</p>
 
-               <p>interface ion\Writer</p>
+               <p><em>interface</em> <a href="ion/Writer">ion\Writer</a></p>
        </li>
        
-</ul>
-               
+</ul>          
                        <div id="disqus_thread"><button id="disqus_activator">Show <span> </span> Comment(s)</button></div>
                        <script>
                                var disqus_shortname = 'mdref';
@@ -431,7 +443,7 @@ instances of the following PHP classes cannot be cloned:</p>
                        <footer>
                                
 <ul>
-       <li><a href="https://github.com/m6w6/mdref">mdref-v2.0
+       <li><a href="https://github.com/m6w6/mdref">mdref-v3.0
 </a></li>
        <li><a href="LICENSE">&copy; 2013-2022          All rights reserved.</a></li>
        <li>