kurtomerfaruk Paket bilmiyorum ama anladığım kadarıyla bir adet EBillManager sınıfına bir tane de EBillTransformer sınıfına ihtiyacınız var. EBillManager gelen UBL verisini parselleyip ondan bir adet EBillTransformer oluşturacak. Kabaca:
<?php
class EBillTransformer implements \Illuminate\Contracts\Support\Arrayable
{
protected array $data;
public function __construct(array $data)
{
$this->data = $data;
}
public function getId(): int
{
return $this->get('id');
}
public function getCompany(): string
{
return $this->get('company');
}
protected function get($key)
{
return $this->data[$key];
}
public function toArray()
{
return $this->data;
}
}
class EBillManager
{
public string $ubl;
public function __construct(string $ubl)
{
$this->ubl = $ubl;
}
public function build(): EBillTransformer
{
$data = $this->parse();
return new EBillTransformer($data);
}
protected function parse(): array
{
$result = [];
// Burada UBL parsellersiniz ve dizi olarak dönersiniz...
return $result;
}
}
$ubl = $http->get(...);
$ebill = (new EBillManager($ubl))->build();
$ebillId = $ebill->getId();