1. Go to this page and download the library: Download flyokai/data-mate library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
flyokai / data-mate example snippets
use Flyokai\DataMate\Dto;
use Flyokai\DataMate\DtoTrait;
use Flyokai\DataMate\Solid;
final class UserSolid implements Dto, Solid
{
use DtoTrait;
public function __construct(
public readonly int $userId,
public readonly string $username,
public readonly string $email,
public readonly ?string $firstName = null,
) {}
}
$user = UserSolid::fromArray([
'userId' => 1,
'username' => 'alice',
'email' => '[email protected]',
]);
$row = $user->toDbRow(); // ['user_id' => 1, 'username' => 'alice', ...]
$copy = $user->cloneWith(email: '[email protected]');
$loose = $user->with(email: '[email protected]'); // Valinor-mapped, accepts loose types
use Flyokai\DataMate\Draft;
use Flyokai\DataMate\DtoTrait;
final class User implements Dto, Draft
{
use DtoTrait;
protected static string $solidClassName = UserSolid::class;
// …mutable, flexible properties for input/staging
}
use Flyokai\DataMate\HasId;
use Flyokai\DataMate\HasAltId;
use Flyokai\DataMate\HasIdDto;
final class UserSolid implements HasIdDto, Solid
{
use DtoTrait;
protected static string $type = 'user';
protected static string $idKey = 'user_id';
protected static array $altIdKeys = ['username', 'email'];
public function __construct(
public readonly int $userId,
public readonly string $username,
public readonly string $email,
) {}
}
$user->id(); // 1
$user->idKey(); // 'user_id'
$user->altId('username'); // 'alice'
$user->altId(['username', 'email']);
$user->extractIdentity(); // 1, with fallback to alt IDs
use Flyokai\DataMate\StringEnumTrait;
enum Status: string
{
use StringEnumTrait;
case Active = 'active';
case Disabled = 'disabled';
}
Status::allowedValues(); // ['active', 'disabled']
Status::fromName('Active');
Status::tryFromName('xxx');
Status::validate('active');
Status::normalize('ACTIVE');
use Flyokai\DataMate\ItemJar;
use Flyokai\DataMate\JarTrait;
final class UserJar implements ItemJar
{
use JarTrait;
}
$jar = new UserJar();
$jar->add($user1);
$jar->get($user1->id());
foreach ($jar as $u) { /* … */ }
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.