nette / schema

📐 Validating data structures against a given Schema.

Home Page:https://doc.nette.org/schema

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Support custom cast function

JesusTheHun opened this issue · comments

It would like to be able to cast a value using a callable.

class Foo {
  public static function fromString($bar) {
    // some logic
  }
}

$schema = Expect::structure([
  'foo' => Expect::string()->castTo(fn ($v) => Foo::fromString($v));
  'foo2' => Expect::string()->castTo('Foo::fromString');
});

I'm willing to make a PR for this if you accept the feature to be integrated in the project.

The idea is good, but it would be better to use different method name, to more accurately describe the action, e.g. transform (that is the name used by Zod)