bearsunday / rector-bearsunday
Rector upgrades rules for BEAR.Sunday Framework
Installs: 197
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 0
Open Issues: 1
Type:rector-extension
pkg:composer/bearsunday/rector-bearsunday
Requires
- php: ^8.2
- koriym/attributes: ^1.0
- ray/di: ^2.14
- rector/rector: ^2.0
Requires (Dev)
- bear/package: ^1.16
- bear/query-repository: ^1.9
- bear/resource: ^1.20
- phpunit/phpunit: ^9.5
- ray/aura-sql-module: ^1.13
- ray/psr-cache-module: ^1.3
- ray/query-module: ^0.9.0
- ray/role-module: ^1.0
- ray/web-param-module: ^2.1
This package is auto-updated.
Last update: 2025-11-10 16:21:59 UTC
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]