https://github.com/honzabrecka/transit-php
Transit for PHP
https://github.com/honzabrecka/transit-php
format php transit
Last synced: 7 months ago
JSON representation
Transit for PHP
- Host: GitHub
- URL: https://github.com/honzabrecka/transit-php
- Owner: honzabrecka
- License: mit
- Created: 2015-10-24T23:00:59.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2023-11-21T08:54:48.000Z (almost 2 years ago)
- Last Synced: 2025-03-18T01:51:16.275Z (7 months ago)
- Topics: format, php, transit
- Language: PHP
- Homepage: http://transit-format.org
- Size: 64.5 KB
- Stars: 17
- Watchers: 1
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# transit-php
Transit is a data format and a set of libraries for conveying values between applications written in different languages. This library provides support for marshalling Transit data to/from PHP. Unlike the Java and Clojure implementations it relies on the non-streaming JSON parsing mechanism of the host PHP environment.
* [Rationale](http://blog.cognitect.com/blog/2014/7/22/transit)
* [Specification](http://github.com/cognitect/transit-format)This implementation's major.minor version number corresponds to the version of
the Transit specification it supports._NOTE: Transit is a work in progress and may evolve based on feedback.
As a result, while Transit is a great option for transferring data
between applications, it should not yet be used for storing data
durably over time. This recommendation will change when the
specification is complete._## Installation
```
composer require honzabrecka/transit-php
```## Usage
```php
use transit\JSONReader;
use transit\JSONWriter;
use transit\Transit;
use transit\Map;$transit = new Transit(new JSONReader(), new JSONWriter());
$transit->read('["^ ","foo","bar"]');
$transit->write(new Map(['foo', 'bar']));
```You can use assoc array instead of transit\Map. It comes with a price (string keys only), therefore it's disabled by default.
```php
use transit\JSONReader;
use transit\JSONWriter;
use transit\Transit;$transit = new Transit(new JSONReader(true), new JSONWriter(true));
$transit->read('["^ ","foo","bar"]');
$transit->write(['foo' => 'bar']);
```## Default Type Mapping
|Transit type|Write accepts|Read returns|
|------------|-------------|------------|
|null|null|null|
|string|string|string|
|boolean|bool|bool|
|integer|int|int|
|decimal|float|float|
|bytes|transit\Bytes|transit\Bytes|
|keyword|transit\Keyword|transit\Keyword|
|symbol|transit\Symbol|transit\Symbol|
|time|DateTime|DateTime|
|array|array|array|
|map|transit\Map or assoc array|transit\Map or assoc array|
|cmap|transit\CMap|transit\CMap|
|set|transit\Set|transit\Set|
|list|SplDoublyLinkedList|SplDoublyLinkedList|
|uri|transit\URI|transit\URI|
|uuid|transit\UUID|transit\UUID|
|char|transit\Char|transit\Char|