delormejonathan/accessible

PHP库,允许您使用docblock注释定义类的方法、属性和构造函数。

v3.2 2020-05-08 10:15 UTC

This package is auto-updated.

Last update: 2024-09-08 20:16:56 UTC


README

SensioLabsInsight Build Status Code Coverage Scrutinizer Code Quality Dependency Status Latest Stable Version License

Accessible是一个PHP库,允许您使用docblock注释优雅且强大地定义类行为。

这样,您可以定义类的方法、属性和构造函数,并自动化集合和关联管理。

以下是一个(非常)基本的示例,包含获取器和设置器

class Customer
{
  use AutomatedBehaviorTrait;

  /**
   * @Access({Access::GET, Access::SET})
   * @Assert\Email
   */
  private $email;
}


$bob = new Customer();

$bob->setEmail('bob@example.com');
$bob->getEmail(); // bob@example.com
$bob->setEmail('not an email address'); // throws an InvalidArgumentException

使用集合相关注释的另一个示例

class Server
{
  use AutomatedBehaviorTrait;

  /**
   * @Access({Access::GET})
   * @InitializeObject(ArrayCollection::class)
   * @ListBehavior
   */
  private $processes;
}

$server = new Server();

$server->getProcesses(); // Instance of ArrayCollection
$process = new Process();
$server->addProcess($process);
$server->removeProcess($process);

更多复杂示例请参见文档。

此库可以在您的类中管理的内容

  • 获取器和设置器
  • 使用Symfony的Assertion注释对设置器参数进行验证
  • 构造函数和属性初始化
  • 集合
  • 类之间的关联

欢迎建议和贡献!

文档

安装

如果您想在Symfony项目中使用此库,请查看AccessibleBundle

您可以使用以下方式将此库作为依赖项添加

composer require antares/accessible

此库使用Doctrine注释库,因此如果尚未执行,您必须在注释注册表中注册Composer加载器

$loader = require __DIR__ . '/vendor/autoload.php';
Doctrine\Common\Annotations\AnnotationRegistry::registerLoader(array($loader, 'loadClass'));

您可能想更改默认配置,要这样做,请参阅配置专用页面

兼容性

此库与PHP 5.4+、PHP 7和HHVM兼容。