One of the most significant changes in the update is the overhaul of the application framework. Half of the folders within the main project directory underwent minor to major revisions. I’ll briefly explain each of them.
Laravel 10

Laravel 11

“app” directory
From now on, in the /app folder, you will find only:
- ./Http/Controllers
- ./Models
- ./Providers – partially slimmed down
Changes related to Middleware, which were previously located in the app directory, as well as adding new ones, will be done through the file bootstrap/app.php. The same applies to the kernel.php files, which have been removed from here.
<?php use Illuminate\Foundation\Application; use Illuminate\Foundation\Configuration\Exceptions; use Illuminate\Foundation\Configuration\Middleware; return Application::configure(basePath: dirname(__DIR__)) ->withRouting( web: __DIR__.'/../routes/web.php', api: __DIR__.'/../routes/api.php', commands: __DIR__.'/../routes/console.php', health: '/up', ) ->withMiddleware(function (Middleware $middleware) { // }) ->withExceptions(function (Exceptions $exceptions) { // })->create();
“database” directory
Migrations have undergone significant changes. Some related tables have been placed in the same migration file. The migration related to tokens for API endpoints has been hidden behind the artisan command api:install. Additionally, the default migration names have been changed so that they always come first. Instead of dates, they are now numbered. However, migrations created by the developer remain unchanged and still consist of timestamps. The last change, not directly related to the folder itself but to databases in general, is switching the default database driver for the application from MySQL to SQLite.
“routes” directory
From now on, Laravel will, by default, only handle web and console routes. If there is a need to use API routes or broadcasts, they can be initiated using newly added commands, which will install necessary dependencies, create migration files, configuration files, routes, and update the project accordingly.
//To initialize api routes php artisan install:api //To initialize broadcast routes php artisan install:broadcast