insitaction/managers-bundle

该包已被废弃,不再维护。未建议替代包。

一个简单的工具箱。

安装: 807

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:symfony-bundle

1.0.1 2022-03-24 11:00 UTC

This package is auto-updated.

Last update: 2023-09-18 11:23:37 UTC


README

Insitaction

管理器包

管理器包是一个 symfony 包。

安装

composer require insitaction/managers-bundle

使用方法

RequestManager

<?php

namespace Insitaction\ManagersBundle\Manager\Request\Adapter;

use App\Entity\TestCase;

class TestCaseRequestAdapter extends AbstractRequestAdapter implements RequestAdapterInterface
{
    /**
     * @return class-string
     */
    public function entityClassname(): string
    {
        return TestCase::class;
    }

    public function setGroups(): array
    {
        return ['test'];
    }

    public function multiple(): bool
    {
        return true; // Or false
    }

    /**
     * @param array<mixed, mixed> $data
     */
    public function validation(array $data): bool
    {
        //TODO add validation
        
        return true;
    }
}

ImportManager

<?php

namespace App\Import;

use App\DBAL\EnumUserRoleType;
use App\Entity\User;
use Insitaction\ManagersBundle\Manager\Import\ImportInterface;
use Insitaction\ManagersBundle\Manager\Import\ImportableEntityInterface;
use Insitaction\ManagersBundle\Manager\Import\AbstractImport;

class UserRolesImport extends AbstractImport implements ImportInterface
{
    public function getClass(): string
    {
        return User::class;
    }

    public function getColumnIdentifier(): int
    {
        return 3; // the id of the column in the imported file
    }

    public function getPropertyIdentifier(): string
    {
        return 'email'; // the entity field name
    }

    public function getOffset(): int
    {
        return 0;
    }

    /** @param array<int, string> $row */
    public function loadEntityFromArray(array $row, ImportableEntityInterface $user): void
    {
        // your own logic
    }
}