codingpaws / expose
This package is abandoned and no longer maintained.
No replacement package was suggested.
Transforms your classes to API entities
v1.1
2022-08-29 17:47 UTC
Requires
- illuminate/support: ^9.0 | ^8.0
Requires (Dev)
- codingpaws/pspec: dev-main
README
Expose is a framework to transform your classes (e.g. Laravel entities) to API entities.
Example
Install: composer require codingpaws/expose
use CodingPaws\Expose\HasEntity;
use CodingPaws\Expose\Entity;
// Dog.php
class Dog implements HasEntity {
public function __construct(public string $name, public string $breed)
{
}
}
// DogEntity.class
class DogEntity extends Entity {
public function __invoke(): void
{
$this->expose('name');
$this->expose('breed');
$this->expose('cute', true);
}
}
// In your controller
$result = Entity::transform(new Dog('Lacey', 'Border Collie'));
// Generates an array like
$result = [
'name' => 'Lacey',
'breed' => 'Border Collie',
'cute' => true,
];