configure: fix ion-c submodule update
[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/Catalog">Catalog</a>
41
42 </li>
43
44 <li>
45 &rdsh; <a href="./ion/Decimal">Decimal</a>
46
47 <ul>
48
49 <li>&rdsh; <a href="./ion/Decimal/Context">Context</a>
50 <ul>
51
52 <li>&rdsh; <a href="./ion/Decimal/Context/Dec128">Dec128</a>
53 </li>
54
55 <li>&rdsh; <a href="./ion/Decimal/Context/Dec32">Dec32</a>
56 </li>
57
58 <li>&rdsh; <a href="./ion/Decimal/Context/Dec64">Dec64</a>
59 </li>
60
61 <li>&rdsh; <a href="./ion/Decimal/Context/DecMax">DecMax</a>
62 </li>
63
64 <li>&rdsh; <a href="./ion/Decimal/Context/Rounding">Rounding</a>
65 </li>
66
67 </ul>
68
69 </li>
70
71 </ul>
72
73 </li>
74
75 <li>
76 &rdsh; <a href="./ion/Exception">Exception</a>
77
78 </li>
79
80 <li>
81 &rdsh; <a href="./ion/LOB">LOB</a>
82
83 </li>
84
85 <li>
86 &rdsh; <a href="./ion/Reader">Reader</a>
87
88 <ul>
89
90 <li>&rdsh; <a href="./ion/Reader/Buffer">Buffer</a>
91 <ul>
92
93 <li>&rdsh; <a href="./ion/Reader/Buffer/Reader">Reader</a>
94 </li>
95
96 </ul>
97
98 </li>
99
100 <li>&rdsh; <a href="./ion/Reader/Options">Options</a>
101 </li>
102
103 <li>&rdsh; <a href="./ion/Reader/Reader">Reader</a>
104 </li>
105
106 <li>&rdsh; <a href="./ion/Reader/Stream">Stream</a>
107 <ul>
108
109 <li>&rdsh; <a href="./ion/Reader/Stream/Reader">Reader</a>
110 </li>
111
112 </ul>
113
114 </li>
115
116 </ul>
117
118 </li>
119
120 <li>
121 &rdsh; <a href="./ion/Serializer">Serializer</a>
122
123 <ul>
124
125 <li>&rdsh; <a href="./ion/Serializer/PHP">PHP</a>
126 </li>
127
128 </ul>
129
130 </li>
131
132 <li>
133 &rdsh; <a href="./ion/Symbol">Symbol</a>
134
135 <ul>
136
137 <li>&rdsh; <a href="./ion/Symbol/Enum">Enum</a>
138 </li>
139
140 <li>&rdsh; <a href="./ion/Symbol/ImportLocation">ImportLocation</a>
141 </li>
142
143 <li>&rdsh; <a href="./ion/Symbol/Table">Table</a>
144 <ul>
145
146 <li>&rdsh; <a href="./ion/Symbol/Table/Local">Local</a>
147 </li>
148
149 <li>&rdsh; <a href="./ion/Symbol/Table/PHP">PHP</a>
150 </li>
151
152 <li>&rdsh; <a href="./ion/Symbol/Table/Shared">Shared</a>
153 </li>
154
155 <li>&rdsh; <a href="./ion/Symbol/Table/System">System</a>
156 </li>
157
158 </ul>
159
160 </li>
161
162 </ul>
163
164 </li>
165
166 <li>
167 &rdsh; <a href="./ion/Timestamp">Timestamp</a>
168
169 <ul>
170
171 <li>&rdsh; <a href="./ion/Timestamp/Format">Format</a>
172 </li>
173
174 <li>&rdsh; <a href="./ion/Timestamp/Precision">Precision</a>
175 </li>
176
177 </ul>
178
179 </li>
180
181 <li>
182 &rdsh; <a href="./ion/Type">Type</a>
183
184 </li>
185
186 <li>
187 &rdsh; <a href="./ion/Unserializer">Unserializer</a>
188
189 <ul>
190
191 <li>&rdsh; <a href="./ion/Unserializer/PHP">PHP</a>
192 </li>
193
194 </ul>
195
196 </li>
197
198 <li>
199 &rdsh; <a href="./ion/Writer">Writer</a>
200
201 <ul>
202
203 <li>&rdsh; <a href="./ion/Writer/Buffer">Buffer</a>
204 <ul>
205
206 <li>&rdsh; <a href="./ion/Writer/Buffer/Writer">Writer</a>
207 </li>
208
209 </ul>
210
211 </li>
212
213 <li>&rdsh; <a href="./ion/Writer/Options">Options</a>
214 </li>
215
216 <li>&rdsh; <a href="./ion/Writer/Stream">Stream</a>
217 <ul>
218
219 <li>&rdsh; <a href="./ion/Writer/Stream/Writer">Writer</a>
220 </li>
221
222 </ul>
223
224 </li>
225
226 <li>&rdsh; <a href="./ion/Writer/Writer">Writer</a>
227 </li>
228
229 </ul>
230
231 </li>
232
233 <li>
234 &rdsh; <a href="./ion/serialize">serialize</a>
235
236 </li>
237
238 <li>
239 &rdsh; <a href="./ion/unserialize">unserialize</a>
240
241 </li>
242
243 </ul>
244
245
246 </li>
247 </ul>
248
249 </li>
250 </ul>
251 </div>
252
253 <h1>pecl/ion</h1>
254 <h2>About:<a id="About:" href="#About:" class="permalink" aria-hidden="true" title="">#</a></h2>
255 <p>PHP extension wrapping <a href="https://github.com/amzn/ion-c">amzn/ion-c</a>.
256 See the <a href="https://amzn.github.io/ion-docs/">Amazon ION specification</a>.</p>
257 <h2>License:<a id="License:" href="#License:" class="permalink" aria-hidden="true" title="">#</a></h2>
258 <p><a href="https://github.com/awesomized/ext-ion/blob/master/LICENSE">BSD-2-Clause</a>;
259 see <a href="https://spdx.org/licenses/BSD-2-Clause.html">spdx.org</a>.</p>
260 <h2>Installation:<a id="Installation:" href="#Installation:" class="permalink" aria-hidden="true" title="">#</a></h2>
261 <p><a href="https://pecl.php.net">PECL</a> and <a href="https://pharext.org">PHARext</a> is WIP.</p>
262 <h3>Dependencies:<a id="Dependencies:" href="#Dependencies:" class="permalink" aria-hidden="true" title="">#</a></h3>
263 <h4>Required:<a id="Required:" href="#Required:" class="permalink" aria-hidden="true" title="">#</a></h4>
264 <ul>
265 <li>PHP-8.1
266 <ul>
267 <li>ext/date (standard)</li>
268 <li>ext/spl (standard)</li>
269 </ul>
270 </li>
271 </ul>
272 <h4>Optional:<a id="Optional:" href="#Optional:" class="permalink" aria-hidden="true" title="">#</a></h4>
273 <ul>
274 <li>
275 <a href="https://github.com/amzn/ion-c">amzn/ion-c</a> (bundled as git submodule)</li>
276 </ul>
277 <h3>Trinity:<a id="Trinity:" href="#Trinity:" class="permalink" aria-hidden="true" title="">#</a></h3>
278 <pre><code class="language-shell">phpize
279 ./configure
280 make # -j$(nproc)
281 sudo make install # INSTALL=install
282 </code></pre>
283 <h3>Try with Docker:<a id="Try.with.Docker:" href="#Try.with.Docker:" class="permalink" aria-hidden="true" title="">#</a></h3>
284 <pre><code class="language-shell">docker build -t php-ion
285 docker run --rm php-ion -r 'echo ion\serialize(ion\Symbol\Table\PHP());'
286 </code></pre>
287 <h2>Editor Stub:<a id="Editor.Stub:" href="#Editor.Stub:" class="permalink" aria-hidden="true" title="">#</a></h2>
288 <p>See <a href="https://github.com/awesomized/ext-ion/blob/master/ion.stub.php">ion.stub.php</a>.</p>
289 <h2>Known Issues:<a id="Known.Issues:" href="#Known.Issues:" class="permalink" aria-hidden="true" title="">#</a></h2>
290 <p>Due to private internal state of ion-c's readers and writers,
291 instances of the following PHP classes cannot be cloned:</p>
292 <ul>
293 <li>ion\Reader\Reader</li>
294 <li>ion\Writer\Writer</li>
295 <li>ion\Serializer\PHP</li>
296 <li>ion\Unserializer\PHP</li>
297 </ul>
298
299
300
301 <h2 id="Functions:">Functions:</h2>
302 <ul>
303
304 <li>
305 <h3><a href="ion/serialize">serialize</a></h3>
306 <p>Serialize a PHP value as ION data.</p>
307
308 <p>string ion\serialize(mixed $data, [?ion\Serializer $serializer = NULL])</p>
309 </li>
310
311 <li>
312 <h3><a href="ion/unserialize">unserialize</a></h3>
313 <p>Unserialize ION data (stream) as PHP value(s).</p>
314
315 <p>mixed ion\unserialize(string|resource $data, [?ion\Unserializer $unserializer = NULL])</p>
316 </li>
317
318 </ul>
319
320
321 <h2 id="Namespaces,.Interfaces.and.Classes:">Namespaces, Interfaces and Classes:</h2>
322 <ul>
323
324 <li>
325 <h3><a href="ion/Catalog">Catalog</a></h3>
326 <p>The Catalog holds a collection of ion\Symbol\Table instances queried from ion\Reader and ion\Writer instances.</p>
327
328 <p>class ion\Catalog implements Countable</p>
329 </li>
330
331 <li>
332 <h3><a href="ion/Decimal">Decimal</a></h3>
333 <p>An arbitrary precision fixed point decimal.</p>
334
335 <p>class ion\Decimal implements Stringable</p>
336 </li>
337
338 <li>
339 <h3><a href="ion/Exception">Exception</a></h3>
340 <p>Base exception for the ION extension.</p>
341
342 <p>class ion\Exception extends Exception implements Stringable, Throwable</p>
343 </li>
344
345 <li>
346 <h3><a href="ion/LOB">LOB</a></h3>
347 <p>A large object.</p>
348
349 <p>class ion\LOB</p>
350 </li>
351
352 <li>
353 <h3><a href="ion/Reader">Reader</a></h3>
354 <p>ION reader API.</p>
355
356 <p>interface ion\Reader implements Iterator, RecursiveIterator, Traversable</p>
357 </li>
358
359 <li>
360 <h3><a href="ion/Serializer">Serializer</a></h3>
361 <p>Serializer interface, used to customize ion\serialize()'s behavior.</p>
362
363 <p>interface ion\Serializer</p>
364 </li>
365
366 <li>
367 <h3><a href="ion/Symbol">Symbol</a></h3>
368
369 <p>class ion\Symbol implements Stringable</p>
370 </li>
371
372 <li>
373 <h3><a href="ion/Timestamp">Timestamp</a></h3>
374 <p>An ION Timestamp.</p>
375
376 <p>class ion\Timestamp extends DateTime implements DateTimeInterface, Stringable</p>
377 </li>
378
379 <li>
380 <h3><a href="ion/Type">Type</a></h3>
381 <p>ION data type.</p>
382
383 <p>enum ion\Type implements BackedEnum, UnitEnum</p>
384 </li>
385
386 <li>
387 <h3><a href="ion/Unserializer">Unserializer</a></h3>
388 <p>Unserializer interface, used to customize ion\unserialize()'s behavior.</p>
389
390 <p>interface ion\Unserializer</p>
391 </li>
392
393 <li>
394 <h3><a href="ion/Writer">Writer</a></h3>
395 <p>ION writer API.</p>
396
397 <p>interface ion\Writer</p>
398 </li>
399
400 </ul>
401
402 <div id="disqus_thread"><button id="disqus_activator">Show <span> </span> Comment(s)</button></div>
403 <script>
404 var disqus_shortname = 'mdref';
405 var disqus_identifier = 'ion';
406 </script>
407
408 <footer>
409
410 <ul>
411 <li><a href="https://github.com/m6w6/mdref">mdref-v2.0
412 </a></li>
413 <li><a href="LICENSE">&copy; 2013-2022 All rights reserved.</a></li>
414 <li>
415 </li>
416 </ul>
417
418 </footer>
419
420 <script src="index.js"></script>
421
422 </div>
423 </body>
424 </html>