1.0.0
·
81 commits
to master
since this release
Immutable
release. Only release title and notes can be modified.
Stable version!
- Detection of all dead members is implemented and stable!
- Dead methods, constants, enum cases and properties
- Thus, no more BC breaks in extension points are expected
- It took ~4 years of development
Performance improvements
- Result cache offloaded to own cache (#319)
- Analysis reusing cache:
- up to ~40% less memory
- up to ~40% faster
- Result cache size: decreased by ~55%
- Analysis reusing cache:
New features:
- Fully new Laravel support (#294)
- Route registration —
Route::get(),post(),put(),patch(),delete(),any(),match(),resource(),apiResource()- Callable array syntax:
[Controller::class, 'method'] - Legacy string syntax:
'Controller@method' - Invokable controllers:
Controller::class
- Callable array syntax:
- Event listeners —
Event::listen(),Event::subscribe() - Auto-discovered event listeners — classes with
handle*methods whose first parameter has a class type - Scheduled jobs —
Schedule::job() - Gate definitions —
Gate::define()(callable + invokable),Gate::policy() - Policy resolution —
$this->authorize()calls resolve policy class via Laravel's namespace convention (Models\→Policies\) - Console commands —
__construct,handleonIlluminate\Console\Commandsubclasses - Jobs —
__construct,handle,failed,middleware,retryUntil,uniqueId,tags,backoff,uniqueVia,displayNameonShouldQueue/Dispatchableclasses - Service providers —
__construct,register,boot - Middleware —
handle,terminate,__construct(detected by first parameter typeIlluminate\Http\Request) - Notifications —
via,toMail,toArray,toDatabase,toBroadcast,toVonage,toSlack - Form requests —
authorize,rules,messages,attributes,prepareForValidation,passedValidation,failedValidation,failedAuthorization - Policies —
before,viewAny,view,create,update,delete,restore,forceDelete(heuristic via\Policies\namespace +Policysuffix) - Mailables —
build,content,envelope,attachments,headers - Broadcast events —
broadcastWith,broadcastAs,broadcastWhen - JSON resources —
paginationInformation - Notifiable routing —
routeNotificationFor*methods - Eloquent features:
- Model methods — constructor,
boot,booted,casts,newFactory - Query scopes —
scope*methods - Relationships — methods returning
Illuminate\Database\Eloquent\Relations\* - Attribute accessors — methods returning
Illuminate\Database\Eloquent\Casts\Attribute - Legacy accessors/mutators —
get*Attribute()/set*Attribute() - Observers —
Model::observe()calls +#[ObservedBy]attribute (all observer event methods) - Factories —
definition,configure - Seeders —
run - Migrations —
up,down
- Model methods — constructor,
- Route registration —
- Symfony improvements
#[Autoconfigure(constructor:, calls:)],#[AutowireCallable],#[TaggedIterator],#[TaggedLocator],#[Required]on properties,#[AsSchedule],#[AsCronTask],#[AsPeriodicTask],!php/enumreferences in config yamls (#317)- Allow explicit
containerXmlPathsconfiguration - no need forphpstan/phpstan-doctrinefor DIC calls analysis (#325) - Symfony UX support:
#[AsTwigComponent]/#[AsLiveComponent](constructor,mount()),#[LiveProp],#[LiveAction],#[LiveListener], lifecycle hooks (#329)
- Reflection improvements
- support member constructors like
new ReflectionMethod(Class, 'method')(#313)
- support member constructors like