knackline / laravel-toon
A powerful Laravel package for integrating Toon functionality into your Laravel applications. Seamlessly add Toon features with elegant Laravel syntax.
Installs: 1
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
pkg:composer/knackline/laravel-toon
Requires
- php: ^7.2|^8.0|^8.1|^8.2|^8.3
- illuminate/support: ^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0
Requires (Dev)
- phpunit/phpunit: ^9.0|^10.0|^11.0|^12.0
README
A powerful Laravel package for converting between JSON and Toon format. Seamlessly transform your JSON data into a compact, human-readable Toon format and back again.
Installation
You can install the package via Composer:
composer require knackline/laravel-toon
The package will automatically register its service provider and facade.
Usage
Converting JSON to Toon Format
use Knackline\LaravelToon\Toon; $jsonData = [ "context" => [ "task" => "Our favorite hikes together", "location" => "Boulder", "season" => "spring_2025" ], "friends" => ["ana", "luis", "sam"], "hikes" => [ [ "id" => 1, "name" => "Blue Lake Trail", "distanceKm" => 7.5, "elevationGain" => 320, "companion" => "ana", "wasSunny" => true ] ] ]; $toon = Toon::fromJson($jsonData);
Output:
context:
task: Our favorite hikes together
location: Boulder
season: spring_2025
friends[3]: ana,luis,sam
hikes[3]{id,name,distanceKm,elevationGain,companion,wasSunny}:
1,Blue Lake Trail,7.5,320,ana,true
2,Ridge Overlook,9.2,540,luis,false
3,Wildflower Loop,5.1,180,sam,true
Converting Toon Format to JSON
$toonString = "context: task: Our favorite hikes together location: Boulder season: spring_2025 friends[3]: ana,luis,sam hikes[3]{id,name,distanceKm,elevationGain,companion,wasSunny}: 1,Blue Lake Trail,7.5,320,ana,true 2,Ridge Overlook,9.2,540,luis,false"; $jsonData = Toon::toJson($toonString);
Using the Facade
If you prefer using facades:
use Knackline\LaravelToon\Facades\Toon; $toon = Toon::fromJson($data); $json = Toon::toJson($toon);
Format Specification
Simple Values
key: value
Objects (Associative Arrays)
key:
nestedKey: value
anotherKey: value
Simple Arrays
key[count]: value1,value2,value3
Arrays of Objects
key[count]{field1,field2,field3}:
value1,value2,value3
value4,value5,value6
Supported Data Types
- Strings: Plain text values
- Numbers: Integers and floats (e.g.,
7.5,320) - Booleans:
trueandfalse - Null: Empty values
- Arrays: Both indexed and associative arrays
- Nested Objects: Multi-level object structures
Requirements
- PHP 8.1 or higher
- Laravel 9.0, 10.0, or 11.0
License
The MIT License (MIT). Please see the License File for more information.
Support
For issues, questions, or contributions, please visit the GitHub repository.