9 <meta property=
"og:title" content=
"ion">
10 <meta name=
"viewport" content=
"width=1200, initial-scale=0.5">
11 <base href=
"/ext-ion/v0.1/">
12 <meta http-equiv=
"Content-Location" content=
"/ext-ion/v0.1/ion">
13 <link rel=
"stylesheet" href=
"index.css">
15 <link rel=
"shortcut icon" href=
"/ext-ion/v0.1/favicon.ico">
23 <a href=
"https://github.com/awesomized/ext-ion/edit/master/ion.stub.php">Edit
</a>
28 <li>↰ <a href=
"./">Home
</a>
33 ↻ <strong><a href=
"./ion">ion
</a></strong>
39 ↳ <a href=
"./ion/: Contributing">★ Contributing
</a>
44 ↳ <a href=
"./ion/: Security">★ Security
</a>
49 ↳ <a href=
"./ion/: Tutorial">★ Tutorial
</a>
54 ↳ <a href=
"./ion/Catalog">Catalog
</a>
59 ↳ <a href=
"./ion/Decimal">Decimal
</a>
63 <li>↳ <a href=
"./ion/Decimal/Context">Context
</a>
66 <li>↳ <a href=
"./ion/Decimal/Context/Dec128">Dec128
</a>
69 <li>↳ <a href=
"./ion/Decimal/Context/Dec32">Dec32
</a>
72 <li>↳ <a href=
"./ion/Decimal/Context/Dec64">Dec64
</a>
75 <li>↳ <a href=
"./ion/Decimal/Context/DecMax">DecMax
</a>
78 <li>↳ <a href=
"./ion/Decimal/Context/Rounding">Rounding
</a>
90 ↳ <a href=
"./ion/Exception">Exception
</a>
95 ↳ <a href=
"./ion/LOB">LOB
</a>
100 ↳ <a href=
"./ion/Reader">Reader
</a>
104 <li>↳ <a href=
"./ion/Reader/Buffer">Buffer
</a>
107 <li>↳ <a href=
"./ion/Reader/Buffer/Reader">Reader
</a>
114 <li>↳ <a href=
"./ion/Reader/Options">Options
</a>
117 <li>↳ <a href=
"./ion/Reader/Reader">Reader
</a>
120 <li>↳ <a href=
"./ion/Reader/Stream">Stream
</a>
123 <li>↳ <a href=
"./ion/Reader/Stream/Reader">Reader
</a>
135 ↳ <a href=
"./ion/Serializer">Serializer
</a>
139 <li>↳ <a href=
"./ion/Serializer/Serializer">Serializer
</a>
147 ↳ <a href=
"./ion/Symbol">Symbol
</a>
151 <li>↳ <a href=
"./ion/Symbol/Enum">Enum
</a>
154 <li>↳ <a href=
"./ion/Symbol/ImportLocation">ImportLocation
</a>
157 <li>↳ <a href=
"./ion/Symbol/PHP">PHP
</a>
160 <li>↳ <a href=
"./ion/Symbol/System">System
</a>
163 <li>↳ <a href=
"./ion/Symbol/Table">Table
</a>
166 <li>↳ <a href=
"./ion/Symbol/Table/Local">Local
</a>
169 <li>↳ <a href=
"./ion/Symbol/Table/Shared">Shared
</a>
181 ↳ <a href=
"./ion/Timestamp">Timestamp
</a>
185 <li>↳ <a href=
"./ion/Timestamp/Format">Format
</a>
188 <li>↳ <a href=
"./ion/Timestamp/Precision">Precision
</a>
196 ↳ <a href=
"./ion/Type">Type
</a>
201 ↳ <a href=
"./ion/Unserializer">Unserializer
</a>
205 <li>↳ <a href=
"./ion/Unserializer/Unserializer">Unserializer
</a>
213 ↳ <a href=
"./ion/Writer">Writer
</a>
217 <li>↳ <a href=
"./ion/Writer/Buffer">Buffer
</a>
220 <li>↳ <a href=
"./ion/Writer/Buffer/Writer">Writer
</a>
227 <li>↳ <a href=
"./ion/Writer/Options">Options
</a>
230 <li>↳ <a href=
"./ion/Writer/Stream">Stream
</a>
233 <li>↳ <a href=
"./ion/Writer/Stream/Writer">Writer
</a>
240 <li>↳ <a href=
"./ion/Writer/Writer">Writer
</a>
248 ↳ <a href=
"./ion/serialize">serialize
</a>
253 ↳ <a href=
"./ion/unserialize">unserialize
</a>
266 <meta charset=
"utf-8"><h1>
267 <a class=
"permalink" href=
"ion#">#
</a>pecl/ion
</h1><h2 id=
"About:">About:
<a class=
"permalink" href=
"ion#About:">#
</a>
268 </h2><p>PHP extension wrapping
<a href=
"https://github.com/amzn/ion-c">amzn/ion-c
</a>.
269 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>
270 </h2><p><a href=
"https://github.com/awesomized/ext-ion/blob/master/LICENSE">BSD-
2-Clause
</a>;
271 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>
272 </h2><h3 id=
"Dependencies:">Dependencies:
<a class=
"permalink" href=
"ion#Dependencies:">#
</a>
273 </h3><h4 id=
"Required:">Required:
<a class=
"permalink" href=
"ion#Required:">#
</a>
277 <li>ext/date (standard)
</li>
278 <li>ext/spl (standard)
</li>
281 </ul><h4 id=
"Optional:">Optional:
<a class=
"permalink" href=
"ion#Optional:">#
</a>
284 <a href=
"https://github.com/amzn/ion-c">amzn/ion-c
</a> (bundled as git submodule)
</li>
285 </ul><h3 id=
"Trinity:">Trinity:
<a class=
"permalink" href=
"ion#Trinity:">#
</a>
286 </h3><pre><code><span style=
"color: inherit" class=
"html">
287 phpize
<br>./configure # --with-php-config=
<path/to/php-config
><br>make # -j$(nproc)
<br>sudo make install # INSTALL=install
<br></span>
288 </code></pre><h3 id=
"PECL">PECL
<a class=
"permalink" href=
"ion#PECL">#
</a>
289 </h3><pre><code><span style=
"color: inherit" class=
"html">
290 pecl install ion
<br></span>
291 </code></pre><h3 id=
"PHARext">PHARext
<a class=
"permalink" href=
"ion#PHARext">#
</a>
292 </h3><p>Watch out for
<a href=
"https://replicator.pharext.org?ion">PECL replicates
</a>
293 and pharext packages attached to
<a href=
"./releases">releases
</a>.
</p><h3 id=
"Try.with.Docker:">Try with Docker:
<a class=
"permalink" href=
"ion#Try.with.Docker:">#
</a>
294 </h3><pre><code><span style=
"color: inherit" class=
"html">
295 docker build -t php-ion
<br>docker run --rm php-ion -r 'echo ion\serialize(ion\Symbol\PHP::asTable());'
<br></span>
296 </code></pre><h2 id=
"Editor.Stub:">Editor Stub:
<a class=
"permalink" href=
"ion#Editor.Stub:">#
</a>
297 </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>
298 </h2><p>Due to
<em>private
</em> internal state of ion-c's readers and writers,
299 instances of the following PHP classes cannot be cloned:
</p><ul>
300 <li><a href=
"ion/Reader/Reader">ion\Reader\Reader
</a></li>
301 <li><a href=
"ion/Writer/Writer">ion\Writer\Writer
</a></li>
302 <li><a href=
"ion/Serializer#PHP">ion\Serializer\PHP
</a></li>
303 <li><a href=
"ion/Unserializer#PHP">ion\Unserializer\PHP
</a></li>
304 </ul><h2 id=
"Editor.Stub:">Editor Stub:
<a class=
"permalink" href=
"ion#Editor.Stub:">#
</a>
305 </h2><p>This extension provides a stub file four your editor's auto-completion.
</p><div>
306 <p><strong>Download the Stub file:
</strong></p>
307 <ul style=
"list-style-type: '»'">
309 <a href=
"ion.stub.php">ion.stub.php
</a><br>
312 2022-
04-
01 16:
15:
03 UTC
</small>
315 </div><h2 id=
"Functions:">Functions:
<a class=
"permalink" href=
"ion#Functions:">#
</a>
316 </h2><ul class=
"sub-entries sub-functions">
320 <a href=
"ion/serialize">serialize
</a><a class=
"permalink" href=
"ion#serialize">#
</a>
322 <p>Serialize a PHP value as ION data.
</p>
324 <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>|
<code><a href=
"https://php.net/manual/en/language.types.array">array
</a></code>|
<code><a href=
"https://php.net/manual/en/language.types.null">null
</a></code> <span class=
"var">$serializer
</span> =
<code><a href=
"https://php.net/manual/en/language.types.null">NULL
</a></code>])
</p>
328 <h3 id=
"unserialize">
329 <a href=
"ion/unserialize">unserialize
</a><a class=
"permalink" href=
"ion#unserialize">#
</a>
331 <p>Unserialize ION data (stream) as PHP value(s).
</p>
333 <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>|
<code><a href=
"https://php.net/manual/en/language.types.array">array
</a></code>|
<code><a href=
"https://php.net/manual/en/language.types.null">null
</a></code> <span class=
"var">$unserializer
</span> =
<code><a href=
"https://php.net/manual/en/language.types.null">NULL
</a></code>])
</p>
336 </ul><h2 id=
"Namespaces.Interfaces.and.Classes:">Namespaces, Interfaces and Classes:
<a class=
"permalink" href=
"ion#Namespaces.Interfaces.and.Classes:">#
</a>
337 </h2><ul class=
"sub-entries sub-ns-classes">
341 <a href=
"ion/Catalog">Catalog
</a><a class=
"permalink" href=
"ion#Catalog">#
</a>
343 <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>
345 <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>
350 <a href=
"ion/Decimal">Decimal
</a><a class=
"permalink" href=
"ion#Decimal">#
</a>
352 <p>An arbitrary precision fixed point decimal.
</p>
354 <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>
359 <a href=
"ion/Exception">Exception
</a><a class=
"permalink" href=
"ion#Exception">#
</a>
361 <p>Base exception for the ION extension.
</p>
363 <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>
368 <a href=
"ion/LOB">LOB
</a><a class=
"permalink" href=
"ion#LOB">#
</a>
370 <p>A large object.
</p>
372 <p><em>class
</em> <a href=
"ion/LOB">ion\LOB
</a></p>
377 <a href=
"ion/Reader">Reader
</a><a class=
"permalink" href=
"ion#Reader">#
</a>
379 <p>ION reader API.
</p>
381 <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>
386 <a href=
"ion/Serializer">Serializer
</a><a class=
"permalink" href=
"ion#Serializer">#
</a>
388 <p>Serializer
<em>interface
</em>, used to customize
<a href=
"ion/serialize">ion\serialize
</a>()'s behavior.
</p>
390 <p><em>interface
</em> <a href=
"ion/Serializer">ion\Serializer
</a></p>
395 <a href=
"ion/Symbol">Symbol
</a><a class=
"permalink" href=
"ion#Symbol">#
</a>
398 <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>
403 <a href=
"ion/Timestamp">Timestamp
</a><a class=
"permalink" href=
"ion#Timestamp">#
</a>
405 <p>An ION Timestamp.
</p>
407 <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>
412 <a href=
"ion/Type">Type
</a><a class=
"permalink" href=
"ion#Type">#
</a>
414 <p>ION data type.
</p>
416 <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>
420 <h3 id=
"Unserializer">
421 <a href=
"ion/Unserializer">Unserializer
</a><a class=
"permalink" href=
"ion#Unserializer">#
</a>
423 <p>Unserializer
<em>interface
</em>, used to customize
<a href=
"ion/unserialize">ion\unserialize
</a>()'s behavior.
</p>
425 <p><em>interface
</em> <a href=
"ion/Unserializer">ion\Unserializer
</a></p>
430 <a href=
"ion/Writer">Writer
</a><a class=
"permalink" href=
"ion#Writer">#
</a>
432 <p>ION writer API.
</p>
434 <p><em>interface
</em> <a href=
"ion/Writer">ion\Writer
</a></p>
438 <div class=
"comments">
439 <style>.giscus-frame {min-height:
16em;}
</style>
441 function giscus_load(button) {
442 let script = document.createElement(
"script");
443 script.setAttribute(
"data-repo", 'awesomized/ext-ion');
444 script.setAttribute(
"data-category", 'Comments on Docs');
445 script.setAttribute(
"data-repo-id", 'R_kgDOGfXEXw');
446 script.setAttribute(
"data-category-id", 'DIC_kwDOGfXEX84CBHuf');
447 script.setAttribute(
"data-mapping", 'og:title');
448 script.setAttribute(
"data-input-position", 'bottom');
449 script.setAttribute(
"data-reactions-enabled", false);
450 script.setAttribute(
"data-theme", 'light');
451 script.setAttribute(
"data-lang", 'en');
453 script.src =
"//giscus.app/client.js";
454 button.parentNode.replaceChild(script, button);
457 <button class=
"activator" onclick=
"giscus_load(this)">Show Comments from Github Discussions
</button>
464 <li><a href=
"https://github.com/m6w6/mdref">mdref-v3.0
466 <li><a href=
"LICENSE">© 2013-
2022 All rights reserved.
</a></li>
473 <script src=
"index.js" defer
></script>