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/Catalog">Catalog
</a>
54 ↳ <a href=
"./ion/Decimal">Decimal
</a>
58 <li>↳ <a href=
"./ion/Decimal/Context">Context
</a>
61 <li>↳ <a href=
"./ion/Decimal/Context/Dec128">Dec128
</a>
64 <li>↳ <a href=
"./ion/Decimal/Context/Dec32">Dec32
</a>
67 <li>↳ <a href=
"./ion/Decimal/Context/Dec64">Dec64
</a>
70 <li>↳ <a href=
"./ion/Decimal/Context/DecMax">DecMax
</a>
73 <li>↳ <a href=
"./ion/Decimal/Context/Rounding">Rounding
</a>
85 ↳ <a href=
"./ion/Exception">Exception
</a>
90 ↳ <a href=
"./ion/LOB">LOB
</a>
95 ↳ <a href=
"./ion/Reader">Reader
</a>
99 <li>↳ <a href=
"./ion/Reader/Buffer">Buffer
</a>
102 <li>↳ <a href=
"./ion/Reader/Buffer/Reader">Reader
</a>
109 <li>↳ <a href=
"./ion/Reader/Options">Options
</a>
112 <li>↳ <a href=
"./ion/Reader/Reader">Reader
</a>
115 <li>↳ <a href=
"./ion/Reader/Stream">Stream
</a>
118 <li>↳ <a href=
"./ion/Reader/Stream/Reader">Reader
</a>
130 ↳ <a href=
"./ion/Serializer">Serializer
</a>
134 <li>↳ <a href=
"./ion/Serializer/PHP">PHP
</a>
142 ↳ <a href=
"./ion/Symbol">Symbol
</a>
146 <li>↳ <a href=
"./ion/Symbol/Enum">Enum
</a>
149 <li>↳ <a href=
"./ion/Symbol/ImportLocation">ImportLocation
</a>
152 <li>↳ <a href=
"./ion/Symbol/PHP">PHP
</a>
155 <li>↳ <a href=
"./ion/Symbol/System">System
</a>
158 <li>↳ <a href=
"./ion/Symbol/Table">Table
</a>
161 <li>↳ <a href=
"./ion/Symbol/Table/Local">Local
</a>
164 <li>↳ <a href=
"./ion/Symbol/Table/Shared">Shared
</a>
176 ↳ <a href=
"./ion/Timestamp">Timestamp
</a>
180 <li>↳ <a href=
"./ion/Timestamp/Format">Format
</a>
183 <li>↳ <a href=
"./ion/Timestamp/Precision">Precision
</a>
191 ↳ <a href=
"./ion/Type">Type
</a>
196 ↳ <a href=
"./ion/Unserializer">Unserializer
</a>
200 <li>↳ <a href=
"./ion/Unserializer/PHP">PHP
</a>
208 ↳ <a href=
"./ion/Writer">Writer
</a>
212 <li>↳ <a href=
"./ion/Writer/Buffer">Buffer
</a>
215 <li>↳ <a href=
"./ion/Writer/Buffer/Writer">Writer
</a>
222 <li>↳ <a href=
"./ion/Writer/Options">Options
</a>
225 <li>↳ <a href=
"./ion/Writer/Stream">Stream
</a>
228 <li>↳ <a href=
"./ion/Writer/Stream/Writer">Writer
</a>
235 <li>↳ <a href=
"./ion/Writer/Writer">Writer
</a>
243 ↳ <a href=
"./ion/serialize">serialize
</a>
248 ↳ <a href=
"./ion/unserialize">unserialize
</a>
261 <meta charset=
"utf-8"><h1>
262 <a class=
"permalink" href=
"ion#">#
</a>pecl/ion
</h1><h2 id=
"About:">About:
<a class=
"permalink" href=
"ion#About:">#
</a>
263 </h2><p>PHP extension wrapping
<a href=
"https://github.com/amzn/ion-c">amzn/ion-c
</a>.
264 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>
265 </h2><p><a href=
"https://github.com/awesomized/ext-ion/blob/master/LICENSE">BSD-
2-Clause
</a>;
266 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>
267 </h2><h3 id=
"Dependencies:">Dependencies:
<a class=
"permalink" href=
"ion#Dependencies:">#
</a>
268 </h3><h4 id=
"Required:">Required:
<a class=
"permalink" href=
"ion#Required:">#
</a>
272 <li>ext/date (standard)
</li>
273 <li>ext/spl (standard)
</li>
276 </ul><h4 id=
"Optional:">Optional:
<a class=
"permalink" href=
"ion#Optional:">#
</a>
279 <a href=
"https://github.com/amzn/ion-c">amzn/ion-c
</a> (bundled as git submodule)
</li>
280 </ul><h3 id=
"Trinity:">Trinity:
<a class=
"permalink" href=
"ion#Trinity:">#
</a>
281 </h3><pre><code><span style=
"color: inherit" class=
"html">
282 phpize
<br>./configure # --with-php-config=
<path/to/php-config
><br>make # -j$(nproc)
<br>sudo make install # INSTALL=install
<br></span>
283 </code></pre><h3 id=
"PECL">PECL
<a class=
"permalink" href=
"ion#PECL">#
</a>
284 </h3><pre><code><span style=
"color: inherit" class=
"html">
285 pecl install ion
<br></span>
286 </code></pre><h3 id=
"PHARext">PHARext
<a class=
"permalink" href=
"ion#PHARext">#
</a>
287 </h3><p>Watch out for
<a href=
"https://replicator.pharext.org?ion">PECL replicates
</a>
288 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>
289 </h3><pre><code><span style=
"color: inherit" class=
"html">
290 docker build -t php-ion
<br>docker run --rm php-ion -r 'echo ion\serialize(ion\Symbol\PHP::asTable());'
<br></span>
291 </code></pre><h2 id=
"Editor.Stub:">Editor Stub:
<a class=
"permalink" href=
"ion#Editor.Stub:">#
</a>
292 </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>
293 </h2><p>Due to
<em>private
</em> internal state of ion-c's readers and writers,
294 instances of the following PHP classes cannot be cloned:
</p><ul>
295 <li><a href=
"ion/Reader/Reader">ion\Reader\Reader
</a></li>
296 <li><a href=
"ion/Writer/Writer">ion\Writer\Writer
</a></li>
297 <li><a href=
"ion/Serializer/PHP">ion\Serializer\PHP
</a></li>
298 <li><a href=
"ion/Unserializer/PHP">ion\Unserializer\PHP
</a></li>
299 </ul><h2 id=
"Editor.Stub:">Editor Stub:
<a class=
"permalink" href=
"ion#Editor.Stub:">#
</a>
300 </h2><p>This extension provides a stub file four your editor's auto-completion.
</p><div>
301 <p><strong>Download the Stub file:
</strong></p>
302 <ul style=
"list-style-type: '»'">
304 <a href=
"ion.stub.php">ion.stub.php
</a><br>
307 2022-
01-
28 09:
29:
47 UTC
</small>
310 </div><h2 id=
"Functions:">Functions:
<a class=
"permalink" href=
"ion#Functions:">#
</a>
311 </h2><ul class=
"sub-entries sub-functions">
315 <a href=
"ion/serialize">serialize
</a><a class=
"permalink" href=
"ion#serialize">#
</a>
317 <p>Serialize a PHP value as ION data.
</p>
319 <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>
323 <h3 id=
"unserialize">
324 <a href=
"ion/unserialize">unserialize
</a><a class=
"permalink" href=
"ion#unserialize">#
</a>
326 <p>Unserialize ION data (stream) as PHP value(s).
</p>
328 <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>
331 </ul><h2 id=
"Namespaces.Interfaces.and.Classes:">Namespaces, Interfaces and Classes:
<a class=
"permalink" href=
"ion#Namespaces.Interfaces.and.Classes:">#
</a>
332 </h2><ul class=
"sub-entries sub-ns-classes">
336 <a href=
"ion/Catalog">Catalog
</a><a class=
"permalink" href=
"ion#Catalog">#
</a>
338 <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>
340 <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>
345 <a href=
"ion/Decimal">Decimal
</a><a class=
"permalink" href=
"ion#Decimal">#
</a>
347 <p>An arbitrary precision fixed point decimal.
</p>
349 <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>
354 <a href=
"ion/Exception">Exception
</a><a class=
"permalink" href=
"ion#Exception">#
</a>
356 <p>Base exception for the ION extension.
</p>
358 <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>
363 <a href=
"ion/LOB">LOB
</a><a class=
"permalink" href=
"ion#LOB">#
</a>
365 <p>A large object.
</p>
367 <p><em>class
</em> <a href=
"ion/LOB">ion\LOB
</a></p>
372 <a href=
"ion/Reader">Reader
</a><a class=
"permalink" href=
"ion#Reader">#
</a>
374 <p>ION reader API.
</p>
376 <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>
381 <a href=
"ion/Serializer">Serializer
</a><a class=
"permalink" href=
"ion#Serializer">#
</a>
383 <p>Serializer
<em>interface
</em>, used to customize
<a href=
"ion/serialize">ion\serialize
</a>()'s behavior.
</p>
385 <p><em>interface
</em> <a href=
"ion/Serializer">ion\Serializer
</a></p>
390 <a href=
"ion/Symbol">Symbol
</a><a class=
"permalink" href=
"ion#Symbol">#
</a>
393 <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>
398 <a href=
"ion/Timestamp">Timestamp
</a><a class=
"permalink" href=
"ion#Timestamp">#
</a>
400 <p>An ION Timestamp.
</p>
402 <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>
407 <a href=
"ion/Type">Type
</a><a class=
"permalink" href=
"ion#Type">#
</a>
409 <p>ION data type.
</p>
411 <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>
415 <h3 id=
"Unserializer">
416 <a href=
"ion/Unserializer">Unserializer
</a><a class=
"permalink" href=
"ion#Unserializer">#
</a>
418 <p>Unserializer
<em>interface
</em>, used to customize
<a href=
"ion/unserialize">ion\unserialize
</a>()'s behavior.
</p>
420 <p><em>interface
</em> <a href=
"ion/Unserializer">ion\Unserializer
</a></p>
425 <a href=
"ion/Writer">Writer
</a><a class=
"permalink" href=
"ion#Writer">#
</a>
427 <p>ION writer API.
</p>
429 <p><em>interface
</em> <a href=
"ion/Writer">ion\Writer
</a></p>
433 <div class=
"comments">
434 <style>.giscus-frame {min-height:
16em;}
</style>
436 function giscus_load(button) {
437 let script = document.createElement(
"script");
438 script.setAttribute(
"data-repo", 'awesomized/ext-ion');
439 script.setAttribute(
"data-category", 'Comments on Docs');
440 script.setAttribute(
"data-repo-id", 'R_kgDOGfXEXw');
441 script.setAttribute(
"data-category-id", 'DIC_kwDOGfXEX84CBHuf');
442 script.setAttribute(
"data-mapping", 'og:title');
443 script.setAttribute(
"data-input-position", 'bottom');
444 script.setAttribute(
"data-reactions-enabled", false);
445 script.setAttribute(
"data-theme", 'light');
446 script.setAttribute(
"data-lang", 'en');
448 script.src =
"//giscus.app/client.js";
449 button.parentNode.replaceChild(script, button);
452 <button class=
"activator" onclick=
"giscus_load(this)">Show Comments from Github Discussions
</button>
459 <li><a href=
"https://github.com/m6w6/mdref">mdref-v3.0
461 <li><a href=
"LICENSE">© 2013-
2022 All rights reserved.
</a></li>
468 <script src=
"index.js" defer
></script>