News

Laravel 10 Application Skeleton Code Will Have Native Type Declarations

Published
Laravel 10 Application Skeleton Code Will Have Native Type Declarations image

Laravel 10 will use native PHP type declarations across any generated code that can exist in userland:

Types are being added in a way that brings the latest PHP type-hinting features to Laravel projects without breaking backward compatibility at the framework level:

  • Return types
  • Method arguments
  • Redundant annotations are removed where possible
  • Allow user land types in closure arguments
  • Does not include typed properties

As an example, if a skeleton method has a return type of array, an annotation might exist to provide better type clarity when not possible through native types:

/**
* Get the host patterns that should be trusted.
*
* @return array<int, string>
*/
public function hosts(): array
{
return [
'laravel.test',
];
}

In the above example, IDEs will know the shape of the array, which is helpful information not possible in PHP's native typing design.

Further, all code generated by the framework will follow the same type-hint guidelines above, meaning that as you create files with make commands, they will include native type hinting in the same way described above.

When will Laravel 10 be released?

According to the Support Policy docs, Laravel 10 will be released on February 7th, 2023.

Given the size of the Laravel ecosystem, this is a significant undertaking, and we applaud Laravel for keeping backward compatibility a priority.

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

masteringlaravel logo
Laravel Code Review

Get expert guidance in a few days with a Laravel code review

Visit Laravel Code Review

The latest

View all →
Taylor disabled GitHub Issues on most Laravel open-source packages. image

Taylor disabled GitHub Issues on most Laravel open-source packages.

Read article
Exclude Vendor and Default Commands in `php artisan dev` image

Exclude Vendor and Default Commands in `php artisan dev`

Read article
The Laracon Archive image

The Laracon Archive

Read article
Group Adjacent Collection Items in Laravel with chunkBy() image

Group Adjacent Collection Items in Laravel with chunkBy()

Read article
Laravel queue:work Now Prints Why the Worker Stopped image

Laravel queue:work Now Prints Why the Worker Stopped

Read article
Sidecar Brings Statamic's Control Panel to Your Existing Markdown Sites image

Sidecar Brings Statamic's Control Panel to Your Existing Markdown Sites

Read article