elielfc / to-class
Converta seu json ou array em class personalizadas.
Installs: 6
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/elielfc/to-class
Requires
- php: ^8.0
Requires (Dev)
- phpunit/phpunit: ^9.5.10
README
Converte um json ou um array para uma class personalizada.
Instalação
composer require elielfc/to-class
Instruções de uso
Basico
Crie uma classe que implemente \ElielFC\ToClass\Contract\ToClass e estenda \ElielFC\ToClass\BaseToClass.
Defina suas propriedade e seus tipos.
<?php /*...*/ use ElielFC\ToClass\{ Contract\ToClass, BaseToClass }; class EntityToClass extends BaseToClass implements ToClass { public int $id; public bool $active; }
Crie uma instancia dessa classe e chame o método make
$entity = new EntityToClass(); $entity->make(["id" => 10, "active" => true, "name" => "Eliel F Canivarolli", /*...*/]);
Nesse exemplo as propriedades da sua instancia de entity sera populada com as informações de id, active e a informação de nome não sera salvo, pois não a uma propriedade nome na classe.
O make também aceita um json como argumento.
$entity->make('{"id":"10", "active":"true", "name":"Eliel F Canivarolli"}');
Se durante o bind você precise fazer algum tratamento na informação, base adicionar uma função na sua classe que tenha o nome no seguinte formato set + nome da propriedade + Attribute
/*...*/ public bool $active; public function setActiveAttribute(mixed $value): void { $this->active = $value === "VERDADEIRO"; } /* Ex: Atribuição em um array */ public array $phone: public function setPhoneAttribute(mixed $value): void { $this->phone[] = $value; } /*...*/
Caso uma das suas propriedade seja um objeto e também deseje mapear para uma classe personalizada, user a propriedade $cast.
/*...*/ public NewEntityToClass $entity; protected array $cast = [ 'entity' => NewEntityToClass::class, ]; /*...*/
Sua NewEntityToClass tem que estender BaseToClass e implementar ToClass
License
The MIT License (MIT). Please see License File for more information.