(+91) 9998562168
Laravel
On a fresh install, the file count has dropped by ~ 69 files. Nice.
Check out our post on this complete new Laravel 11 Directory Structure
So far, these are just a beta preview. They might change, but as of now, here is what to expect...
Currently, Laravel includes nine middleware and many you would never customize. However, if you do want to customize them, that is moved to the App/ServiceProvider. For example:
-------------------------------------
-------------------------------------
Model casts are now defined as a method instead of a property. When defined as a method we can do
other things, like call other methods
directly from the casts. Here is an example using a new Laravel 11 AsEnumCollection
:
This aims to streamline the core of the framework since multiple classes currently have "dd"
or "dump" methods. Plus you can use this Dumpable
trait in your own classes:
-------------------------------------
class Stringable implements JsonSerializable, ArrayAccess
Laravel has a lot of config files, and Laravel 11 removes these, and all config options cascade down. The .env
has been expanded to include all the options you'd want to set.
To pair with this is a new config:publish
command so you can bring back any config you might want. Even
with bringing them back, the new cascade feature allows you to remove every option you don't want to
customize.
Laravel 11 includes a new once helper method that ensures you'll always get the same value no matter how
many times you call an object method. The once function is helpful when you have some code that you want
to ensure only ever runs one time.
When you start a new Laravel app, it comes with some default migrations from 2014 and 2019. These now will
come with the dates removed and moved into just two files.
By default, there will be only two route files, console.php and web.php. API routes will now become opt-in via
php artisan install:api
, giving you the API routes file and Laravel Sanctum.
The same with websocket broadcasting, php artisan install:broadcasting
.
Laravel 11 will include a new /up
health route that fires a DiagnosingHealthEvent
so you can better integrate with up time monitoring.
In older versions of Laravel, if you changed your APP_KEY
it could lead to broken data in the database. Laravel 11 has a new graceful rotation which will NOT break old encrypted data, using an APP_PREVIOUS_KEYS
.env variable. It will auto re-encrypt the data using new key.
The Console Kernel is being removed, and you'll be able to instead define your console commands right in routes/console.php
.
Named arguments are not covered by Laravel's backwards compatibility guidelines. They may choose to
rename function arguments when necessary in order to improve the Laravel codebase. When calling
Laravel methods using named arguments should be done cautiously and with the understanding that
the parameter names may change in the future.
Laravel 11 integrates the code behind the "eager load limit" package:
-------------------------------------
No official date is set other than Q1 2024. At Laracon EU it was hinted that it'll be the first or second week of March 2024.
This was an early decision, but Laravel 11 apps require a minimum of PHP 8.2. If you are running an older
version of PHP, now is a good time to get that upgraded.
If you use a SQLite database, then Laravel 11 will require SQLite 3.35.0 or greater.
Laravel is no longer dependent on the Doctrine DBAL and registering custom Doctrines types is no longer
necessary for the proper creation and alteration of various column types that previously required custom
types.
--dev
flag:
Keep in mind things will change from now until the official Laravel 11 release.