Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/symandy/resource
Set of reusable resource interfaces and traits
https://github.com/symandy/resource
php symfony
Last synced: 6 days ago
JSON representation
Set of reusable resource interfaces and traits
- Host: GitHub
- URL: https://github.com/symandy/resource
- Owner: Symandy
- License: mit
- Created: 2021-08-30T15:45:08.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2022-11-24T15:00:24.000Z (almost 2 years ago)
- Last Synced: 2024-04-24T11:11:31.799Z (7 months ago)
- Topics: php, symfony
- Language: PHP
- Homepage:
- Size: 34.2 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Symandy Resource Components
This package is a set of reusable components and contains interfaces and traits that could be used in any PHP project.
It was mainly designed to be used for [Symfony](https://github.com/symfony/symfony) entities.This package design was strongly inspired by [Sylius Resource Bundle](https://github.com/Sylius/SyliusResourceBundle)
## Installation
```shell
$ composer require symandy/resource
```## Components
The components are stored in `Symandy\Component\Resource\Model` namespace.Each interface have a corresponding trait and contains one or several attributes :
| Name (trait + interface) | Property | Methods |
|----------------------------------------------------|-------------|----------------------------------------------------------------------------------------|
| Resource | $id | getId() |
| Creatable | $createdAt | getCreatedAt()
setCreatedAt(?\DateTimeInterface)
create() |
| Updatable | $updatedAt | getUpdatedAt()
setUpdatedAt(?\DateTimeInterface)
update() |
| Timestampable
(extends Creatable & Updatable) | - | - |
| Archivable | $archivedAt | getArchivedAt()
setArchivedAt(?\DateTimeInterface)
archive()
restore() |
| Toggleable | $enabled | isEnabled()
setEnabled(bool)
enable()
disable() |
| CodeAware | $code | getCode()
setCode(?string) |
| SlugAware | $slug | getSlug()
setSlug(?string) |
| Versioned | $version | getVersion()
setVersion(?int) |
| Startable | $startsAt | getStartsAt()
setStartsAt(?\DateTimeInterface) |
| Endable | $endsAt | getEndsAt()
setEndsAt(?\DateTimeInterface) |
| PeriodAware
(extends Startable & Endable) | - | - |## Usage
### Resource creation
The best way to use these components is to create a class and an interface for each resource.
It is also possible to create only the class and add the corresponding traits.
#### Example
```php
getId();
$post->enable();
$post->create();
# ...
```