mehmetbeyhz/easy-json-mapper

PHP Easy Json Mapper

dev-master 2021-06-21 19:15 UTC

This package is not auto-updated.

Last update: 2024-05-21 09:32:44 UTC


README

Easy JSON Mapper.

Install

composer require mehmetbeyhz/easy-json-mapper:dev-master
<?php 

class User extends MainMapper{ 
    const MAP = [
       'user_id'  => 'int',
       'username'  => 'string',
       'full_name' => 'string',
       'friends'   => 'Friends[]'
    ];   
}

class Friends extends MainMapper{ 
    const MAP = [
       'friend_id'   => 'int',
       'friend_name' => 'string',
       'friend_mail' => 'string'
    ]; 
}

$user = new User([
'user_id' => 1,
'username' => 'mt.ks',
'full_name' => 'Mehmet',
'friends' => [
  [
    'friend_id' => 1,
    'friend_name' => 'Abdulkadir',
    'friend_mail' => 'abdlkdr@gmail.com'
  ],
  [
    'friend_id' => 2,
    'friend_name' => 'Ali',
    'friend_mail' => 'ali@gmail.com'
  ]
]
]);

echo $user->getUserId();
echo $user->getUsername();
echo $user->getFullName();

foreach($user->getFriends() as $friend)
{
    echo $friend->getFriendId();
    echo $friend->getFriendName();
    echo $friend->getFriendMail();
}

Json To PHP Class (Auto)

<?php

header("Content-Type: text/plain");
$jtc = new \EJM\JsonToClass(json_encode([
    'username' => "mehmet",
    "age"   => 40,
    "full_name" => "karakas",
    "mails" => [
        [
            "email" => "mehmet@gmail.com",
            "subject" => "test"
        ],
        [
            "email" => "mehmet@gmail.com",
            "subject" => "test"
        ],
        [
            "email" => "mehmet@gmail.com",
            "subject" => "test"
        ]
    ]
]), "Users");

foreach ($jtc->createClassBody() as $cs)
{
    print_r($cs);
    echo "\n\n";
}

Response

alt text