symandy / mapped-resource
由 Doctrine 属性映射的一组可重用资源接口和特性
v1.3.1
2022-11-24 15:12 UTC
Requires
- php: ^8.0
- doctrine/orm: ^2.10
Requires (Dev)
- phpunit/phpunit: ^9.5
Replaces
- symandy/resource: v1.3.1
README
此包是一组可重用组件,包含可用于任何使用 Doctrine 映射(属性)的 PHP 项目的接口和特性。它主要设计用于 Symfony 实体。
此包的设计灵感主要来自 Sylius Resource Bundle
安装
$ composer require symandy/mapped-resource
组件
组件存储在 Symandy\Component\Resource\Model
命名空间中。
每个接口都有一个相应的特性,包含一个或多个属性
每个特性包含与属性相关的映射信息。如果您使用 XML 或 YAML 驱动程序,您必须为每个属性(每个实体)重新定义映射。
使用方法
资源创建
使用这些组件的最佳方式是为每个资源创建一个类和一个接口。
也可以只创建类并添加相应的特性。
示例
<?php namespace App; use Symandy\Component\Resource\Model\ResourceInterface; use Symandy\Component\Resource\Model\TimestampableInterface; use Symandy\Component\Resource\Model\ToggleableInterface; interface PostInterface extends ResourceInterface, ToggleableInterface, TimestampableInterface { # Other methods }
<?php namespace App; use Symandy\Component\Resource\Model\ResourceTrait; use Symandy\Component\Resource\Model\TimestampableTrait; use Symandy\Component\Resource\Model\ToggleableTrait; class Post implements PostInterface { use ResourceTrait, ToggleableTrait, TimestampableTrait; # Other attributes with getters / setters }
在您的应用程序中使用资源
<?php use App\Post; # ... $post = new Post(); $id = $post->getId(); $post->enable(); $post->create(); # ...