As a PHP developer of 10+ years, large frameworks like Laravel and Symfony still bewilder me. I really have no idea why 99% of people would ever want to use them.
They add a layer of complexity over the top of PHP such that instead of learning how to write PHP, you need to learn how to write the framework.
Let's take an example right from Laravel's homepage:
Authenticating users is as simple as adding an authentication middleware to your Laravel route definition:
Route::get('/profile', ProfileController::class)
->middleware('auth');
Once the user is authenticated, you can access the authenticated user via the Auth facade:
use Illuminate\Support\Facades\Auth;
// Get the currently authenticated user...
$user = Auth::user();
As a developer, looking at that code tells me nothing. WTF is the "auth" middleware? Where is it configured? What's it doing?
Then we come to `Illuminate\Support\Facades\Auth` - another meaningless string with a seemingly arbitrary name. WTF is "Illuminate" and why is it in my code? Why do I need it to authenticate users?
So I have to go and learn all of this crap before I even begin to understand what the code is doing. And for every other thing I want to do with the framework I need to look up how to do it "the Laravel way".