delormejonathan / accessible
PHP库,允许您使用docblock注释定义类的方法、属性和构造函数。
v3.2
2020-05-08 10:15 UTC
Requires
- php: >=5.4.0
- doctrine/annotations: >=1.2.0
- doctrine/cache: >=1.0
- doctrine/inflector: >=1.0
- symfony/validator: >=2.6
Requires (Dev)
- doctrine/collections: >=1.0
- phpunit/phpunit: >=4.0
README
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兼容。