dkplus / formica
Formica 允许您在项目中轻松使用构建器模式,例如设置测试数据。
v0.1.1
2016-09-21 10:31 UTC
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-08 22:23:35 UTC
README
Formica 允许您在项目中轻松使用构建器模式,例如设置测试数据。
安装
可以通过运行 composer require dkplus/formica
轻松安装 Formica。
快速入门
假设您有一个类 Acme\Issue
,您想为其创建一个构建器。它有一些属性,可以通过命名构造函数进行构造。
namespace Acme; class Issue { // … public static function bug(string $id, string $title, string $text): self { // … } // … }
对于构建器,您需要一个名为 Acme\IssueBuilder
的另一个类,它继承自基本构建器
namespace Acme; use Dkplus\Formica\Builder; /** * @method IssueBuilder withTitle(string $title) * @method IssueBuilder withText(string $text) */ class IssueBuilder extends Builder { public static function aBug() { return new self([ '74738ff5-5367-5958-9aee-98fffdcd1876', 'title' => 'It does not work', 'text' => 'A long error text', ], 'bug'); } }
您可以使用构建器如下
$issue = IssueBuilder::aBug()->withTitle('Another title')->build();
解释
Dkplus\Formica\Builder
期望三个参数
- 传递给构造方法的默认参数。
- 用于构造对象的静态方法名称。如果提供
null
,则将使用对象的构造函数。 - 对象的类。如果提供
null
,它将尝试通过使用构建器的类并去除最后 7 个字符来猜测类。因此,如果您将构建器命名为<NameOfYourClass>Builder
,则不需要传递类。
虽然 Dkplus\Formica\Builder
的构造函数是公共的,但我建议创建一个静态方法来调用它并设置默认值。
所有具有键的参数都可以通过 withX()
或 andX()
方法之一(两者都提供流畅的接口)进行覆盖。
如果您想要自动完成,我建议在构建器上方放置一些注解(请参阅上面的示例)。