db3733bfef5140412efc5802bcc57d4f9b9beb41
[awesomized/ext-ion] / docs / v0.0 / ion.html
1 <!doctype html>
2 <html>
3 <head>
4 <meta charset="utf-8">
5 <title>
6 ion -
7 mdref
8 </title>
9 <meta name="viewport" content="width=1200, initial-scale=0.5">
10 <base href="/ext-ion/v0.0/">
11 <meta http-equiv="Content-Location" content="/ext-ion/v0.0/ion">
12 <link rel="stylesheet" href="index.css">
13
14 <link href="https://fonts.googleapis.com/css?family=Inconsolata&amp;subset=latin-ext" rel="stylesheet">
15 <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
16 <link rel="shortcut icon" href="/ext-ion/v0.0/favicon.ico">
17 </head>
18 <body>
19 <div class="page">
20
21 <div class="sidebar">
22
23 <div class="edit">
24 <a href="./ion">Edit</a>
25 </div>
26
27
28 <ul>
29 <li>&lsh; <a href="./">Home</a>
30
31 <ul>
32 <li>
33
34 &circlearrowright; <strong><a href="./ion">ion</a></strong>
35
36
37 <ul>
38
39 <li>
40 &rdsh; <a href="./ion/: Contributing">★ Contributing</a>
41
42 </li>
43
44 <li>
45 &rdsh; <a href="./ion/: Security">★ Security</a>
46
47 </li>
48
49 <li>
50 &rdsh; <a href="./ion/Catalog">Catalog</a>
51
52 </li>
53
54 <li>
55 &rdsh; <a href="./ion/Decimal">Decimal</a>
56
57 <ul>
58
59 <li>&rdsh; <a href="./ion/Decimal/Context">Context</a>
60 <ul>
61
62 <li>&rdsh; <a href="./ion/Decimal/Context/Dec128">Dec128</a>
63 </li>
64
65 <li>&rdsh; <a href="./ion/Decimal/Context/Dec32">Dec32</a>
66 </li>
67
68 <li>&rdsh; <a href="./ion/Decimal/Context/Dec64">Dec64</a>
69 </li>
70
71 <li>&rdsh; <a href="./ion/Decimal/Context/DecMax">DecMax</a>
72 </li>
73
74 <li>&rdsh; <a href="./ion/Decimal/Context/Rounding">Rounding</a>
75 </li>
76
77 </ul>
78
79 </li>
80
81 </ul>
82
83 </li>
84
85 <li>
86 &rdsh; <a href="./ion/Exception">Exception</a>
87
88 </li>
89
90 <li>
91 &rdsh; <a href="./ion/LOB">LOB</a>
92
93 </li>
94
95 <li>
96 &rdsh; <a href="./ion/Reader">Reader</a>
97
98 <ul>
99
100 <li>&rdsh; <a href="./ion/Reader/Buffer">Buffer</a>
101 <ul>
102
103 <li>&rdsh; <a href="./ion/Reader/Buffer/Reader">Reader</a>
104 </li>
105
106 </ul>
107
108 </li>
109
110 <li>&rdsh; <a href="./ion/Reader/Options">Options</a>
111 </li>
112
113 <li>&rdsh; <a href="./ion/Reader/Reader">Reader</a>
114 </li>
115
116 <li>&rdsh; <a href="./ion/Reader/Stream">Stream</a>
117 <ul>
118
119 <li>&rdsh; <a href="./ion/Reader/Stream/Reader">Reader</a>
120 </li>
121
122 </ul>
123
124 </li>
125
126 </ul>
127
128 </li>
129
130 <li>
131 &rdsh; <a href="./ion/Serializer">Serializer</a>
132
133 <ul>
134
135 <li>&rdsh; <a href="./ion/Serializer/PHP">PHP</a>
136 </li>
137
138 </ul>
139
140 </li>
141
142 <li>
143 &rdsh; <a href="./ion/Symbol">Symbol</a>
144
145 <ul>
146
147 <li>&rdsh; <a href="./ion/Symbol/Enum">Enum</a>
148 </li>
149
150 <li>&rdsh; <a href="./ion/Symbol/ImportLocation">ImportLocation</a>
151 </li>
152
153 <li>&rdsh; <a href="./ion/Symbol/PHP">PHP</a>
154 </li>
155
156 <li>&rdsh; <a href="./ion/Symbol/System">System</a>
157 </li>
158
159 <li>&rdsh; <a href="./ion/Symbol/Table">Table</a>
160 <ul>
161
162 <li>&rdsh; <a href="./ion/Symbol/Table/Local">Local</a>
163 </li>
164
165 <li>&rdsh; <a href="./ion/Symbol/Table/Shared">Shared</a>
166 </li>
167
168 </ul>
169
170 </li>
171
172 </ul>
173
174 </li>
175
176 <li>
177 &rdsh; <a href="./ion/Timestamp">Timestamp</a>
178
179 <ul>
180
181 <li>&rdsh; <a href="./ion/Timestamp/Format">Format</a>
182 </li>
183
184 <li>&rdsh; <a href="./ion/Timestamp/Precision">Precision</a>
185 </li>
186
187 </ul>
188
189 </li>
190
191 <li>
192 &rdsh; <a href="./ion/Type">Type</a>
193
194 </li>
195
196 <li>
197 &rdsh; <a href="./ion/Unserializer">Unserializer</a>
198
199 <ul>
200
201 <li>&rdsh; <a href="./ion/Unserializer/PHP">PHP</a>
202 </li>
203
204 </ul>
205
206 </li>
207
208 <li>
209 &rdsh; <a href="./ion/Writer">Writer</a>
210
211 <ul>
212
213 <li>&rdsh; <a href="./ion/Writer/Buffer">Buffer</a>
214 <ul>
215
216 <li>&rdsh; <a href="./ion/Writer/Buffer/Writer">Writer</a>
217 </li>
218
219 </ul>
220
221 </li>
222
223 <li>&rdsh; <a href="./ion/Writer/Options">Options</a>
224 </li>
225
226 <li>&rdsh; <a href="./ion/Writer/Stream">Stream</a>
227 <ul>
228
229 <li>&rdsh; <a href="./ion/Writer/Stream/Writer">Writer</a>
230 </li>
231
232 </ul>
233
234 </li>
235
236 <li>&rdsh; <a href="./ion/Writer/Writer">Writer</a>
237 </li>
238
239 </ul>
240
241 </li>
242
243 <li>
244 &rdsh; <a href="./ion/serialize">serialize</a>
245
246 </li>
247
248 <li>
249 &rdsh; <a href="./ion/unserialize">unserialize</a>
250
251 </li>
252
253 </ul>
254
255
256 </li>
257 </ul>
258
259 </li>
260 </ul>
261 </div>
262 <meta charset="utf-8"><h1>
263 <a class="permalink" href="ion#">#</a>pecl/ion</h1><h2 id="About:">About:<a class="permalink" href="ion#About:">#</a>
264 </h2><p>PHP extension wrapping <a href="https://github.com/amzn/ion-c">amzn/ion-c</a>.
265 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>
266 </h2><p><a href="https://github.com/awesomized/ext-ion/blob/master/LICENSE">BSD-2-Clause</a>;
267 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>
268 </h2><h3 id="PECL">PECL<a class="permalink" href="ion#PECL">#</a>
269 </h3><pre><code><span style="color: inherit" class="html">
270 pecl install ion<br></span>
271 </code></pre><h3 id="PHARext">PHARext<a class="permalink" href="ion#PHARext">#</a>
272 </h3><p>Watch out for <a href="https://replicator.pharext.org?ion">PECL replicates</a>
273 and pharext packages attached to <a href="./releases">releases</a>.</p><h3 id="Checkout">Checkout<a class="permalink" href="ion#Checkout">#</a>
274 </h3><pre><code><span style="color: inherit" class="html">
275 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>
276 </code></pre><h3 id="Dependencies:">Dependencies:<a class="permalink" href="ion#Dependencies:">#</a>
277 </h3><h4 id="Required:">Required:<a class="permalink" href="ion#Required:">#</a>
278 </h4><ul>
279 <li>PHP-8.1
280 <ul>
281 <li>ext/date (standard)</li>
282 <li>ext/spl (standard)</li>
283 </ul>
284 </li>
285 </ul><h4 id="Optional:">Optional:<a class="permalink" href="ion#Optional:">#</a>
286 </h4><ul>
287 <li>
288 <a href="https://github.com/amzn/ion-c">amzn/ion-c</a> (bundled as git submodule)</li>
289 </ul><h3 id="Trinity:">Trinity:<a class="permalink" href="ion#Trinity:">#</a>
290 </h3><pre><code><span style="color: inherit" class="html">
291 phpize<br>./configure<br>make # -j$(nproc)<br>sudo make install # INSTALL=install<br></span>
292 </code></pre><h3 id="Try.with.Docker:">Try with Docker:<a class="permalink" href="ion#Try.with.Docker:">#</a>
293 </h3><pre><code><span style="color: inherit" class="html">
294 docker build -t php-ion<br>docker run --rm php-ion -r 'echo ion\serialize(ion\Symbol\PHP::asTable());'<br></span>
295 </code></pre><h2 id="Editor.Stub:">Editor Stub:<a class="permalink" href="ion#Editor.Stub:">#</a>
296 </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>
297 </h2><p>Due to <em>private</em> internal state of ion-c's readers and writers,
298 instances of the following PHP classes cannot be cloned:</p><ul>
299 <li><a href="ion/Reader/Reader">ion\Reader\Reader</a></li>
300 <li><a href="ion/Writer/Writer">ion\Writer\Writer</a></li>
301 <li><a href="ion/Serializer/PHP">ion\Serializer\PHP</a></li>
302 <li><a href="ion/Unserializer/PHP">ion\Unserializer\PHP</a></li>
303 </ul><h2 id="Editor.Stub:">Editor Stub:<a class="permalink" href="ion#Editor.Stub:">#</a>
304 </h2><p>This extension provides a stub file four your editor's auto-completion.</p><div>
305 <p><strong>Download the Stub file:</strong></p>
306 <ul style="list-style-type: '»'">
307 <li>
308 <a href="ion.stub.php">ion.stub.php</a><br>
309 <small>
310 Last modified:
311 2022-01-28 09:29:47 UTC </small>
312 </li>
313 </ul>
314 </div><h2 id="Functions:">Functions:<a class="permalink" href="ion#Functions:">#</a>
315 </h2><ul>
316
317 <li>
318 <h3 id="serialize">
319 <a href="ion/serialize">serialize</a><a class="permalink" href="ion#serialize">#</a>
320 </h3>
321 <p>Serialize a PHP value as ION data.</p>
322
323 <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>
324 </li>
325
326 <li>
327 <h3 id="unserialize">
328 <a href="ion/unserialize">unserialize</a><a class="permalink" href="ion#unserialize">#</a>
329 </h3>
330 <p>Unserialize ION data (stream) as PHP value(s).</p>
331
332 <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>
333 </li>
334
335 </ul><h2 id="Namespaces.Interfaces.and.Classes:">Namespaces, Interfaces and Classes:<a class="permalink" href="ion#Namespaces.Interfaces.and.Classes:">#</a>
336 </h2><ul>
337
338 <li>
339 <h3 id="Catalog">
340 <a href="ion/Catalog">Catalog</a><a class="permalink" href="ion#Catalog">#</a>
341 </h3>
342 <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>
343
344 <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 </li>
346
347 <li>
348 <h3 id="Decimal">
349 <a href="ion/Decimal">Decimal</a><a class="permalink" href="ion#Decimal">#</a>
350 </h3>
351 <p>An arbitrary precision fixed point decimal.</p>
352
353 <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 </li>
355
356 <li>
357 <h3 id="Exception">
358 <a href="ion/Exception">Exception</a><a class="permalink" href="ion#Exception">#</a>
359 </h3>
360 <p>Base exception for the ION extension.</p>
361
362 <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 </li>
364
365 <li>
366 <h3 id="LOB">
367 <a href="ion/LOB">LOB</a><a class="permalink" href="ion#LOB">#</a>
368 </h3>
369 <p>A large object.</p>
370
371 <p><em>class</em> <a href="ion/LOB">ion\LOB</a></p>
372 </li>
373
374 <li>
375 <h3 id="Reader">
376 <a href="ion/Reader">Reader</a><a class="permalink" href="ion#Reader">#</a>
377 </h3>
378 <p>ION reader API.</p>
379
380 <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 </li>
382
383 <li>
384 <h3 id="Serializer">
385 <a href="ion/Serializer">Serializer</a><a class="permalink" href="ion#Serializer">#</a>
386 </h3>
387 <p>Serializer <em>interface</em>, used to customize <a href="ion/serialize">ion\serialize</a>()'s behavior.</p>
388
389 <p><em>interface</em> <a href="ion/Serializer">ion\Serializer</a></p>
390 </li>
391
392 <li>
393 <h3 id="Symbol">
394 <a href="ion/Symbol">Symbol</a><a class="permalink" href="ion#Symbol">#</a>
395 </h3>
396
397 <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 </li>
399
400 <li>
401 <h3 id="Timestamp">
402 <a href="ion/Timestamp">Timestamp</a><a class="permalink" href="ion#Timestamp">#</a>
403 </h3>
404 <p>An ION Timestamp.</p>
405
406 <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 </li>
408
409 <li>
410 <h3 id="Type">
411 <a href="ion/Type">Type</a><a class="permalink" href="ion#Type">#</a>
412 </h3>
413 <p>ION data type.</p>
414
415 <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>
416 </li>
417
418 <li>
419 <h3 id="Unserializer">
420 <a href="ion/Unserializer">Unserializer</a><a class="permalink" href="ion#Unserializer">#</a>
421 </h3>
422 <p>Unserializer <em>interface</em>, used to customize <a href="ion/unserialize">ion\unserialize</a>()'s behavior.</p>
423
424 <p><em>interface</em> <a href="ion/Unserializer">ion\Unserializer</a></p>
425 </li>
426
427 <li>
428 <h3 id="Writer">
429 <a href="ion/Writer">Writer</a><a class="permalink" href="ion#Writer">#</a>
430 </h3>
431 <p>ION writer API.</p>
432
433 <p><em>interface</em> <a href="ion/Writer">ion\Writer</a></p>
434 </li>
435
436 </ul>
437 <div id="disqus_thread"><button id="disqus_activator">Show <span> </span> Comment(s)</button></div>
438 <script>
439 var disqus_shortname = 'mdref';
440 var disqus_identifier = 'ion';
441 </script>
442
443 <footer>
444
445 <ul>
446 <li><a href="https://github.com/m6w6/mdref">mdref-v3.0
447 </a></li>
448 <li><a href="LICENSE">&copy; 2013-2022 All rights reserved.</a></li>
449 <li>
450 </li>
451 </ul>
452
453 </footer>
454
455 <script src="index.js"></script>
456
457 </div>
458 </body>
459 </html>