For several years, Laravel [1] has been a popular choice among web application developers due to its elegant syntax, user-friendly tools, and robust features. With an active community behind it, Laravel continues to evolve, introducing new features and improvements with each release. The most recent version, Laravel 10, was released earlier this year, offering developers a bundle of exciting features to explore.
Laravel 10 – New Updates
Argument and Return Types
Laravel 10 brings significant updates to the framework’s core application structure and method signatures. It introduces argument and return types while removing extraneous ‘doc block’ type-hint information. Importantly, these changes are fully backward compatible with existing applications, ensuring that applications without these type hints will continue to function as expected.
Test Profiling
The introduction of a new ‘--profile
‘ option within the test command is a great enhancement. Slow tests can often be a source of frustration for developers, as they can significantly extend the testing process, leading to longer development cycles and decreased productivity. With this new option, developers can easily identify and address these slow tests, making the development and testing process more efficient and less frustrating.
php artisan test --profile

Pest Scaffolding
Pest [2] is a testing framework designed to enhance the testing experience by emphasizing readable and understandable tests, employing a code syntax closely resembling natural human language. With Laravel 10, newly created Laravel projects now include Pest test scaffolding by default.Ddevelopers can enable this feature simply by using the ‘–pest‘ flag when creating a new application via Laravel Installer:
laravel new sample-app --pest
However, it is important to note that to use Pest effectively, certain requirements must be met. Developers should ensure their environment is equipped with PHP v8.1 and PHPUnit v10 or higher. Meeting these prerequisites is necessary for initializing Pest tests.
Horizon & Telescope UI Renovation
Horizon and Telescope have received a makeover, giving them a modern appearance with better typography, spacing, and design.


- Horizon [3] offers a comprehensive dashboard and configuration system for Redis queues in Laravel. It enables straightforward monitoring of vital queue metrics, including job throughput, runtime, and failures.
- Telescope [4] is a valuable tool for developers’ local environments. It offers insights into various aspects of your application, including incoming requests, exceptions, log entries, database queries, queued jobs, email activity, notifications, cache operations, scheduled tasks, variable details, and much more.
Laravel 10 – New Packages
The Laravel Pennant
Laravel Pennant [5] is a new first-party package designed for efficient management of application feature flags. It includes two built-in drivers: an in-memory array driver for quick access and a database driver for persistent feature storage.
You can leverage this package in various scenarios, such as:
- Gradually introducing new application features with confidence.
- Conducting A/B tests for new interface designs, in line with a trunk-based development strategy.
- Transitioning to a new API based on specific user requirements or business rules.
Features can be easily defined via Feature::define
method
use Laravel\Pennant\Feature;
use Illuminate\Support\Lottery;
Feature::define('new-onboarding-flow', function(){
return Lottery::odds(1, 10);
});
Easily determine if the user has access to the given feature.
if (Feature::active('new-onboarding-flow')){
// ...
}
Blade directives are also available for access evaluation.
@feature('new-onboarding-flow')
<div><!-- ... --></div>
@endfeature
Process Interaction
Laravel 10 introduces an elegant abstraction layer for initiating and managing external processes through a newly added Process facade [6].
use Illuminate\Support\Facades\Process;
$result = Process::run('ls -la');
return $result->output();
Developers may even start Processes in pools.
use Illuminate\Process\Pool;
use Illuminate\Support\Facades\Process;
[$first, $second, $third] = Process::concurrently(function (Pool $pool) {
$pool->command('cat first.txt');
$pool->command('cat second.txt');
$pool->command('cat third.txt');
});
return $first->output();
Developers can even fake Process for testing purpose.
Process::fake();
// ...
Process::assertRan('ls -la');
Support Roadmap of Laravel
As we may know, Laravel shifted to an annual release cycle starting from Laravel 8. Previously, major versions were released every 6 months. This adjustment aims to alleviate the maintenance workload on the community while creating space for their development team to deliver impressive, impactful new features without causing any disruptions. Therefore, they had shipped a variety of robust features to Laravel 9 without breaking backwards compatibility.

Additionally, for all Laravel releases, bug fixes are provided for 18 months, and security fixes are provided for 2 years. For all additional libraries, including Lumen, only the latest major release receives bug fixes.
Conclusion
In summary, Laravel 10 represents yet another milestone in the evolution of the Laravel framework. With its commitment to developer-friendly syntax, powerful features, and modern tools, Laravel continues to be the go-to choice for PHP web artisans. With this latest release, it had witnessed exciting enhancements, fresh features, and improvements that promise to streamline web development even further. So, let’s upgrade to Laravel 10 to unlock the latest features and meet the demands of modern web development.
References
[1] Laravel – The PHP Framework for Web Artisans
[2] Pest | The elegant PHP Testing Framework
[3] Horizon Package
[5] Laravel Pennant
[6] Processes