Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

thomaskim's avatar

I've had basically the complete opposite experience.

Laravel has greatly simplified the Web development process . Before Laravel (and Laracasts), building basically anything Web-related used to be a huge pain. Also, despite making things simpler, I actually learned a lot more in my first year adopting Laravel than basically my entire web career (before that) combined.

4 likes
atilkan's avatar

I understand your concerns. I felt the same things when i started. I re-watched many times. You feel like you have to know what are all those packages, plugins, command line tools. But actually you don't need to know all of that. Most of the time you only use one command for one package.

This is the problem with developer community, everyone has to name their little code block. The same problems are in the science community too. Forex: Paleontology. They gave same dinosaur too many names. They are filtering now. Looking at javascript community, there are dozens of plugins. This is a problem with people being egoist.

Having said that. Jeffrey's videos are sometimes really not simple for beginners. He jumps many screen, uses many shortcuts you don't know what to do. And command line. It feels like you are smart if you use it. But not easy to follow for beginners. What if you had a problem and thinking that you are beginner, you are lost in the forums for why homestead doesn't work like on the screens. Jeffrey is a great teacher actually you just need to get use to him. Jeffrey himself gave a speech about "too many tools to learn". PHP is not a good language, but Laravel fixes that. There are also easier video tutorials on youtube for starter. But videos are bad. Read books instead.

I think it is not good to bloat features like Laravel does. I like faster, smarter and small solutions without giving it a name. I am currently using Golang and searching a framework. My reason for Modern Development. I wish that Laravel switched to Golang. That would be awesome.

1 like
Dracool's avatar

Wow so many cool replies. Thanks guys. I took a week and half off Laravel and thought about it. I like CI because I haven't worked on a big project, or even a medium project and it feels like I'm in control. The biggest projects I've done are a blog and a mini-warehouse application for a small business.

Laravel is too awesome for me at this point. This is what I've come to realize. Its not the language, community or the documentation. Its just that it forces me to learn too many new things because of my lack of skills / understanding in PHP. I just learned MVC in CI a couple of months ago and I came into laravel thinking "I already learned MVC, so this should be piece of cake". Like I said, I made wrong assumptions coming here and thinking I'm so hot.

I'll start again from scratch. Also @skliche thank you for that "composer install laravel 5.0". I got angry primarily because the files in my laravel were so different and got into so many problems right from the start. I will definitely try this again!

1 like
MikeHopley's avatar

Good luck! I'm sure you can do it. Just give yourself some breathing room and learn new things when it's the right time for you. :)

1 like
RichardMX's avatar

When Laravel seems overwhelming it's mostly because the lack of understanding on PHP OOP.

I had a similar problem a few months ago thinking that Laravel had a big learning curve. After failing at understanding what was going on I started researching a bit about all those "use", "namespace", "traits", "interfaces", etc and i found that the problem was me thinking that i knew PHP because i knew my way in CodeIgniter which is old-school PHP and has nothing to do with modern PHP development. So i got a couple books: "The essentials of Object Oriented PHP" (leanpub) and "Modern PHP" (Josh Lockhart) to catch up what i was missing.

Then i got back to Laravel and now i can follow tutorials and have a better understanding about what's going on. Right now i'm with Laravel Beauty (leanpub) and practicing every single day. Learn to have some patience, it pays off if you are really determined to become a pro developer.

2 likes
Kerimg's avatar

If it takes a year to be productive with Laravel, it's a pretty bad framework.

EDIT: I don't mind all the dependencies but what bothers me is the insane amount of magic. Try to follow the commands that get executed when logging in someone. You'll find yourself on an endless trail of classes, facades, interfaces, etc.

4 likes
SaeedPrez's avatar

If it takes a year to be productive with Laravel, it's a pretty bad framework. EDIT: I don't mind all the dependencies but what bothers me is the insane amount of magic. Try to follow the commands that get executed when logging in someone. You'll find yourself on an endless trail of classes, facades, interfaces, etc.

@Kerimg There's a big difference between learning/understanding how to drive a car and understanding/learning the science behind how to build a car. There's a lot of magic involved when your understanding is limited, like you press a pedal and the car starts moving and goes faster and faster.

1 like
pmall's avatar

I don't know why people underestimate how hard it is to create a decent website. If one thinks he can go from zero knowlege of web to a decent website in a few weeks he's absolutely wrong.

6 likes
ohffs's avatar

I remember the first program I ever wrote - it just printed my name in an infinite loop (it didn't even have unit tests or use the repository pattern - the shame!) ;-) I sometimes feel people have more of a tendency to want their first program to be Facebook :-)

I guess, in a way, in a world where making a computer print your name on the screen was actually impressive - it was maybe an easier place to learn. I remember when javascript first appeared and being really pleased with myself when I made a bit of text change by itself without having to re-submit the page to a perl cgi script! Amazing! ;-)

I think, maybe, if I'd been born more recently and the first applications I saw were amazing real-time web apps distributed across continents I'd have been a bit more impatient.

1 like
SaeedPrez's avatar

Unfortunately, impatience is something we see more frequently these days, people want the rewards right away, no one wants to actually put in some good old hard work to learn and earn something.

I've been programming since ~20 years ago, I took a break for a few years, and now I've been sitting literally day in and day out for the past year just to catch up with all the changes since I was last active and I still feel like I'm lost half the time.

I understand and accept that I still have a long way to go, but the more I learn, the more I enjoy programming again and the more I appreciate this wonderful framework.

1 like
jlrdw's avatar

@SaeedPrez funny you mention that I have been programming for 30 years. What's funny that for a test I installed the latest Java ee, some of my old java 1.4 ee still worked. Of course Java Technologies maintains a further back compatibility. Likewise I recently installed Microsoft Access 2010 on a new computer and lo and behold my office 2000 stuffed worked. So the single thing I strongly dislike about PHP in general is backwards compatibility issues. Funny oh if you look into PDO yes changes but not drastic over the years. Technically someone could use an MVC framework as a shell and still use PDO that was written many years ago. Just have to deal with namespacing, dealing with errors, etc . Likewise just because a framework has authentication built-in no one forces you to use it you can still write your own and other things like that. In fact I write my own. And I have written many of my own custom pagination routines.

1 like
leolam2005's avatar

I got your feelings. At the beginning, I hate laravel as much as you do.

It was like "Damn! why talking about so much things I don't understand?"

There are few times I really want to throw Laravel away because it is just so overwhelming.

Everything Jeffery teaches me here are completely different from what I learnt back in University. I feel disappointed, completely frustrated, hopeless and feel so small.

But every time I get cool down, I look back. Damn, Laravel really has beautiful syntax and why the hell Jeffrey can write the code 10 times fewer than mine?? Oh yeah, I am gonna master it. I take 4 months to learn every episode on laracast on my full power.

Now? I am deploying the first ever P2P Loan platform in my country using Laravel and Vuejs. My boss is gonna be thrilled.

jona777than's avatar

Hey @Dracool , I'm curious how things are going 7 months later. Assuming you are still using Laravel, you must have a little better handle on it now. Any change of opinion about it since your first post?

2 likes
sunergetic's avatar

@Dracool It took me about a year to get a good understanding of how Laravel works. I jumped on the ride when Laravel was on version 3 and i can relate to how vague Laravel seems. I share the same background of codeigniter.

What really made me appreciate Laravel is when i started to make actual projects, and there was a great community (even back then) backing it up. Everytime i got stuck, i went to the forums, and most of the time people helped me on their spare time, which is great. You won't find something like that on any other framework just like on Laravel.

About your point "Being dependent on so many packages". It's not a bad thing at all. Most of the packages are build by a team who focusses on building a packages for one specific functionality. My best example is https://github.com/briannesbitt/Carbon . It's package for working with dates, Now because the community made this, nobody has to reinvent the wheel, isn't that great?

Also because it's not baked into the framework, so you can easily swap out components for others ones, which is the whole point of the packages :)

elasticsteve's avatar

If it takes a year to be productive with Laravel, it's a pretty bad framework.

EDIT: I don't mind all the dependencies but what bothers me is the insane amount of magic. Try to follow the commands that get executed when logging in someone. You'll find yourself on an endless trail of classes, facades, interfaces, etc.

I began with Laravel 6 months ago and try to learn it every single day. I'm very frustrated how long it takes and I feel like I still don't know enough. I began coding about 2 years ago with HTML/CSS/PHP/jQuery and had my first medium sized project up and running within months.

When I began with Laravel I somehow had the illusion (because a few people actually made the absurd claim you can learn this in days!) that I would be ready within weeks. Boy was I wrong! I understand that my lack of OOP is requiring extra time, but OOP aside, there is still so much you need to learn and understand in Laravel. ServiceProviders, Containers, Middleware, Elixir, Eloquent, Artisan, Vagrant/Homestead, Events, Jobs, hundreds of methods, Facades and helpers (how the hell does anyone remember them?) - it's a total nightmare!

There is a part of me that almost hates Laravel right now. There is nothing easy about it and millions of ways how you can solve one and the same problems. That you have different helpers and Facades all doing the same thing in different ways, doesn't make things easier! Apart from that, it's very difficult for a beginner like me to get a picture how you would approach a real-world project with Laravel.

Most of the tutorials never deal with the things you actually need. Taylor adds a basic auth system, but it doesn't even verify the email address (sending email to user to verify if email exists before activating account). There are no examples for Ajax requests anywhere and how you would authenticate/authorise users. Nobody tells you if you would use the api.php or web.php for such a thing! These are really basic things, before we even need to talk about Queues and broadcasting! I would love to see the code of a real world medium sized project and would even be ready to pay for it to get at least some kind of idea of how certain things are done.

I have a relatively big project I'm about to begin, and I still carry some kind of hope that all this suffering with Laravel will pay off one day! But right now, I'm not in a good mood! On top of all the Laravel pain I'm also learning Vue2. Same again! jQuery took me a few days to learn and I could do anything I needed in my first project. When Jeffrey says "it's so easy!" I can't always see it. Sometime his examples of components within components and the way they talk to each other takes me ages to figure out! There is nothing easy chasing the flow from one layer to another to another to another and then not remembering where you were a minute ago! Same in Laravel. At one point you have 20 tabs open from clicking through and your head is spinning!

Vue2 is another one of these things I thought would take much less time to learn. When you come from PHP/javascript/jQuery with little OOP background you are ready for a world of hell that will take at least a year if you want to go down the road of Laravel+VueJS.

I have already invested too much time in this, so I will sit it out and pray I made the right choice. Right now I feel I can't even do the most basic things I need for my new project. I guess I will learn eventually by doing it, but I feel I have no clear picture of how certain things should be approached. And this after 6 months doing nothing else every single day! Doing all the tutorials at Laracasts and reading official docs doesn't feel to be enough if you don't have a good background in OOP or other frameworks.

I just want to tell people like me, who are relatively new to coding, how hard it actually is, because some of the people here (who are obviously doing this for a long time) can make it sound like you can learn Laravel in a day or at least a week. Yes, you can learn what Routes are and have a Controller saying "Hello World!" in a few minutes. So what? But how soon can you do a full blown app with user management, printing invoices and an admin system, understanding how to deploy Laravel on a real server etc? We have tutorials about Echo and real high-level stuff here on Laracast, but not one damn tutorial how one would make a simple pdf with Laravel to print things for customers that everyone needs. I haven't seen one example of uploading files to S3 with a progress bar. Ajax and/or form upload. Where are all the basic things everyone needs to get started? Maybe you all know that shit, but I don't!

Things are definitely getting more complex every year! Wow! It feels like everything is speeding up all the time. And by the time you think you understand something, a new version is coming out - again!

Ok, I feel better now after my rant! I posted this very long post mainly for people who go through the same thing like I do, so they know they are not the only one suffering! So that they know this shit is NOT easy! Back to the Vue2 tutorials! :)

PS: I wish Taylor would slow a little bit down with the updates! ;) Twice a year? That's a lot! Especially keeping track of all the changes that are outside the Vendor folder (laravel/laravel)! You have to go manually through every single file and merge it with your projects! This really sucks! I just got around dealing with 5.3 and now 5.4 is almost out again! :/

1 like
zachleigh's avatar

@elasticsteve

You have to go manually through every single file and merge it with your projects! This really sucks! I just got around dealing with 5.3 and now 5.4 is almost out again! :/

You don't have to do this. Simply follow the upgrade guide posted in the docs. I got from 5.2 to 5.3 in around half an hour for a relatively large project. Another, slightly smaller project took only 15 minutes or so.

2 likes
ohffs's avatar

@elasticsteve I've also found a lot of tutorials around the web are pretty annoying for learning Laravel. Especially as they are often posted without a date or version so you can find you're following a tutorial that's for a years-old version.

I originally learned from Dayle Rees' book 'Code Happy' and it's follow-up. I think you might get a lot of value from Matt Stauffer's new one 'Laravel Up and Running'. Books tend to be a lot more consistent and 'flow' much more than trying to pick things up via snippets, blog posts etc.

I learned (a little!) of Vue when it was quite new and didn't have as many 'things' to learn about. I think if you ignore all the component, vuex, blah stuff and just use it like a plain two-way-binding-made-easy library you can get the hang of it pretty quickly. I've only ever made one component with vue after using it for a year or so - but I still get great value from it for replacing a lot of things I'd previously done with jquery :-)

I do find the churn on the framework to be a bit annoying. I was sitting with someone this week working on a 5.3 project (the first time I've really had to look at 5.3) and was sitting sighing to myself 'ah, right, authentication has changed again...'. It'd be nice if there was some roadmap and/or explanation of why things change - but I'm not going to complain too much as it's still vastly better than doing it myself ;-)

jlrdw's avatar

Don't get laravelmatized, a bunch of the tools and other stuff are completely optional I myself use laravel 5.1 and I have stuck with jQuery when I need a little JavaScript or Ajax and all is fine.

1 like
jlomoglio's avatar

I am starting to absolutely hate Laravel. Just trying to modfy the login is a nightmare and all the tutorials SUCK!!!!

The overall architecture is horrible, not everybody wants login for the entire app, Im building a website and it has a backend, that backend is the only part that has users, not just an admin, but other types and the login is only for the backend, but trying to accomplish this is truly a nightmare. And when I search for tutorials on it, I constanly get outdated versions. I choose to use 5.3 and there is simply just no good info out there for this version. Laravel is great in theory but fails in practice, unless your building a basic website that fits into the Laravel structure. I'm sick of the constant redirect issues, /home is hard coded in way to many places after doing "php artisan make:auth" - thanks for deciding for me that that's how I want it. Docs suck and so does the framework.... Arrrggghhhhhh!!!!!! a complete 3 weeks of my life wated trying to simply get the login to work. I could have done this in a few hours just doing in in PHP w/o Laravel.

topvillas's avatar

"I could have done this in a few hours just doing in in PHP w/o Laravel"

Do that then.

7 likes
ederson's avatar

I don't know laravel in depth (i can't even easily use events!!) i am a novice php programmer and it took me a few hours to get login to work as i wanted it.

maybe it is not laravel the problem here

shez1983's avatar

in 5.2/5.3 - you dont even need to use login, and when you do it publishes the files in your view directory so you can change the templates..

it is trying to cover the most basic scenarios so for majority of us login functionality is very easy to implement - thats the point MOST of us, if it catered for everyone then not only would that be impossible but also the codebase would be huge!

i often get frustrated whilst working with Laravel and most times when I resolve the issue, it is more often than not MY fault.. i am still learning..

J_shelfwood's avatar

If you're expecting a framework to be easy from the start you are wrong, very wrong. Laravel depends on alot of conventions which are hard to grasp at first depending on your experience.

For me Laravel was the first time i started using classes and such so I just accepted everything as it was without thinking too much about it.

If you really want to get into a framework, you'll have to accept a bunch of new stuff to understand why certain choices are being made. That is the difficult thing, atleast, that is what I learned from switching over to Asp.net core for school.

jekinney's avatar

Sorry people! The example frustration of login is pretty silly:

if(auth()->attempt(['email' => $request->email, 'password' => $request->password])) {
    return view('someview');
} return back()->withErrors(['failed', 'Your credentials could not be verified']);

If passes, logged in if not return error. Really can't be more simple.

if(auth()->attempt(['email' => $request->email, 'password' => $request->password], $request->has('remember)) // add remember to keep user logged in {
    return view('someview');
} return back()->withErrors(['failed', 'Your credentials could not be verified']);
if(auth()->attempt(['email' => $request->email, 'password' => $request->password, 'active' => 1], $request->has('remember'), $)) // Check if account is active{
    return view('someview');
} return back()->withErrors(['failed', 'Your credentials could not be verified']);

It's almost "I expect a cms" argument, the auth scaffolding is apparently an abomination that probably should be left out, wait it is you have to run make:auth...

Sarcasm aside, I 99% of the time don't use the default auth.

class LoginController
{
    /**
         * Show the application's login form.
        *
        * @return \Illuminate\Http\Response
        */
     public function create()
        {
            return view('auth.login');
        }
    
    /**
        * Handle a login request to the application.
        *
        * @param  \Illuminate\Http\Request  $request
        * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\Response
        */
        public function store(Request $request)
    {
        if(auth()->attempt(['email' => $request->email, 'password' =>   $request->password, 'active' => 1], $request->has('remember'))) 
    {
        return view('someview');
    } 
    return back()->withErrors(['failed', 'Your credentials could not be verified']);
}

    /**
        * Log the user out of the application.
        *
        * @return \Illuminate\Http\Response
        */
        public function destroy()
        {
            auth()->logout();

            session()->flush();

            session()->regenerate();

            return redirect('/');
        }
}

@jlomoglio auth login in less then 5 minutes.... just saying :).

endian's avatar

It's understandable that not everyone likes Laravel.

Laravel is a framework which is used for delivering your app. It's not your app. If it's starts getting in the way, the it does not make sense to use it. I personally use it for quick prototyping, but when you know exactly how your app is going to be, it's a much better choice to start with a micro-framework and add the parts you need, then to start with a huge framework like Laravel and remove what you don't need.

1 like
endian's avatar

Serious has in anyone who constantly wants to improve their craft, read different points of view, etc.. etc...

Some devs don't care about programming as much as getting an app done. That's fine too. Some devs are more serious and really want to learn programming, create usable framework-agnostic code, etc... etc...

endian's avatar

Don't get me wrong. Laravel is an excellent tool for prototyping. You have everything out of the box. It's like an Arduino for hardware. I'm just saying serious engineers don't use Arduino for production (only prototyping).

Once you figured out your project's design, you start again from bottom up only adding the librairies and features you need. Tools like Laravel and Arduino start you with tons of stuff your final project won't need, but that's why those platforms are excellent for prototyping.

MikeHopley's avatar

Tools like Laravel and Arduino start you with tons of stuff your final project won't need, but that's why those platforms are excellent for prototyping.

Except that for the vast majority of projects, there is no harm in keeping the "tons of stuff" in Laravel that you're not using.

Seriously, no harm at all. It makes bugger-all difference to performance in most cases.

1 like

Please or to participate in this conversation.