Table of Contents
Update in Laravel 9! What’s New?
Laravel is one of the most popular PHP frameworks and has been for years. This versatile framework is scalable, reliable and elegant, making it a popular choice for developers and companies that work with PHP. With its latest release, Laravel 9, comes many new features. In the past, the latest releases were rolled out every six months, resulting in many questions, harsh comments, and confusion about their underlying process and reasoning. However, now they’ve changed their release schedule to happen every three months. They made this decision because sometimes releasing can be more painful than beneficial. Now you get a more significant and more complete update each time one is released (rather than smaller ones semi-regularly).
With the release of Laravel 9 in February 2022, the framework will follow a 12-month major release cycle. This article will detail how to make the jump to Laravel 9 and which new features have been added and why you should be excited over upgrading from past versions.
What Is Laravel?
Laravel is an open-source PHP web application framework. It was initially released on May 19, 2011, gaining popularity ever since. Some of the framework’s features include an expressive, elegant syntax, middleware support, multiple-language compatible codebase, inversion of control containers and service locators, as well as a lightweight abstraction layer for accessing relational databases.
Key Features of Laravel
If you’re new to this framework, we’ve created a guide that will give you a clearer understanding of some of our best-in-class features:
Laravel has something called an ORM or object-relational mapper, which Eloquent stands for. It is one of Laravel’s best features as it allows for seamless interaction with the data model and database of choice. With Eloquent, Laravel abstracts every hurdle involving interacting with and writing complex SQL queries to access data from your database.
After learning how laravel latest version functions with Composer and its predecessors to establish a bidirectional relationship between the framework itself and its client applications, it’s essential to understand that a command-line interface can make certain corrective manoeuvres that require having direct access to configuration files stored on disk using a terminal type of file management application.
The MVC architectural nature of Laravel makes for an excellent framework for PHP code because it follows a popular web development pattern. Features such as DI (dependency injection), command-based routing, and Eloquent ORM provide flexibility and control to cater to your most specific needs. As a bonus, because the language uses TDD (Test Driven Development) principles, it will force you to become well versed in advanced guiding approaches that all professional web developers employ regularly!
One of the most challenging parts of development is pagination. For example, many applications use pagination to browse large data sets; lots of boilerplate code is involved in getting this done. If you’ve struggled with sorting out pagination for your application, you’ll understand the value of having a framework that does pagination for you. Laravel makes pagination as simple as possible out-of-the-box; it avoids a lot of work by making paginated browsing second nature. This feature is one of Laravel’s most distinct advantages and lets developers avoid writing significant amounts of complex code to achieve the same results.
It is crucial to check the protection measures of any web-only application you’re considering using because a lack of oversight could result in loss of your business as well as that of your clients’. Laravel, built on the secure Open Web Application Security Project (OWASP), has been developed with security in mind. From cross-site request forgery (CSRF) to SQL injection, Laravel provides numerous solutions to ensure you and your clients are safeguarded against the most common web-based attacks such as phishing, malware etc.
What’s New in Laravel Latest Version?
Scheduled to be released by September 2021, Laravel 9’s release was pushed back to January 2022. In addition, a long-term support version is still in development; original plans (as opposed to actual schedules) had been for it to be released by September 2021 but was delayed until after a 12-month program. This delay is said to have been caused by multiple factors, including:
- Inspired by Symfony, Laravel will rebuild the new version 9.0 in 2021. This means that when it comes to using third-party plugins and modules, you’ll be able to use PHP versions 5.4, 7.0 or 7.1 to manage packages automatically and create your bundles easily distributed through packagist.
- The delay will afford the team two months to watch Laravel interact with Symfony 4.2’s new features. It also gives them time to fix any mistakes that might be present from the upgrade if anything unexpected occurs.
- Lastly, delaying Laravel 9 better positions the Laravel team for yearly future releases. With two months of additional ramp-up time after Symfony’s release, Laracasts training is ready to teach you what exactly is going on code-wise with the new version of Laravel and teach you how to use it.
For these reasons, you can see that the release delay is worthwhile.
New Features in Laravel 9
Now, let’s explore the list of the features and improvements you should expect in the upcoming major release of Laravel.
Minimum PHP Requirement
Laravel isn’t the only one to benefit from the recent advancements in PHP. With PHP 8 and using it for your development increases your output. According to this article by Zend, “Laravel 9 requires the latest PHP 8 because Laravel 9 will be made with Symfony v6.0, which also requires PHP 8”. Compared to other languages such as NodeJS or Python (those shown in orange) or Ruby such as “Soft Will Eat You Alive”, can you imagine how much time is wasted waiting for a page load? It takes 3x seconds or more! But with new language extensions making use of PHP 8 and pipelining support, they improved the time of individual function calls.
Anonymous Stub Migration
Laravel sets to make anonymous stub migration the default behaviour when you run the famous migration command `artisan migrate`:
The anonymous stub migration feature was first introduced in Laravel 8.37 to solve this Github issue. The question was how to eliminate a potential code collision, as two migrations with the same class name can cause problematic errors when trying to recreate the database from scratch, which needs to be done on occasions where all existing data and test data are cleared out.
In Laravel 8.37, the framework now supports anonymous class migration files, and the default behaviour will be to use them in Laravel 9.
New Query Builder Interface
With the new Laravel 9, type hinting is highly reliable for refactoring, static analysis, and code completion in their IDEs, with no shared interface or inheritance between Query\Builder, Eloquent\Builder, and Eloquent\Relation. One can use the query builder interface for type hinting and refactoring, but you will run into a compiler error when you get to static analysis.
This version introduces a new Illuminate\Contracts\Database\QueryBuilder interface, along with the Illuminate\Database\Eloquent\Concerns\DecoratesQueryBuilder trait, which will be implemented in place of the __call magic method.
PHP 8 String Functions
Since the latest Laravel release works in tandem with the newest PHP 8, Laravel recommends that you use the latest string functions available to work on your Laravel application.
Laravel 9 is full of new features and improvements. For example, the company \Illuminate\Support\Str class has methods to check if some text contains another string, starts with it or ends with it, which comes in handy a lot of times during app development. Most of these changes we’ve discussed will require breaking changes, so you’ll need to be careful about this when upgrading your system to the newest version.
How to Install Laravel 9
If you want to install the latest Laravel 9 on your local machine, we recommend going with this official documentation. It will tell you all about what is required to get Laravel running on your computer. What you’ll need for this may differ depending on your machine and hosting situation, so make sure to read through the document carefully before asking any questions about getting it installed. Some things you’ll likely need are a working PHP version and a web server such as Apache or Nginx holding up the laravel. Local domain name with the public/ directory containing your next big thing!
The command above will create a new Laravel project with the name laravel-9-dev and use the latest storage driver available, Redis.
Another excellent method is to use the Laravel global CLI to create a new Laravel project via the 9 terminal command. For example, to initialize a Laravel application using the dev branch, you would enter into your terminal:
Now that you’ve installed Laravel 9, you can enter in the new directory (laravel-dev) and execute the artisan command to check the version:
It should present you with the development version of Laravel 9.
Laravel is a compelling PHP framework that currently powers thousands of applications. Laravel 9 is the latest release, with many exciting new features added, including support for scheduling jobs and service providers to work in Laravel Mix for compiling SASS and CSS. We can be sure that the team behind it will continue to create goodies as this framework expands into something even more significant.
We, at Syndell, provide laravel development services. So, what are you most excited about in the new versions of Laravel? By sharing your answers with us in the comments section below, let us know. For more laravel news, Syndell is the answer!