symandy/mapped-resource

由 Doctrine 属性映射的一组可重用资源接口和特性

v1.3.1 2022-11-24 15:12 UTC

This package is auto-updated.

Last update: 2024-09-24 19:05:21 UTC


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();
# ...