prepare 0.2.0
[awesomized/ext-ion] / docs / v0.2 / ion.html
1 <!doctype html>
2 <html>
3 <head>
4 <meta charset="utf-8">
5 <title>
6 ion -
7 mdref
8 </title>
9 <meta property="og:title" content="ion">
10 <meta name="viewport" content="width=1200, initial-scale=0.5">
11 <base href="/ext-ion/v0.2/">
12 <meta http-equiv="Content-Location" content="/ext-ion/v0.2/ion">
13 <link rel="stylesheet" href="index.css">
14
15 <link rel="shortcut icon" href="/ext-ion/v0.2/favicon.ico">
16 </head>
17 <body>
18 <div class="page">
19
20 <div class="sidebar">
21
22 <div class="edit">
23 <a href="https://github.com/awesomized/ext-ion/edit/master/ion.stub.php">Edit</a>
24 </div>
25
26
27 <ul>
28 <li>&lsh; <a href="./">Home</a>
29
30 <ul>
31 <li>
32
33 &circlearrowright; <strong><a href="./ion">ion</a></strong>
34
35
36 <ul>
37
38 <li>
39 &rdsh; <a href="./ion/: Contributing">★ Contributing</a>
40
41 </li>
42
43 <li>
44 &rdsh; <a href="./ion/: Security">★ Security</a>
45
46 </li>
47
48 <li>
49 &rdsh; <a href="./ion/: Tutorial">★ Tutorial</a>
50
51 </li>
52
53 <li>
54 &rdsh; <a href="./ion/Catalog">Catalog</a>
55
56 </li>
57
58 <li>
59 &rdsh; <a href="./ion/Decimal">Decimal</a>
60
61 <ul>
62
63 <li>&rdsh; <a href="./ion/Decimal/Context">Context</a>
64 <ul>
65
66 <li>&rdsh; <a href="./ion/Decimal/Context/Dec128">Dec128</a>
67 </li>
68
69 <li>&rdsh; <a href="./ion/Decimal/Context/Dec32">Dec32</a>
70 </li>
71
72 <li>&rdsh; <a href="./ion/Decimal/Context/Dec64">Dec64</a>
73 </li>
74
75 <li>&rdsh; <a href="./ion/Decimal/Context/DecMax">DecMax</a>
76 </li>
77
78 <li>&rdsh; <a href="./ion/Decimal/Context/Rounding">Rounding</a>
79 </li>
80
81 </ul>
82
83 </li>
84
85 </ul>
86
87 </li>
88
89 <li>
90 &rdsh; <a href="./ion/Exception">Exception</a>
91
92 </li>
93
94 <li>
95 &rdsh; <a href="./ion/LOB">LOB</a>
96
97 </li>
98
99 <li>
100 &rdsh; <a href="./ion/Reader">Reader</a>
101
102 <ul>
103
104 <li>&rdsh; <a href="./ion/Reader/Buffer">Buffer</a>
105 <ul>
106
107 <li>&rdsh; <a href="./ion/Reader/Buffer/Reader">Reader</a>
108 </li>
109
110 </ul>
111
112 </li>
113
114 <li>&rdsh; <a href="./ion/Reader/Options">Options</a>
115 </li>
116
117 <li>&rdsh; <a href="./ion/Reader/Reader">Reader</a>
118 </li>
119
120 <li>&rdsh; <a href="./ion/Reader/Stream">Stream</a>
121 <ul>
122
123 <li>&rdsh; <a href="./ion/Reader/Stream/Reader">Reader</a>
124 </li>
125
126 </ul>
127
128 </li>
129
130 </ul>
131
132 </li>
133
134 <li>
135 &rdsh; <a href="./ion/Serializer">Serializer</a>
136
137 <ul>
138
139 <li>&rdsh; <a href="./ion/Serializer/Serializer">Serializer</a>
140 </li>
141
142 </ul>
143
144 </li>
145
146 <li>
147 &rdsh; <a href="./ion/Symbol">Symbol</a>
148
149 <ul>
150
151 <li>&rdsh; <a href="./ion/Symbol/Enum">Enum</a>
152 </li>
153
154 <li>&rdsh; <a href="./ion/Symbol/ImportLocation">ImportLocation</a>
155 </li>
156
157 <li>&rdsh; <a href="./ion/Symbol/PHP">PHP</a>
158 </li>
159
160 <li>&rdsh; <a href="./ion/Symbol/System">System</a>
161 </li>
162
163 <li>&rdsh; <a href="./ion/Symbol/Table">Table</a>
164 <ul>
165
166 <li>&rdsh; <a href="./ion/Symbol/Table/Local">Local</a>
167 </li>
168
169 <li>&rdsh; <a href="./ion/Symbol/Table/Shared">Shared</a>
170 </li>
171
172 </ul>
173
174 </li>
175
176 </ul>
177
178 </li>
179
180 <li>
181 &rdsh; <a href="./ion/Timestamp">Timestamp</a>
182
183 <ul>
184
185 <li>&rdsh; <a href="./ion/Timestamp/Format">Format</a>
186 </li>
187
188 <li>&rdsh; <a href="./ion/Timestamp/Precision">Precision</a>
189 </li>
190
191 </ul>
192
193 </li>
194
195 <li>
196 &rdsh; <a href="./ion/Type">Type</a>
197
198 </li>
199
200 <li>
201 &rdsh; <a href="./ion/Unserializer">Unserializer</a>
202
203 <ul>
204
205 <li>&rdsh; <a href="./ion/Unserializer/Unserializer">Unserializer</a>
206 </li>
207
208 </ul>
209
210 </li>
211
212 <li>
213 &rdsh; <a href="./ion/Writer">Writer</a>
214
215 <ul>
216
217 <li>&rdsh; <a href="./ion/Writer/Buffer">Buffer</a>
218 <ul>
219
220 <li>&rdsh; <a href="./ion/Writer/Buffer/Writer">Writer</a>
221 </li>
222
223 </ul>
224
225 </li>
226
227 <li>&rdsh; <a href="./ion/Writer/Options">Options</a>
228 </li>
229
230 <li>&rdsh; <a href="./ion/Writer/Stream">Stream</a>
231 <ul>
232
233 <li>&rdsh; <a href="./ion/Writer/Stream/Writer">Writer</a>
234 </li>
235
236 </ul>
237
238 </li>
239
240 <li>&rdsh; <a href="./ion/Writer/Writer">Writer</a>
241 </li>
242
243 </ul>
244
245 </li>
246
247 <li>
248 &rdsh; <a href="./ion/serialize">serialize</a>
249
250 </li>
251
252 <li>
253 &rdsh; <a href="./ion/unserialize">unserialize</a>
254
255 </li>
256
257 </ul>
258
259
260 </li>
261 </ul>
262
263 </li>
264 </ul>
265 </div>
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>
274 </h4><ul>
275 <li>PHP-8.1
276 <ul>
277 <li>ext/date (standard)</li>
278 <li>ext/spl (standard)</li>
279 </ul>
280 </li>
281 </ul><h4 id="Optional:">Optional:<a class="permalink" href="ion#Optional:">#</a>
282 </h4><ul>
283 <li>
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=&lt;path/to/php-config&gt;<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: '»'">
308 <li>
309 <a href="ion.stub.php">ion.stub.php</a><br>
310 <small>
311 Last modified:
312 2022-04-28 10:37:35 UTC </small>
313 </li>
314 </ul>
315 </div><h2 id="Functions:">Functions:<a class="permalink" href="ion#Functions:">#</a>
316 </h2><ul class="sub-entries sub-functions">
317
318 <li>
319 <h3 id="serialize">
320 <a href="ion/serialize">serialize</a><a class="permalink" href="ion#serialize">#</a>
321 </h3>
322 <p>Serialize a PHP value as ION data.</p>
323
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>
325 </li>
326
327 <li>
328 <h3 id="unserialize">
329 <a href="ion/unserialize">unserialize</a><a class="permalink" href="ion#unserialize">#</a>
330 </h3>
331 <p>Unserialize ION data (stream) as PHP value(s).</p>
332
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>
334 </li>
335
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">
338
339 <li>
340 <h3 id="Catalog">
341 <a href="ion/Catalog">Catalog</a><a class="permalink" href="ion#Catalog">#</a>
342 </h3>
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>
344
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>
346 </li>
347
348 <li>
349 <h3 id="Decimal">
350 <a href="ion/Decimal">Decimal</a><a class="permalink" href="ion#Decimal">#</a>
351 </h3>
352 <p>An arbitrary precision fixed point decimal.</p>
353
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>
355 </li>
356
357 <li>
358 <h3 id="Exception">
359 <a href="ion/Exception">Exception</a><a class="permalink" href="ion#Exception">#</a>
360 </h3>
361 <p>Base exception for the ION extension.</p>
362
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>
364 </li>
365
366 <li>
367 <h3 id="LOB">
368 <a href="ion/LOB">LOB</a><a class="permalink" href="ion#LOB">#</a>
369 </h3>
370 <p>A large object.</p>
371
372 <p><em>class</em> <a href="ion/LOB">ion\LOB</a></p>
373 </li>
374
375 <li>
376 <h3 id="Reader">
377 <a href="ion/Reader">Reader</a><a class="permalink" href="ion#Reader">#</a>
378 </h3>
379 <p>ION reader API.</p>
380
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>
382 </li>
383
384 <li>
385 <h3 id="Serializer">
386 <a href="ion/Serializer">Serializer</a><a class="permalink" href="ion#Serializer">#</a>
387 </h3>
388 <p>Serializer <em>interface</em>, used to customize <a href="ion/serialize">ion\serialize</a>()'s behavior.</p>
389
390 <p><em>interface</em> <a href="ion/Serializer">ion\Serializer</a></p>
391 </li>
392
393 <li>
394 <h3 id="Symbol">
395 <a href="ion/Symbol">Symbol</a><a class="permalink" href="ion#Symbol">#</a>
396 </h3>
397
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>
399 </li>
400
401 <li>
402 <h3 id="Timestamp">
403 <a href="ion/Timestamp">Timestamp</a><a class="permalink" href="ion#Timestamp">#</a>
404 </h3>
405 <p>An ION Timestamp.</p>
406
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>
408 </li>
409
410 <li>
411 <h3 id="Type">
412 <a href="ion/Type">Type</a><a class="permalink" href="ion#Type">#</a>
413 </h3>
414 <p>ION data type.</p>
415
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>
417 </li>
418
419 <li>
420 <h3 id="Unserializer">
421 <a href="ion/Unserializer">Unserializer</a><a class="permalink" href="ion#Unserializer">#</a>
422 </h3>
423 <p>Unserializer <em>interface</em>, used to customize <a href="ion/unserialize">ion\unserialize</a>()'s behavior.</p>
424
425 <p><em>interface</em> <a href="ion/Unserializer">ion\Unserializer</a></p>
426 </li>
427
428 <li>
429 <h3 id="Writer">
430 <a href="ion/Writer">Writer</a><a class="permalink" href="ion#Writer">#</a>
431 </h3>
432 <p>ION writer API.</p>
433
434 <p><em>interface</em> <a href="ion/Writer">ion\Writer</a></p>
435 </li>
436
437 </ul>
438 <div class="comments">
439 <style>.giscus-frame {min-height: 16em;}</style>
440 <script>
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');
452
453 script.src = "//giscus.app/client.js";
454 button.parentNode.replaceChild(script, button);
455 }
456 </script>
457 <button class="activator" onclick="giscus_load(this)">Show Comments from Github Discussions</button>
458
459 </div>
460
461 <footer>
462
463 <ul>
464 <li><a href="https://github.com/m6w6/mdref">mdref-v3.0
465 </a></li>
466 <li><a href="LICENSE">&copy; 2013-2022 All rights reserved.</a></li>
467 <li>
468 </li>
469 </ul>
470
471 </footer>
472
473 <script src="index.js" defer></script>
474
475 </div>
476 </body>
477 </html>