定制 bearsunday/rector-bearsunday 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

bearsunday/rector-bearsunday

Composer 安装命令:

composer require bearsunday/rector-bearsunday

包简介

Rector upgrades rules for BEAR.Sunday Framework

README 文档

README

Rector rules to migrate BEAR.Sunday and Ray.Di applications from annotations to PHP 8 attributes.

Requirements

  • PHP 8.2+
  • Rector 2.0+

Installation

composer require --dev bearsunday/rector-bearsunday

Usage

Run Rector using the provided configuration file:

# Preview changes
vendor/bin/rector process src tests -c vendor/bearsunday/rector-bearsunday/rector.php --dry-run

# Apply changes
vendor/bin/rector process src tests -c vendor/bearsunday/rector-bearsunday/rector.php

Rules

RayDiNamedAnnotationRector

Converts @Named annotations on methods to #[Named] attributes on constructor parameters.

Before:

class SomeClass
{
    /**
     * @Named("a=foo, b=bar")
     */
    public function __construct(int $a, int $b)
    {
    }
}

After:

class SomeClass
{
    public function __construct(
        #[Named('foo')] int $a,
        #[Named('bar')] int $b
    ) {
    }
}

AnnotationToAttributeRector

Converts BEAR.Sunday and Ray.Di annotations to PHP 8 attributes.

The provided rector.php configuration includes rules for:

Ray.Di:

  • @Inject#[Inject]
  • @Named#[Named]
  • @PostConstruct#[PostConstruct]
  • @Assisted#[Assisted]
  • @Set#[Set]
  • @Qualifier#[Qualifier]

Ray.AuraSqlModule:

  • @ReadOnlyConnection#[ReadOnlyConnection]
  • @WriteConnection#[WriteConnection]
  • @Transactional#[Transactional]

Ray.PsrCacheModule:

  • @CacheNamespace#[CacheNamespace]
  • @Local#[Local]
  • @Shared#[Shared]
  • @CacheDir#[CacheDir]

Ray.WebContextParam:

  • @CookieParam#[CookieParam]
  • @EnvParam#[EnvParam]
  • @FilesParam#[FilesParam]
  • @FormParam#[FormParam]
  • @QueryParam#[QueryParam]
  • @ServerParam#[ServerParam]

Ray.QueryModule:

  • @Query#[Query]

Ray.RoleModule:

  • @RequiresRoles#[RequiresRoles]

BEAR.Resource:

  • @AppName#[AppName]
  • @ContextScheme#[ContextScheme]
  • @Embed#[Embed]
  • @ImportAppConfig#[ImportAppConfig]
  • @Link#[Link]
  • @OptionsBody#[OptionsBody]
  • @ResourceParam#[ResourceParam]

BEAR.Package:

  • @ReturnCreatedResource#[ReturnCreatedResource]

BEAR.QueryRepository:

  • @Cacheable#[Cacheable]
  • @Purge#[Purge]
  • @Refresh#[Refresh]

BEAR.Accept:

  • @Available#[Available]
  • @Produces#[Produces]

SetterToConstructorInjectionRector

Converts setter injection with #[Inject] to constructor injection.

Before:

class SomeClass
{
    private FooInterface $foo;

    #[Inject]
    public function setFoo(FooInterface $foo): void
    {
        $this->foo = $foo;
    }
}

After:

class SomeClass
{
    public function __construct(
        private readonly FooInterface $foo
    ) {
    }
}

TraitToConstructorInjectionRector

Converts trait-based injection to constructor injection.

Supported traits:

  • BEAR\Resource\ResourceInjectResourceInterface $resource
  • BEAR\Sunday\Inject\ResourceInjectResourceInterface $resource
  • Ray\Di\InjectorInjectInjectorInterface $injector

Before:

use BEAR\Resource\ResourceInject;

class SomeClass
{
    use ResourceInject;
}

After:

use BEAR\Resource\ResourceInterface;

class SomeClass
{
    public function __construct(
        private readonly ResourceInterface $resource
    ) {
    }
}

ResourceObjectReturnTypeRector

Converts ResourceObject and self return types to static in resource methods.

Before:

class Article extends ResourceObject
{
    public function onGet(int $id): ResourceObject
    {
        return $this;
    }
}

After:

class Article extends ResourceObject
{
    public function onGet(int $id): static
    {
        return $this;
    }
}

See Also

bearsunday/rector-bearsunday 适用场景与选型建议

bearsunday/rector-bearsunday 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 201 次下载、GitHub Stars 达 2, 最近一次更新时间为 2022 年 03 月 29 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 bearsunday/rector-bearsunday 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 bearsunday/rector-bearsunday 我们能提供哪些服务?
定制开发 / 二次开发

基于 bearsunday/rector-bearsunday 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 201
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 4
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-03-29