PHP code example of mischasigtermans / laravel-toon
1. Go to this page and download the library: Download mischasigtermans/laravel-toon library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
mischasigtermans / laravel-toon example snippets
use MischaSigtermans\Toon\Facades\Toon;
$data = [
'users' => [
['id' => 1, 'name' => 'Alice', 'active' => true],
['id' => 2, 'name' => 'Bob', 'active' => false],
],
];
// Encode to TOON
$toon = Toon::encode($data);
// Decode back to array
$original = Toon::decode($toon);
// Encode to TOON
$toon = toon_encode($data);
// Decode back to array
$original = toon_decode($toon);
$collection = collect([
['id' => 1, 'name' => 'Alice'],
['id' => 2, 'name' => 'Bob'],
]);
$toon = $collection->toToon();
$user = User::find(1);
$toon = $user->toToon();
$data = [
['id' => 1, 'name' => 'Alice', 'role' => 'admin'],
['id' => 2, 'name' => 'Bob', 'role' => 'user'],
];
$toon = Toon::encode($data);
// [2]{id,name,role}:
// 1,Alice,admin
// 2,Bob,user
$data = [
['id' => 1, 'author' => ['name' => 'Jane', 'email' => '[email protected] ']],
['id' => 2, 'author' => ['name' => 'John', 'email' => '[email protected] ']],
];
$toon = Toon::encode($data);
// [2]:
// - id: 1
// author:
// name: Jane
// email: [email protected]
// - id: 2
// author:
// name: John
// email: [email protected]
$decoded = Toon::decode($toon);
// Returns original nested structure
$data = [
'count' => 42,
'price' => 19.99,
'active' => true,
'deleted' => false,
'notes' => null,
];
$decoded = Toon::decode(Toon::encode($data));
// Types are preserved: int, float, bool, null
$data = ['message' => 'Hello, World: How are you?'];
$toon = Toon::encode($data);
// message: "Hello, World: How are you?"
$data = ['text' => "Line 1\nLine 2"];
$toon = Toon::encode($data);
// text: "Line 1\nLine 2"
// config/toon.php
return [
// Arrays with fewer items use regular object format instead of tables
'min_rows_for_table' => 2,
// Delimiter for array values: ',' (default), '\t' (tab), or '|' (pipe)
'delimiter' => ',',
// Strict mode for decoding (throws on malformed input)
'strict' => true,
];
return [
// Omit values to save tokens: 'null', 'empty', 'false', or 'all'
'omit' => ['null', 'empty'],
// Always skip these keys
'omit_keys' => ['created_at', 'updated_at'],
// Shorten verbose keys
'key_aliases' => [
'description' => 'desc',
'organization_id' => 'org_id',
],
];
return [
// Format dates (DateTime objects and ISO strings)
'date_format' => 'Y-m-d',
// Truncate long strings (adds ... suffix)
'truncate_strings' => 100,
// Limit decimal places for floats
'number_precision' => 2,
];
$data = User::with('roles')->get()->toArray();
$diff = Toon::diff($data);
// [
// 'json_chars' => 12500,
// 'toon_chars' => 5200,
// 'saved_chars' => 7300,
// 'savings_percent' => 58.4,
// ]
$users = User::all()->toArray();
// Only );
public function handle(): string
{
$users = User::with('roles')->limit(100)->get();
return Toon::encode([
'count' => $users->count(),
'users' => $users->toArray(),
]);
}
$context = Toon::encode([
'conversation' => $messages,
'user_profile' => $user->toArray(),
'recent_orders' => $orders->toArray(),
]);
$response = $llm->chat([
['role' => 'system', 'content' => "Context:\n{$context}"],
['role' => 'user', 'content' => $question],
]);
public function index(Request $request)
{
$data = Product::paginate()->toArray();
if ($request->header('Accept') === 'application/toon') {
return response(Toon::encode($data))
->header('Content-Type', 'application/toon');
}
return response()->json($data);
}
bash
php artisan vendor:publish --tag=toon-config