1. Go to this page and download the library: Download zolta/forge 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/ */
use Zolta\Domain\Attributes\Transform;
use Zolta\Domain\Attributes\UseRule;
use Zolta\Domain\Attributes\UseSpecification;
use Zolta\Domain\Rules\NonEmptyRule;
use Zolta\Domain\Transformers\EmailNormalizer;
use Zolta\Domain\Specifications\EmailFormatSpecification;
use Zolta\Domain\ValueObjects\ValueObject;
final class Email extends ValueObject
{
public function __construct(
#[Transform(EmailNormalizer::class, ['lowercase' => true])]
#[UseRule(NonEmptyRule::class)]
#[UseSpecification(EmailFormatSpecification::class)]
public readonly string $address,
) {}
}
$email = Email::resolve(['address' => ' [email protected] ']);
// Pipeline: trim → lowercase → assert non-empty → validate format
// Result: $email->address === "[email protected]"