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

RayRutjes's avatar

Use Laravel 5 or not yet

I think it's ok if you are ready to tweak your code some times, here is what laravel news says: http://laravel-news.com/2014/10/use-laravel-4-5/

0 likes
37 replies
Barryvdh's avatar

And this is what Taylor says (https://twitter.com/taylorotwell/status/519137693968502785)

If you do not want things to break, please do not use Laravel 5.0 until it is released. It isn’t even beta. No support will be provided.

Don't use 5.0 if you are new and don't use it on production site. As laravel-news says, just use it to test/play around a bit etc, but don't expect stability or much (official) support.

3 likes
Alias's avatar

Like above, things are changing, and things to break when you pull in a latest update.

Usually it's pretty easy to see whats changed by looking at the latest dev commits, so easy fixes, but if you're not confident with the framework yet, stick with 4.

rigwit's avatar

There have been some rather major changes to Laravel 5 the past days.. I've been playing with 5 for a while now, but with the latest changes pretty much everything broke. Good thing it wasn't an actual project with a deadline :)

That being said, Laravel 5 should be nearing beta status (if they want to do a meaningful beta), at which point there shouldn't be any major changes anymore.

1 like
Erik's avatar

I'm using Laravel 5 for a project of mine, I just manually do the changes who are made and, it work's all the time. (At least for me)

RayRutjes's avatar

Normally if you do test your code, and follow the loosely coupled principle, you will easily adapt your code depending on L5 changes. So personnaly, I would definitely start using it for long term projects, maybe not for little deadlined projects.

thepsion5's avatar

I wouldn't, personally. However, I'd start building new L4 projects with an eye toward migrating to L5 once it's out of beta.

2 likes
slovenianGooner's avatar

I've practically built an entire CMS on L5 already. The good thing about it is that even if it still changes a bit, the business logic is mostly in it's own folder so you can quickly adapt the changes to it.

Most problems come with external packages not updated to L5 yet. If you don't have that it's better you don't even bother :)

1 like
rspahni's avatar

I have been on L5 for a month now with my ongoing project (one of the earliest adopters I suppose) and up until last Friday, I would have voted for L5. After the past few days, no longer - Taylor going places with annotations and middleware (both with tremendous impact on filters and anything http related), changes of a magnitude unseen in the weeks before. In hindsight, I'm wondering why L5 was originally conceived as 4.3. Either way, my app has effectively blown up, not knowing how much L4 style will still be supported. I.e. what to do with route filters, is a current question. Not complaining at all - I'm still a happy camper bcoz following Taylor in his footsteps has offered an outstanding learning opportunity lately. If you can though, IMHO wait 3-4 weeks then jump on L5.

WesleyE's avatar

Heh, I too had to update my project a bit but not to much. My eyes hurt a little when I saw the awefull annotations in the controller, though.

Is there a roadmap anywhere for Laravel where we can view and discuss the changes for L5?

rspahni's avatar

@WesleyE - lol "aweful annotations"... I find them very easy on the eye in PhpStorm in terms of color coding - unlike the actual php code with all that aggressive color coding, just one soothing Darcula green no matter how complex the expressions. And I can close parens myself !!! Just kidding - no big fan either, or yet to be convinced to say the least. Re roadmap, "view" a matter of time (a few weeks I reckon; nothing confirmed), "discuss" in the sense of influencing, I tend to think it won't be happening [much]. I.e. I'm not under the impression that more or less mixed community reactions to date re folders, {!! !!}, annotations, or lately middleware have made much of a difference. One tweet of Phil Sturgeon's, ten times the impact. That said, obviously, it is completely at Taylor's discretion how much dialogue he wants to foster with whom and that's fine by me (if it were not, I'd choose another framework, there's plenty).

psmail's avatar

That '... not even beta ...' quote is the one that stops me. And Eric B knows what he is on about.

I also agree that those {!! !!} are on shaky ground ...

thepsion5's avatar

I think that once Laravel 4.3 got rebranded as Laravel 5, Taylor felt like he had more freedom to make breaking changes. And why not, really, I really like most of them.

2 likes
RayRutjes's avatar

@psmail I think that {!! !!} is a really good choice. Not escaping the output is very dangerous, and actually when your mixing {{ }} and {{{ }}} in your page, it is very hard to see where you might have forgotten some brackets. I actually think this is a great enhancement. Now by default every thing is escaped, and that's good.

ericlbarnes's avatar

I agree with @rayrutjes and I like it being immediately noticeable. But I've heard from a lot who do not like the syntax of {!!. The argument is it's to cumbersome to write out.

rspahni's avatar

A few weeks ago when things were still rather in 4.3 groove, {!! !!} looked like a big change. Same for folder structure. However, dealing all day today with "middlewares" f.k.a. filters, I tend to regard those things as minor side issues. I.e. totally agree with @thepsion5 - Taylor has really gone places from L5 announcements onwards. So, high time to pull the claim that I keep reading/hearing still - also here on Laracasts - that migrating from 4.2 to 5 will be a matter of one hour of work or so. Simply not true anymore, not even when using any and all upcoming "legacy" packages / service providers (which will only help procrastinating the effort and thought process).

2 likes
psmail's avatar

As an aside, when is the last time you saw a {{{ }}} in a Laracast? I ask because until the last couple of days I don't recall them coming up. And if they do they are quite rare (on Laracasts, not in the real world)

Clearly, I am not saying escaping is not important and I am definitely not saying JW has been remiss. I also accept {{{ }}} are front-and-square in the official documentation. I suppose I am raising this because escaping content seems to have become more important - in this forum - rather quickly. Maybe that means somethings. Maybe not.

RayRutjes's avatar

For the sake of brevity, @jeffreyWay avoids writing {{{ }}} in each of he's casts. The nice being that now those same casts will be secured.

JeffreyWay's avatar

Yeah - this update has turned out to be a lot more massive than I expected.

@psmail - Depends. In plenty of cases it's not necessary. If I control the data, then {{ }} is fine.

bbloom's avatar

I agree with @rspahni. With the changes over the past week, I have not been able to convert my app to L5, so I am waiting for things to simmer down.

Great comments in this thread. I've been wondering myself if the change from "4.3" to "5.0" has become an impetus to put changes into L5 that were not contemplated when it was L4.3. Now I do not wonder that one thing is leading to another.

Personally, I am digesting an enormous amount of learning, and pushing very hard to become a very skilled professional specializing in Laravel. I am in month 6 of my journey, and progressing very nicely. I come from Joomla, so I do have a lot of learning to achieve! Yet, the existence of this site, and its enormous deserved success, suggests that I am not alone.

The idea that, regardless of the next semi-annual Laravel version be called 4.3 or 5.0, the November release would be a gentle progression of the framework set up the expectation that the Nov release would be a gentle progression of the framework. A month away from the scheduled release and the release is not going to be gentle. This has caused, how do I put it, "dissonance".

Until a week ago, converting my app from 4.3 to 5.0 was going great. Five attempts later over the last week I've given up. I was using the conversion process as an excuse to refactor based on the new FormRequest feature. Now FormRequest looks like an appetizer to a slew of new features.

I come from Joomla. I made a significant investment in Joomla based ecommerce software built from the ground up in Joomla 3.2 and using the secret sauce of Joomla development that is called "Framework on Framework". I abandoned Joomla in April due to changes in their versioning policy. Seven years of Joomla, at the peak of my Joomla skills, an executive of my local Joomla group, kaput, because of messing around with the versioning. I have podcasts and blog posts (blog based on my new L4.2 app --> on deck to present it at next Toronto Laravel meet-up, we'll see) about what happened.

So what next to specialize in? Laravel offered a really really good Value Proposition that included professional management of its versioning. Laravel had settled down with its version 4 series. From version 3 to version 4 was a lot of angst and pain, but the changes seemed mandatory for a modern PHP framework. With that done, version 4 changes would be incremental. Bottom line: version 4 series would be stable.

I wrote a brief post called "Music to my Ears". Linking to my own site on this forum is rather self-serving, but allow me the liberty of linking to the LaraCon 2014 Keynote screen capture of the Laravel version road map: https://www.southlasalle.com/assets/images/laracon2014_keynote.png

Scheduling Laravel releases with the semi-annual Symfony releases seems very sane.

The Laracasts series on Laravel 4.3 really impressed me. Well, not just the videos! But the fact that the changes seemed really thought out. And, programmed into the repo so far ahead of the Nov release that Jeffrey could run an entire series of videos on it and still be two months-ish away from the actual release. Then, Jeffrey started updating his packages for the upcoming Nov release.

I was so impressed with the version management. That I would be given the opportunity to really understand the changes well before the release, that the new features were "in the can" months before the release, and they really did what they said they would do! Very impressive.

I know that there is a big world out there, and it is changing fast. A lot happens in six months. But that is why professional version management is so valued. My apps need more than six months to achieve RoI. Don't yours?

I expect Laravel to change. Profoundly. I want my apps to change with it. The professionalism of Laravel's Change Management is so impressive that I look at the future with confidence.

Version release dates are set. The changes are planned ahead and put in the repo three months ahead of the release date. The focus becomes education and refinement/testing after that. This is world class industry leading professional change management. That it is done in the face of external pressures to change faster makes it even more impressive.

I am highly resistant to the new changes. Not because I hate change, but because there are too many profound backwards-compatibility breaking changes being compressed into a too-short timeframe.

It seems to me that professional change management has given way to temptation. The pressures are great, including what I am sure is an underlying feeling that six months is too great an interval for Laravel version releases. Perhaps it is the fore-knowledge of what should be in L5.1 that is "back-pressuring" these sudden profound changes in L5.0.

It is not a character flaw to give into temptation. I perceive that one thing led to another. The "app/Http" folder is probably the result of a very long contemplation of implementing profound changes, so once it was included in the repo, it became very hard to implement all those changes piecemeal.

I want to advance with the pace of overall change in the PHP world and love that Laravel is on the forefront of this change.

I want to understand all the changes. I want to learn the intricacies of all the changes. I want to understand why these change that are disrupting my development are necessary. Then I want some lead time to get my growing codebases converted before the official release.

Laravel's impressive professional change management has made quite an impression on me. Keep up the fabulous work.

Why not revert 5.0 features to previous what was a couple of weeks ago before Middleware and annotations. Keep the original 5.0 release date so late changes in Symfony can be included in the 5.0 release.

Then, do a one-time three month release cycle. Start a 5.1 branch since a lot of the code exists already, and release it on Valentines Day?

Usually, we would have a longer lead-in to all these features. There would be a discussion on the Laravel podcast of what was being contemplated. Then chatter on Twitter and posts on this forum. Then we'd see the code on GitHub, then Laracast vids, then wonderful articles would pop-up -- thank you to everyone who writes those articles! -- then people would start using the new dev branch spurring a round of PRs and usage feedback.

Why not do this for annotations and middleware? If it is not practical to do so, delay v5 until Xmas eve (I know, nothing else to do), so the change management steps can occur.

Cut off changes early. Start a 5.1 branch that has changes that are important to get in early, but are not "core" for 5.0. Release 5.1 on Feb 28th. Then, on to the usual semi-annual release for what will be L5.2 in May 2015 when Symfony 2.7 is slated for release.

So, yes, let's roll with the punches -- let's get these changes into Laravel. Let's do it with the exemplary change management that is as impressive as Laravel itself. Just tweak the release schedule a bit to accommodate these recent changes.

Thank you for providing a forum with which to make these suggestions.

Also, please excuse my lack of editing.

rspahni's avatar

@bbloom, this suggests that the community has a say - and it may have, but I doubt it. We can however always vote with our feet, i.e. stick to 4.2 stable or move on to, say, Phalcon or Fuel. My sense is, L5 is being targeted "on average" at a more senior / experienced / architecture-oriented community than was L4. The original philosophy of "expressive, elegant, and accessible" (I quote Laravel.com) losing priority. Totally at Taylor's discretion - his baby, his IP, period. But - just logical reasoning, no market research involved - I'd expect the L4 market segment to be bigger than the tentative L5. Simply bcoz senior folks who get easily impressed with all that architectural brilliance are usually not using frameworks anymore, only their own and/or loosely coupled components. And non-gurus, which I believe are the bulk of framework users, will clearly have a harder go at L5 than L4. I.e. @JeffreyWay's upcoming video on middleware [term rather non-expressive] likely 3x harder to swallow than old ones about filters [expressive, tick], both of which lend themselves to exactly the same thing for the majority of projects/people that are focused on real-life impact. Annotations a rather hard sell, too. I don't mean to be whining here - again, Taylor's baby. I might simply decide to finish my ongoing project back on L4.2, keep it that way for a minimum of 12 months then check on L5.x.

psmail's avatar

I too am a little concerned that Laravel is changing so much, despite a Laravel IO podcast suggesting that it was due to settle down.

Phil St raised this concern about Laravel some time ago. I thought he was wrong. Now, I'm not so sure he was.

HRcc's avatar

I still can't understand what's the point of all these threads about L5 rapidly changing in beta state. Play with L5, explore it, discuss it, but don't you think that trying to convert more or less finished L4.x projects into WIP L5 projects is a bit irrational? You should start doing that after the release. Even starting a new project in L5 doesn't seem like a good idea.

If we weren't granted this sneak peek into current state of L5 and Taylor just released the finished version of L5, I'm pretty sure, that it would save him a lot of headaches.

Yes, some changes are huge. I don't like a few of them, but I can imagine how most of them are beneficial in the long run. Maybe it will result in difficulties for newcomers, but at least they have the best learning source they could wish for. But I really think that we should just wait for the release to see finished features and how it all clicks together.

1 like
rspahni's avatar

OK @HRcc agree with you, let's rest the case and carry on. For what it's worth, after simulating a port back to L4.2 for the past 2 hours, I have decided to stick to L5. Primary reason: Namespacing / PSR-4. I hadn't even thought about this anymore. All those includes and lower-case named php files in L4.2 don't click with me anymore after 6 weeks on L5, and migrating back then forth to fully namespaced would be a nightmare. So I'll take the liberty of adjusting my project timeline by a few weeks and meanwhile focus on frontend matters etc. On "alpha" - if the release date is still on, we're < 8 weeks away from it, so I'd expect alpha to be about over, as well as Taylor's creative outburst. Or I'll vote for L6 following Win10 example! :)

psmail's avatar

@HRcc - I am with you regarding the beta status. Things are supposed to be changing. I am not on it, this is not my concern.

I think three things concern me.

One, is that this was originally going to be a point release. Now it is so not. And I mean this in the sense of incremental change vs material change and not just the numbering system. How often should a framework change so materially?

Two, 3 to 4 was a leap. And now 4 to 5 looks like it is going to be. Again, how often should a framework change so materially?

Three, I currently have production apps on 4.2 and I am getting the sinking feeling that upgrading is turning from a day or two of work to ... I don't know ... quite a bit more.

OK, that's it for me. But while were at it, doesn't JW have an interesting dilemma on his hands; how many 4.2 and less Laracasts are not applicable to the new world order? JW ... if you are reading, assume a smiley face.

2 likes
HRcc's avatar

@psmail I see your point. I'm sure that people didn't expect such massive changes a few months ago and maybe that's the reason for all these talks.

Regarding the change frequency... is there really an answer for your question? :) Pretty much every technology nowadays changes quickly. It took some time for PHP to get rid of that silly'n'slow-ugly-macaroni-code label. We are able to produce really nice and readable code now and Laravel lets you do it so easily. Every major change can be a nuisance but after some time when we start creating new projects with L5 this won't matter at all.

Don't get me wrong, I am perfectly happy with L4.x and I could use it for another year no problem, but there is already some crispy stuff in L5 that's worth the upgrade for me.

psmail's avatar

@HRcc - I think we are in general agreement, so when I say this next thing, please don't think I am getting my back up. But I am keen to pick up on your point about the spend of change.

L4 will have been around 1.5 years when it updates to L5. L3 lasted about a year and two months.

Rails, by comparison, has a major release about every 2-3 years (it is getting longer as it is maturing). Django turns over much more slowly than both - but too slow a turn over is a bad thing too, I realise.

Yeah, maybe I am nitpicking. But this just feels like a really material change (4 to 5) straight after a really material change (3 to 4). I wonder if - again, for comparison only - Rails 3 to 4 was this big a jump.

I'd ask, perhaps controversially, is L5 becoming subject to scope creep? Again, I base this question on the fact that this was initially going to be a point release.

sitesense's avatar

To be fair though, PHP itself has also changed a lot over the last 3 years. Back in 2012, 5.3 was still mainstream, in 2013 5.4 was commonplace, now we're on 5.6!

I think (hope) things might settle down a bit now and with any luck, L5 should be a longer term solution.

bbloom's avatar

I just read a GH reply from Taylor that told someone to "quit whining". Taylor talked to Jeffrey on a recent podcast that they are from the US south and they do not "honk". I think that he just honked.

I am not "coding happy". I am "coding frustrated". And I am not alone.

There were expectations that this would be a gentle release. No big deals. Changes were made, and the community eagerly educated themselves.

The reason for calling this upcoming release to "5.0" is to align with semver (http://semver.org/), if memory serves.

Now, even Jeffrey commented that the changes are more "massive" than he thought they would be. If Jeffrey Way is caught offguard, then why should I feel circumspect about vocalizing that I feel "dissonance" about what is transpiring vs what expectations were built.

The people in this forum are smart, and are dedicated to Laravel. If they expected L5 to be a moving target, I am sure they would have held off developing with L5.

Didn't Taylor say "I manage Laravel like it is a product"? Taylor just seemed to "get it".

Yes, it is alpha and beta and gamma software release. Yes it can change. However, expectations were set of a gentle. The change management was proceeding impeccably and impressively.

Now, it's a "breaking release". Which means that until the thing is released, it's a waste of time developing with it.

The one thing that Laravel.com does not have is a blog. May I suggest that Taylor start a blog on Laravel.com. Then we will have one place to go for road maps, release schedules, etc.

It would have been beneficial for Taylor to do a blog post saying, "Look, I know 4.3 was supposed to be a gentle release. I know I decided to rename this release 5.0 to align with semvar which I think is overall better for the project. I know that there is a lot of development that has started on L5 in the expectation that this release will be gentle. However, I want to take it on a new direction. I want to do this and this and this and that and that and that now, and accomplish it all for this release. The reasons are this, that, and the other. I know this is more disruption for you than we had in mind, but in the longer term we should experience less disruption by virtue of not delaying bringing these features to fruition now. Furthermore, over the next two to three weeks I expect the GitHub dev branch to be unusually active. During this period, you should hold any L5 development in abeyance because successive commits will likely break existing commits."

Then no one would be whining, and when someone did, there'd be replies of "go read the blog post". Personally, I'd have hailed the announcement, probably not resist any of the changes (not sure of annotations, but looking forward to the Laracast!), and not bother with these posts in this wonderful forum.

Anyways, I've said my piece, I've been following twitter and the unusually high number of GH notifications. I need to get back to work!

HRcc's avatar

@psmail Consider for example the situation around Ember on the other hand - Ember Data, Ember CLI, breaking changes and deprecations all the time. Sometimes it was just too frustrating and one day I just switched to Angular completely (at least for now). Compared to that Laravel is very stable. But yeah, I guess it all depends... Each developer has his own comfort zone.

When you take into consideration, that it should have been smaller update, it might seem like it and maybe it's even the case (and the reason to bump it to major release), but that's probably because we can see the development process. Given that I am presented just the final version of L5, I'd enjoy new features as always, adapt here and there and that's it. All in all, this mood of we-can't-use-WIP-proudct-in-production seems inappropriate. Actually this thread could just simply be /topic.

JeffreyWay's avatar

Taylor has not indicated that Laravel will now follow semver. At least, not to my knowledge.

For him, it must be a very, very difficult line to walk. Think of it like this: do you want Taylor to make decisions that aren't in the best interest of the framework, simply to be more gentile, as you put it? As an example, if this new middleware represents a big, but breaking improvement (unless you pull in a BC provider), do you want him to not go through with it? I certainly don't.

And, there's nothing saying that you can't stick to Laravel 4 for a project (though I understand the desire to upgrade).

Next

Please or to participate in this conversation.