A lightweight transformer layer for CodeIgniter 4, inspired by Laravel’s API Resources.
composer require sambenge/codeigniter4-transformer
namespace App\Transformers;
use Bengey\Transformers\Transformer;
class UserTransformer extends Transformer
{
public function transform($user): array
{
return [
'id' => (int) $user['id'],
'name' => $user['first_name'] . ' ' . $user['last_name'],
'email' => $user['email'],
'joined' => date('Y-m-d', strtotime($user['created_at'])),
'avatar' => base_url('avatars/' . $user['avatar']),
];
}
}
use App\Transformers\UserTransformer;
$users = model('UserModel')->findAll();
// Transform a single record
$user = UserTransformer::make($users[0]);
// Transform multiple records
return $this->response->setJSON([
'data' => UserTransformer::collection($users)
]);