d8059b47b34419e758547b165d3ec6e2b4d9be6f
[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="/v0.0/">
11 <meta http-equiv="Content-Location" content="/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="/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
263 <h1>pecl/ion</h1>
264 <h2>About:<a id="About:" href="#About:" class="permalink" aria-hidden="true" title="">#</a></h2>
265 <p>PHP extension wrapping <a href="https://github.com/amzn/ion-c">amzn/ion-c</a>.
266 See the <a href="https://amzn.github.io/ion-docs/">Amazon ION specification</a>.</p>
267 <h2>License:<a id="License:" href="#License:" class="permalink" aria-hidden="true" title="">#</a></h2>
268 <p><a href="https://github.com/awesomized/ext-ion/blob/master/LICENSE">BSD-2-Clause</a>;
269 see <a href="https://spdx.org/licenses/BSD-2-Clause.html">spdx.org</a>.</p>
270 <h2>Installation:<a id="Installation:" href="#Installation:" class="permalink" aria-hidden="true" title="">#</a></h2>
271 <p><a href="https://pecl.php.net">PECL</a> and <a href="https://pharext.org">PHARext</a> is WIP.</p>
272 <h3>Dependencies:<a id="Dependencies:" href="#Dependencies:" class="permalink" aria-hidden="true" title="">#</a></h3>
273 <h4>Required:<a id="Required:" href="#Required:" class="permalink" aria-hidden="true" title="">#</a></h4>
274 <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>
282 <h4>Optional:<a id="Optional:" href="#Optional:" class="permalink" aria-hidden="true" title="">#</a></h4>
283 <ul>
284 <li>
285 <a href="https://github.com/amzn/ion-c">amzn/ion-c</a> (bundled as git submodule)</li>
286 </ul>
287 <h3>Trinity:<a id="Trinity:" href="#Trinity:" class="permalink" aria-hidden="true" title="">#</a></h3>
288 <pre><code class="language-shell">phpize
289 ./configure
290 make # -j$(nproc)
291 sudo make install # INSTALL=install
292 </code></pre>
293 <h3>Try with Docker:<a id="Try.with.Docker:" href="#Try.with.Docker:" class="permalink" aria-hidden="true" title="">#</a></h3>
294 <pre><code class="language-shell">docker build -t php-ion
295 docker run --rm php-ion -r 'echo ion\serialize(ion\Symbol\Table\PHP());'
296 </code></pre>
297 <h2>Editor Stub:<a id="Editor.Stub:" href="#Editor.Stub:" class="permalink" aria-hidden="true" title="">#</a></h2>
298 <p>See <a href="https://github.com/awesomized/ext-ion/blob/master/ion.stub.php">ion.stub.php</a>.</p>
299 <h2>Known Issues:<a id="Known.Issues:" href="#Known.Issues:" class="permalink" aria-hidden="true" title="">#</a></h2>
300 <p>Due to private internal state of ion-c's readers and writers,
301 instances of the following PHP classes cannot be cloned:</p>
302 <ul>
303 <li>ion\Reader\Reader</li>
304 <li>ion\Writer\Writer</li>
305 <li>ion\Serializer\PHP</li>
306 <li>ion\Unserializer\PHP</li>
307 </ul>
308
309 <h2 id="Editor.Stub:">Editor Stub:</h2>
310 <p>This extension provides a stub file four your editor's auto-completion.</p>
311 <div>
312 <p><strong>Download the Stub file:</strong></p>
313 <ul style="list-style-type: '&raquo;'">
314 <li>
315 <a href="ion.stub.php">ion.stub.php</a><br>
316 <small>
317 Last modified:
318 2022-01-25 11:49:44 UTC </small>
319 </li>
320 </ul>
321 </div>
322
323
324 <h2 id="Functions:">Functions:</h2>
325 <ul>
326
327 <li>
328 <h3><a href="ion/serialize">serialize</a></h3>
329 <p>Serialize a PHP value as ION data.</p>
330
331 <p>string ion\serialize(mixed $data, [?ion\Serializer $serializer = NULL])</p>
332 </li>
333
334 <li>
335 <h3><a href="ion/unserialize">unserialize</a></h3>
336 <p>Unserialize ION data (stream) as PHP value(s).</p>
337
338 <p>mixed ion\unserialize(string|resource $data, [?ion\Unserializer $unserializer = NULL])</p>
339 </li>
340
341 </ul>
342
343
344 <h2 id="Namespaces,.Interfaces.and.Classes:">Namespaces, Interfaces and Classes:</h2>
345 <ul>
346
347 <li>
348 <h3><a href="ion/Catalog">Catalog</a></h3>
349 <p>The Catalog holds a collection of ion\Symbol\Table instances queried from ion\Reader and ion\Writer instances.</p>
350
351 <p>class ion\Catalog implements Countable</p>
352 </li>
353
354 <li>
355 <h3><a href="ion/Decimal">Decimal</a></h3>
356 <p>An arbitrary precision fixed point decimal.</p>
357
358 <p>class ion\Decimal implements Stringable</p>
359 </li>
360
361 <li>
362 <h3><a href="ion/Exception">Exception</a></h3>
363 <p>Base exception for the ION extension.</p>
364
365 <p>class ion\Exception extends Exception implements Stringable, Throwable</p>
366 </li>
367
368 <li>
369 <h3><a href="ion/LOB">LOB</a></h3>
370 <p>A large object.</p>
371
372 <p>class ion\LOB</p>
373 </li>
374
375 <li>
376 <h3><a href="ion/Reader">Reader</a></h3>
377 <p>ION reader API.</p>
378
379 <p>interface ion\Reader implements Iterator, RecursiveIterator, Traversable</p>
380 </li>
381
382 <li>
383 <h3><a href="ion/Serializer">Serializer</a></h3>
384 <p>Serializer interface, used to customize ion\serialize()'s behavior.</p>
385
386 <p>interface ion\Serializer</p>
387 </li>
388
389 <li>
390 <h3><a href="ion/Symbol">Symbol</a></h3>
391
392 <p>class ion\Symbol implements Stringable</p>
393 </li>
394
395 <li>
396 <h3><a href="ion/Timestamp">Timestamp</a></h3>
397 <p>An ION Timestamp.</p>
398
399 <p>class ion\Timestamp extends DateTime implements DateTimeInterface, Stringable</p>
400 </li>
401
402 <li>
403 <h3><a href="ion/Type">Type</a></h3>
404 <p>ION data type.</p>
405
406 <p>enum ion\Type implements BackedEnum, UnitEnum</p>
407 </li>
408
409 <li>
410 <h3><a href="ion/Unserializer">Unserializer</a></h3>
411 <p>Unserializer interface, used to customize ion\unserialize()'s behavior.</p>
412
413 <p>interface ion\Unserializer</p>
414 </li>
415
416 <li>
417 <h3><a href="ion/Writer">Writer</a></h3>
418 <p>ION writer API.</p>
419
420 <p>interface ion\Writer</p>
421 </li>
422
423 </ul>
424
425 <div id="disqus_thread"><button id="disqus_activator">Show <span> </span> Comment(s)</button></div>
426 <script>
427 var disqus_shortname = 'mdref';
428 var disqus_identifier = 'ion';
429 </script>
430
431 <footer>
432
433 <ul>
434 <li><a href="https://github.com/m6w6/mdref">mdref-v2.0
435 </a></li>
436 <li><a href="LICENSE">&copy; 2013-2022 All rights reserved.</a></li>
437 <li>
438 </li>
439 </ul>
440
441 </footer>
442
443 <script src="index.js"></script>
444
445 </div>
446 </body>
447 </html>