appio-digital / redmine-passage-nette

该软件包已被弃用且不再维护。未建议替代软件包。

Redmine Passage 集成到 Nette 框架

v1.2.0 2018-06-25 12:48 UTC

This package is not auto-updated.

Last update: 2022-12-10 17:24:33 UTC


README

Build Status Coverage Status

安装

安装 AppioDigital/RedminePassageNette 的最佳方式是使用 Composer

$ composer require appio-digital/redmine-passage-nette

所需类

此扩展需要找到两个接口的实现

  • Appio\RedmineNette\Security\RedmineResourceProviderInterface:用于获取 API 密钥资源
  • Appio\RedmineNette\Security\RedmineResourceKeyInterface:用于获取 API 密钥

示例类 LoggedUserProvider 实现 Appio\RedmineNette\Security\RedmineResourceProviderInterface

class LoggedUserProvider implements RedmineResourceProviderInterface
{
    /** @var UserRepo */
    private $userRepository;

    /** @var User */
    private $netteUser;

    /**
     * @param UserRepo $userRepository
     * @param User $netteUser
     */
    public function __construct(UserRepo $userRepository, User $netteUser)
    {
        $this->userRepository = $userRepository;
        $this->netteUser = $netteUser;
    }

    /**
     * @return RedmineResourceKeyInterface|null
     */
    public function getResource(): ?RedmineResourceKeyInterface
    {
        return $this->userRepository->find($this->netteUser->getId());
    }
}

示例类 User 实现 Appio\RedmineNette\Security\RedmineResourceKeyInterface

class User implements RedmineResourceKeyInterface
{
    /**
     * @var string
     * @ORM\Column(type="string", nullable=true, unique=true)
     */
    private $redmineApiKey;

    /**
     * @return string
     */
    public function getRedmineApiKey(): string
    {
        return $this->redmineApiKey ?? '';
    }
}

配置

最小配置

extensions:
    httplug: FreezyBee\Httplug\DI\HttplugExtension
    redmine: Appio\RedmineNette\DI\RedmineExtension


redmine:
    baseUri: 'https://your.redmine.com/api'

完整配置

redmine:
    baseUri: 'https://your.redmine.com/api'
    defaultProjectId: 10
    defaults:

        # default setting - merged to all another
        default:
            assignedToId: 50 # Project manager
            trackerId: 2 # Feature
            statusId: 1 # New
            params:
                some_filter_param: 1
            customFields:
                # some hidden custom field
                3:
                    type: hidden
                    defaultValue: 1

        # defaults for project with id 1
        1:
            assignedToId: 1 # Super project manager
            customFields:
                # text
                4:
                    type: text
                    label: Custom
                    defaultValue: hello
                    disabledAction: add # input disabled - choices "add,edit,all" default false
                # checkbox
                15:
                    type: checkbox
                    label: Custom
                    defaultValue: hello