Laravel is a powerful and flexible PHP web framework that has gained huge popularity in the web development world.
It provides developers with a rich set of tools and features that make it easier to build robust and scalable web applications.
It’s now at its 10th version, and I’ll tell you everything about it.
Laravel 10 release date
Laravel 10 was released on February 14, 2023, and currently is the latest version.
But take it slow! It doesn’t mean you have to update all your projects immediately.
Laravel 9 will receive bug fixes until August 23, 2023 and security fixes until February 6, 2024.
Version | PHP | Release | Bug fixes until | Security fixes until |
---|---|---|---|---|
9 | 8.0 - 8.1 | February 8, 2022 | August 8, 2023 | February 6, 2024 |
10 | 8.1 - 8.2 | February 14, 2023 | August 6, 2024 | February 4, 2025 |
Is Laravel 10 LTS (Long Term Support)?
No, Laravel 10 isn’t LTS.
The framework last had LTS in version 6.
That being said, each major version have 2 years of bug and security fixes, which is plenty of time to prepare your application to upgrade to Laravel 10.
How to install Laravel 10?
Using the official Laravel installer:
laravel new hello-world
Or, if you prefer to use Composer explicitly:
composer create-project --prefer-dist laravel/laravel hello-world
How to upgrade to Laravel v10?
Upgrading to Laravel 10 requires more than just following upgrade instructions. Before proceeding, consider thinking this through.
Check out my guide to upgrading to Laravel 10 if you need more clarification. I also talk about a miracle solution to automatize the process.
What’s new in Laravel 10: features and changes
Laravel Pennant: feature flags with ease
Laravel Pennant is a first-party package that adds feature flags to any Laravel 10 project.
composer require laravel/pennant
Features flags are a way to enable or disable features at runtime without changing your code.
For instance, you can deploy a feature only for a select set of users in your production environment. This is great for A/B testing.
use Laravel\Pennant\Feature;
use Illuminate\Support\Lottery;
Feature::define('new-onboarding-flow', function () {
return Lottery::odds(1, 10);
});
Check if the user user has access to the feature:
if (Feature::active('new-onboarding-flow')) {
//
}
(Video) NEW Laravel 10: 10 Main Things in 10 Minutes
There’s even a Blade directive:
@feature('new-onboarding-flow')
…
@endfeature
Learn more about Laravel Pennant on the official documentation.
Laravel News also has a step-by-step tutorial.
Handle external processes with ease
Laravel offers a simple yet comprehensive API for the Symfony Process component, enabling you to run external processes within your Laravel application easily.
The process functionality in Laravel is designed to cater to the most frequent usage scenarios, resulting in an exceptional experience for developers. 🔥
This is how you use it:
use Illuminate\Support\Facades\Process;
$result = Process::run('ls -la');
return $result->output();
You can even run processes concurrently. I love the inspiration that comes from Laravel’s HTTP client.
use Illuminate\Process\Pool;
use Illuminate\Support\Facades\Pool;
[$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();
There’s more to learn about processes on the official documentation.
See the pull request on GitHub: [10.x] Process DX Layer
Identify slow-running tests
The Artisan command php artisan test
can now receive a --profile
option that will allow you to easily spot the slowest tests.
I’m glad; this is extremely useful.
This command is provided by the package nunomaduro/collision
in its 7th version. Make sure you made the necessary changes if you upgraded from Laravel 9.
Laravel v10 uses invokable validation rules by default
In Laravel 9, invokable validation rules could be generated using the --invokable
flag with the php artisan make:rule
command. Starting from Laravel 10, you don’t need it anymore.
php artisan make:rule Uppercase
To remind you a bit of what invokable validation rules are, here’s what they look like:
namespace App\Rules;
use Illuminate\Contracts\Validation\InvokableRule;
class Uppercase implements InvokableRule
{
/**
* Run the validation rule.
*
* @param string $attribute
* @param mixed $value
* @param Closure(string): Illuminate\Translation\PotentiallyTranslatedString $fail
* @return void
*/
public function __invoke($attribute, $value, $fail)
{
if (strtoupper($value) !== $value) {
$fail('The :attribute must be uppercase.');
}
}
}
The boilerplate code is considerably smaller and easier to understand. Thanks to Laravel 10, people will be less intimidated by the perspective of making custom validation rules.
See the pull request on GitHub: [10.x] Make invokable rules default
The Laravel 10 skeleton uses native types instead of docblocks
Starting with Laravel 10, the skeleton will now use native types instead of docblocks.
For instance, in the Laravel skeleton, the schedule()
method in app/Console/Kernel.php will look like this:
/**
* Define the application's command schedule.
- *
- * @param Illuminate\Console\Scheduling\Schedule $schedule
- * @return void
*/
- protected function schedule($schedule)
(Video) What's New in Laravel 10 - The New Process Facade+ protected function schedule(Schedule $schedule): void
The team also added generic type annotations, which improves autocompletion even further (given your code editor supports generics).
See the pull request on GitHub: [10.x] Uses PHP Native Type Declarations 🐘
Official packages also use native types
Official packages for Laravel won’t be left out of this transition.
Native type hints will be used everywhere across the Laravel organization.
You can check out this PR, that initiates the switch from dockblocks to native type hints in Laravel Jetstream.
https://twitter.com/taylorotwell/status/1610338749065433089
Customize the path of config files
A contributor added the possibility to set a custom path for config files. This is useful for projects slowly migrating to Laravel that can’t handle a radical directory structure change.
In your bootstrap/app.php, use the configPath()
method from the $app
object.
$app->configPath(__DIR__ . '/../some/path');
(And did you also know about bootstrapPath()
, databasePath()
, langPath()
, etc.? Laravel is highly customizable.)
Learn more: [10.x] Config path customization
doctrine/dbal is not needed anymore to modify columns in migrations
Column modifications happen in your migrations like so:
…
return new class extends Migration
{
public function up()
{
Schema::table('foo', function (Blueprint $table) {
$table->unsignedBigInteger('bar')->change();
});
}
…
}
In Laravel 9, you had to install doctrine/dbal to do the job. But now, migrations support the native operations provided by most of the databases Laravel supports.
Suppose you have multiple database connections and already installed Doctrine DBAL. In that case, you should call Schema::useNativeSchemaOperationsIfPossible()
to use native operations before falling back on the package (for instance, SQLite doesn’t support this yet).
use Illuminate\Support\Facades\Schema;
…
class AppServiceProvider extends ServiceProvider
{
(Video) #9- Admin (List, Add, Edit and Delete) | Laravel 10 E-Commerce public function boot()
{
Schema::useNativeSchemaOperationsIfPossible();
}
}
Learn more:
- [10.x] Add support for native column modifying
- [9.x] Add support for native rename/drop column commands
Laravel 10 requires at least Composer 2.2
Composer 1.x has been deprecated in 2021.
Therefore, to ensure solid foundations for every new Laravel 10 project, Nuno Maduro proposed to require at least Composer 2.2 (release in December 2021), which also appears to be an LTS version that will be updated until the end of 2023 (Composer is at version 2.5.3 at the time I write these lines).
Learn more: [10.x] Requires Composer ^2.2
Dropped support for PHP 8.0
Laravel 10 dropping support for PHP 8.0 and requiring 8.1 as a minimum means two things if you want to upgrade:
- Either move to PHP 8.1
- Or PHP 8.2
But remember: your Laravel apps don’t need to be updated to the latest and greatest as soon as they’re released.
Especially if you have projects with paid clients or employees who depend on them to do their work.
They need to slowly but surely move forward by doing extensive testing. Don’t rush.
See the pull request on GitHub: [10.x] Drop PHP 8.0
Dropped support for Predis v1
If you’re forcing the usage of Predis v1 in your project, you might want to upgrade to v2.
To see what changed in Predis v2, take a look at the changelog.
See the pull request on GitHub: [10.x] Drop Predis v1 support
In my opinion, instead of using Predis, you should consider using PHP’s native Redis extension, which is faster and could speed up your website if you have a lot of traffic.
dispatchNow() has been removed
dispatchNow()
is a popular method in Laravel. It was deprecated in Laravel 9 in favor of dispatchSync()
. Laravel 10 will remove it, so be sure to search and replace it in all of your projects. It may be a breaking change, but it’s an extremely easy fix.
See the pull request on GitHub: [10.x] Remove deprecated dispatchNow functionality
Many deprecated methods and properties have been removed
Releasing a major version also means the Laravel team can finally remove features that have been deprecated in Laravel 9. It also means you should carefully test any Laravel application you might want to migrate to version 10.
Here’s a list of all PRs taking care of that:
- [10.x] Remove deprecated Route::home method
- [10.x] Remove deprecated assertTimesSent
- [10.x] Remove deprecated method
- [10.x] Remove deprecated dates property
- [10.x] Use native php 8.1 array_is_list function
- [10.x] Remove deprecations
How to contribute to Laravel 10?
Did you know you could create the next big feature for Laravel 10?
- See what’s going on for Laravel 10 on GitHub: https://github.com/laravel/framework/pulls. The Pull Requests will tell you what’s already been done.
- Take one of your pain points with the framework and create a solution yourself.
- Send the PR over to the laravel/framework repository, collect feedback, improve and get merged.
One important tip to increase your chances of being merged: add something to the framework that’s a win for developers, but not a pain to maintain for Taylor and his team in the long run.
Laravel v10 Bug Hunt: win $1K for fixing bugs
Taylor Otwell announced the Laravel 10 bug hunt.
Fix bugs, and be one of the random winner to get $1K richer!
This contest will end as soon as Laravel 10 is released.
Here are the rules:
- Only PRs sent to the 10.x branch of the laravel/framework repository are eligible.
- Only “true” bug fixes are accepted. New features, refactoring, or typo fixes will not be counted.
- Every bug fix must include a test.
- Accepted bug fixes will be labelled, and a random winner will be selected at the end of the contest.
More details on the official Laravel blog: Laravel 10 Bug Hunt
FAQs
What's new in Laravel 10 latest features and updates? ›
- PHP 8.1: At the Heart of Laravel 10. ...
- Support for PHP 8.2. ...
- Laravel Official Packages Upgrade. ...
- Predis Version Upgrade. ...
- Native Type Declarations. ...
- All Validation Rules Invokable by Default. ...
- Native Column Modification Support. ...
- Column Type Native Retrieval.
However, many new features have been added to PHP in the subsequent years, including additional primitive type-hints, return types, and union types. Laravel 10.x thoroughly updates the application skeleton and all stubs utilized by the framework to introduce argument and return types to all method signatures.
What is the minimum requirement for Laravel 10? ›Laravel 10 drops support for PHP 8.0
0 in Laravel 10. The minimum required version is PHP ^8.1 . Browsing the comparison between master and 9. x, we can expect to see 8.1 features used in the framework, such as readonly properties.
- Install PHP 8.1 or Later on your PC. Laravel 10 only runs on PHP 8.1 or greater. ...
- Download and Install Composer onto your PC. ...
- Create a Laravel 10 application using Composer. ...
- Start your Laravel application. ...
- Navigate to the homepage of your Laravel application.
Developer(s) | Taylor Otwell |
---|---|
Stable release | 10.2.1 / 16 May 2023 |
Repository | github.com/laravel/framework |
Written in | PHP |
Type | Web framework |
Laravel 9 is said to be the first Long Term Support released in a 12-month release cycle and this was initially announced to be released by September 2021. However, it was later decided to push it to January 2022.
Is Laravel still relevant in 2023? ›It's a good choice for web development in 2023 because of its elegant syntax, built-in support for MVC architecture, routing, query builder, ORM system, authentication and authorization, task scheduler, active community, ability to handle complex web applications, localization, and event handling.
What is the weakness of Laravel? ›The framework's strong points include high security, robust deployments, and simple coding. It also boasts a variety of web development tools and is easy to learn. The drawbacks include the potentially high cost of Laravel developers, limited support, frequent need for updates, and slow speeds.
Is Laravel still good? ›Laravel comes with excellent features to make web development effortless for developers and is one of today's most popular web frameworks. You can use it to build different types of software applications and sites, from news sites and CMSs to simple networking platforms.
Is 1gb RAM enough for Laravel? ›You can run Laravel in production with thousands of users on 2GB RAM.
Which Laravel version is best for beginners? ›
It's version 5.4, by far the best resource you'll find for laravel.
Is Laravel easy for beginners? ›Laravel is easy to learn. Laravel allows the developer to focus on their web application's design, architecture, and functionality.
Is Laravel a programming language? ›Is Laravel a programming language? No, Laravel is a framework and the language that it uses is PHP.
Why Laravel is better than other frameworks? ›Laravel secures a web application even against severe security risks like cross-site request forgery, cross-site scripting, SQL injections, and many more. In this way, the Laravel framework is much-ahead of other PHP frameworks as it provides an incredibly advanced codebase.
What version of Laravel is installed? ›Check Laravel Version in File
WHM/cPanel users can use file managers to access files. First, navigate to the Laravel web root directory and open the below file. Then search for the string “VERSION”, which contains the version of the Laravel application.
Due to their simpler structure in comparison to Laravel, Core PHP scripts are faster to execute on the condition that the codes are clearly and concisely written. Web developers can reuse Core PHP scripts in similar projects. Laravel has a layered structure, therefore, code lines will be executed a bit slower.
What is better than Laravel? ›Django comes out on top in terms of speed (thanks in part to the faster Python), scalability and maintenance. Its built-in tools include decorators, SEO tools and third-party libraries. Laravel, on the other hand, is easier to use thanks to its simpler features, and contains strategy infusion as well.
Why Laravel is better than PHP? ›The Laravel framework uses an ORM (Object Relational Mapping) called Eloquent, which is, in fact, a huge advantage to keep in mind when deciding what PHP framework to opt for. It is a built-in implementation that is also the best ORM among all other PHP frameworks.
Does Laravel have a future? ›There are currently 140,886 websites using Laravel and that number is growing all the time. The framework has experienced a noticeable expansion in recent years and will certainly continue to do so in the future.
What is the best frontend for Laravel? ›Livewire. Laravel Livewire is a framework for building Laravel powered frontends that feel dynamic, modern, and alive just like frontends built with modern JavaScript frameworks like Vue and React.
Which PHP version is best for Laravel? ›
PHP 8.0 is the undisputed champion with Laravel, while PHP 8.1 came in last.
Does anyone still use Laravel? ›Yes, Laravel is still relevant in 2022. The number of websites using Laravel is increasing. Many web and mobile app developers rely on Laravel to build small and medium-scale websites and web-based mobile apps. It is commonly used for ecommerce development and enterprise-level applications.
Why not to use Laravel? ›Since Laravel is a PHP framework, if you are not building your application in PHP, Laravel is not even a choice. Depending on your chosen programming language, there are other options. For example, if you are going with java there's Spring Framework, for python there's Django and for C# there's . NET Framework.
Is asp net better than Laravel? ›Which is better: Laravel or ASP Net? Laravel is ideal for building smaller projects, whereas ASP Net is best for medium to large projects that don't need additional support. Laravel projects demand such help, which is not readily available, whereas ASP.net is scalable to cover all huge project metrics.
Can Laravel handle big data? ›Laravel supports Eloquent, which is one of PHP's robust frameworks for data handling, gives you faster access to the data. Laravel contains lighter templates and widgets such as JS and CSS code that are actively being used to manage Big Data.
Is Laravel easier than node JS? ›Learning Curve
Besides, Laravel becomes easy to implement or execute for developers as it comes with built-in libraries and templates. However, becoming an expert in Laravel needs more effort. For Node JS, developers with relevant Javascript experience can easily learn this framework.
Laravel is a free, open source web application PHP framework. Drupal requires less to no coding abilities to spin up sites. Even if someone is preparing to develop sites that require technical know how then Drupal provides role based systems to seperate developers from content writers.
What is the future of Laravel in 2023? ›Conclusion. The future of Laravel development in 2023 looks promising, with increased adoption of Laravel-based CMS platforms, the emergence of new development tools and libraries, increased focus on security and performance, and the integration of AI and machine learning.
Is it worth learning Laravel in 2023? ›In conclusion, learning Laravel in 2023 can provide numerous benefits to web developers who are looking to improve their skills and build high-quality web applications.
Is Laravel outdated? ›Because the world is undergoing rapid change, there is no need for you to concern yourself with any technology that may soon become obsolete. But the good news is that you won't have to worry about soon Laravel disappears. It's going to expand much farther!
Is 32GB RAM worth it for Programming? ›
32GB of RAM is considered high and is generally overkill for most users. For most everyday use and basic tasks such as web browsing, email, and basic office work, 8GB of RAM is more than enough. Even for gaming or video editing, 16GB is typically sufficient.
Is 32GB RAM good for architecture? ›RAM Memory: 16 GB minimum; 32 GB recommended; Hard Drive 1 TB Solid state drive (SSD) minimum; external SSD drive recommended for data backup. Make sure not to get an internal Hard Disk Drive (HDD) as it is too slow to be usable. Graphics Card: 4 GB VRAM minimum; more memory and performance capability recommended.
Why is Laravel faster? ›Laravel is a fast framework that comes with a boatload of features and functions (e.g. Memcache, database support, Redis, etc.) to help with performance. Laravel also lets software professionals produce robust code with relatively little effort to meet their project goals big or small.
Can I learn Laravel in 2 weeks? ›If you're experienced with PHP, it could take as little as three weeks. Laravel's official documentation strongly advises learning HTML, Core PHP, and Advanced PHP to get the most out of this framework. If you are a complete beginner, taking the time to really learn PHP might take longer than learning Laravel.
Is Laravel easier to learn than React? ›Laravel has a steeper learning curve compared to React as it is a full-stack framework that requires knowledge of PHP, HTML, CSS, and JavaScript. On the other hand, React has a relatively shallow learning curve, especially for developers who are already familiar with JavaScript.
Should I use Laravel 8 or 9? ›Key Reasons to choose Laravel 9 over Laravel 8
Laravel 9 has provided default timeout in HTTP clients for 30sec. This step will help avoid hangs occurring in the previous version. Laravel 9 has shifted from SwiftMailer to Symfony Mailer, which provides more consistency to your application.
Database management abilities-Laravel development requires you to know how to create and manage databases. Also, you will need to know how to use database systems such as Oracle 12c, MySQL, and Microsoft SQL.
How much do Laravel developers make? ›Php and Laravel Developer salary in India ranges between ₹ 1.0 Lakhs to ₹ 7.0 Lakhs with an average annual salary of ₹ 3.0 Lakhs. Salary estimates are based on 471 latest salaries received from Php and Laravel Developers.
Is Laravel a skill? ›Database Management Skills
Laravel developers are experts in managing database systems. They can organize all the data from a company's website, making it easier for end-users to quickly and effectively share the data across the organization.
Laravel 9 is here, and along with it comes a wide array of useful new features and tweaks. This includes an improved accessor/mutator API, better support for Enum casting, forced scope bindings, a new database engine for Laravel Scout, and so much more.
What is the difference between edit and update in laravel controller? ›
Edit is for displaying a form to apply changes and Update is used to set them up to server.
What is telescope in laravel? ›Laravel Telescope makes a wonderful companion to your local Laravel development environment. Telescope provides insight into the requests coming into your application, exceptions, log entries, database queries, queued jobs, mail, notifications, cache operations, scheduled tasks, variable dumps, and more.
Do people still use Laravel? ›Yes, Laravel is still relevant in 2022. The number of websites using Laravel is increasing. Many web and mobile app developers rely on Laravel to build small and medium-scale websites and web-based mobile apps.
Which Laravel is best? ›Eloquent ORM
Laravel has the best Object-relational Mapper as compared to the other frameworks out there. This Object-relational mapping allows you to interact with your database objects and database relationships using expressive syntax.
And Laravel is one such PHP-based open-source web application framework that is used to develop scalable, robust, and highly-functional web applications. For brands, the craze of opting for Laravel application development is increasing day by day.
What is the difference between create and store in laravel? ›resource. create shows the form for creating a new resource (front end only to show the form) and resource. store stores a newly created resource in storage (db interaction to store the data).
How to change DB in laravel? ›To change its default database type, edit the file config/database. php: Search for 'default' =>env('DB_CONNECTION', 'mysql') Change it to whatever required like 'default' =>env('DB_CONNECTION', 'sqlite')
What is the difference between helper and controller in laravel? ›A controller method is to be used with an HTTP request. A helper can be used anywhere in the code As the same bootstrap is called if you are responding to an HTTP request. Both approaches are equally slow since you're querying the database.
What is the use of lumen in Laravel? ›Lumen utilizes the Illuminate components that power the Laravel framework. As such, Lumen is built to painlessly upgrade directly to Laravel when needed; for example, when you discover that you need more features out of the box than what Lumen offers.
Why use Lumen in Laravel? ›Laravel is easy to understand and robust MVC framework for web application development in PHP. Lumen is a micro framework that means smaller, simpler, leaner, and faster; Lumen is primarily used to build for microservices with loosely coupled components that reduce complexity and enhance the improvements easily.
What is echo in Laravel? ›
Laravel Echo is a JavaScript library that makes it painless to subscribe to channels and listen for events broadcast by your server-side broadcasting driver. You may install Echo via the NPM package manager. In this example, we will also install the pusher-js package.