
Laravel 5 released - pyprism
https://laravel-news.com/2015/02/laravel-5-released/
======
colinramsay
There's an article specifically about the release here:

[https://laravel-news.com/2015/02/laravel-5-released/](https://laravel-
news.com/2015/02/laravel-5-released/)

It might be a better way to get an overview of this release as it links to
various other articles about v5.

An article specifically on the changes:

[https://laravel-news.com/2015/01/laravel-5/](https://laravel-
news.com/2015/01/laravel-5/)

~~~
bdg
Thanks. I always find the release notes far more informative than a commit.

------
rdoherty
After using Laravel 4 for an internal company tool I have a hard time
recommending it (sadly, I was hopeful). I found the docs to be uneven in
quality/scope, some key features (mostly around the ORM) missing and the
'feel' to be slightly off.

It's hard to quantify, but I have used CakePHP, Yii, Rails (0.9 through 4),
Django and plenty of home-grown 'frameworks'. From all those the most cohesive
and understandable to me was Rails followed by Yii (surprisingly).

Maybe it's the docs or structure, but Rails and Yii have a strong opinion and
it seems their developers have both CS smarts and industry experience, which
shows in the structure and code.

I'm sure in time Laravel will mature and improve. Currently it just feels like
there's a lot more hype than it merits.

~~~
mediascreen
Maybe it's a matter of taste?

I have worked with Symfony2, Zend Framework, Yii, Kohana and Laravel and find
Laravel the most intuitive to work with.

I like that you can start using it for very rapid prototyping and refactor
into more complicated structures as the application grows.

~~~
gerardnll
Totally agree. I think that Symfony2 is a pain in the ass. Laravel lets you
have something working really fast. Then you can improve the code later on.

~~~
wesray
Agreed, Symfony2 is great, but I see it being used more in an open source
project capacity. Working on it at a company where time frames are key, rapid
development is huge. Plus, laravel is far more intuitive and I can ramp up new
team members much faster.

------
saluki
If you're new to Laravel or want to learn more check out
[http://Laracasts.com](http://Laracasts.com). Jeff Way does a great job. (Just
a fan/current subscriber).

~~~
Matachines
Jeffrey Way is the best. Back at Tuts+ I'd only watch his courses—no one else
was as good of a teacher as him. Laracasts is even better.

~~~
cozuya
His 30 days to learn jQuery was a critical growing tool for me - if you're at
all interested in low-level front end JS, definitely check it out. Its free.

~~~
Matachines
That's actually the first course I took by him. I took a few of his other
HTML/CSS courses and I am doing PHP Fundamentals (to get into Laravel later)
because of the "jQuery and PHP" parts of the 30 days course. All good stuff.

------
lukeholder
Laravel represents what modern PHP can do and be. Clean, organised, fully
object-oriented. Kudos to what Taylor Otwell has created both from a marketing
perspective and technical standpoint.

~~~
deweller
I was a little scared by the heavy use of static method calls in Laravel 4. L5
has made the statics easier to ignore if that is not your thing.

But after understanding the Facade pattern that is widely used by the
framework, I've concluded that the use of the static method calls is not an
antipattern at all.

~~~
raziel2p
It really is less of an antipattern in PHP than other languages. With every
request being its own process you don't have to worry about singletons as
much, and as long as it's easy to swap with mocks/fakes/whatever it's all
good.

------
ianhawes
Having watched Laravel 5 throughout development, I'm personally unhappy with
the fact that most of the nice features of Laravel have been removed.

For example, the default version of Laravel 4.x shipped with the "Whoops" PHP
stack trace view, which is far superior to the L5-default Symfony stack trace
view. Other features were removed too, including the HTML library. Blade tags
were changed for no reason.

Overall, it feels like instead of adding requested features, Taylor decided to
redesign the architecture for no reason.

~~~
fideloper
FUD.

The "architecture" change is the bootstrap repository, which has a new folder
structure. I know, scary stuff! Folders!

The "architecture" has some enhancements to middleware and fleshing out
events/commands to a "command bus". Basically, you get more sugar on top of
the (mostly) same architecture.

Whoops caused a lot of headaches behind the scenes, and did stupid things like
convert ALL http error responses to 500, even on a 404 error (which showed up
in Whoops, as HTTP errors are converted to exceptions within Symfony's HTTP
stack).

Blade tags have one new tag, and the old ones still works.

This point might be the subjective one - HTML library. HTML libraries create
an enormous amount of support for people's edge cases and generally are better
pushed out as a third-party add on to suit your needs. The upgrade guide
explains how you can add them back in if you want.
[https://github.com/illuminate/html](https://github.com/illuminate/html)

~~~
raziel2p
That's a shitty explanation for dropping Whoops. The first time I remember the
discussion of it being dropped got brought up was because of a bug in the
framework relating to the assets, where Taylor didn't hesitate to blame Whoops
and deleted comments on Github pointing out that the problem was actually in
his own code.

It would've been super easy to add some code that sets the HTTP code for
Whoops's response if that was the problem - but the fact is you should demand
your framework users define their own 404 handlers.

The old Blade tags now escape all HTML, that hardly counts as working.

~~~
johnmaguire2013
You can easily change the config to make the Blade tags work as they
previously did. I'm unhappy about this change as well though. It's very
reminiscent of some design decisions PHP has taken:

1\. Create feature X.

2\. Users don't understand feature X, and use it when they should be using
feature Y (for safety.)

3\. Update the API so that feature X does what feature Y did, and create
feature Z that now does what feature X did.

4\. Old users using feature X incorrectly are now protected, while users who
correctly used feature X must now convert to feature Z.

~~~
e12e
Not being familiar with Laravell, having a look at[1], I see what you mean:

> In Laravel 4 Blade included the following two styles: {{ and {{{. > The
> double curly bracket was a raw echo and the triple curly bracket escaped. >
> > Now both the double and triple curly brackets escape the variable and a
> new {!! $var !!} is for raw.

I'd argue that having unescaped output be shorter/easier than escaped output
was probably a design error in earlier versions -- but I'm not sure I like the
"fix"... If it was a green-field design, I must admit I like the
"danger!"-feel that unescaped output has in L5 though.

[1] [https://laravel-news.com/2015/01/laravel-5/](https://laravel-
news.com/2015/01/laravel-5/)

------
iN7h33nD
I really like Laravel, it makes getting things started easier. I am glad I
finally have a good way to manage my assets from within Laravel so that I
don't have to deal with all of that myself every time. The only thing I find
Laravel lacking is Web Socket support and every time I tried to implement
something I would basically give up and switch to Node.js. Is there anything
that can get web sockets working in Laravel?

------
ponyous
I love the `Architecture Foundations` section in documentation [1]. I wonder
why more frameworks don't do this. It happens a lot that I have no idea where
to put files when I start with some frameworks. I am still not sure how good
it is but I am reading through it right now.

[1]
[http://laravel.com/docs/master/providers](http://laravel.com/docs/master/providers)

------
mcmillion
I tend to use Laravel when the client/project forces me to use PHP rather than
Rails. It's not bad when coming from the Rails world.

I also have a bit of pride that it's made in Arkansas. Yes, we have computers
and the internet here.

------
gude
Laracasts has a series of introductory screencasts on Laravel 5:
[https://laracasts.com/series/laravel-5-fundamentals](https://laracasts.com/series/laravel-5-fundamentals)

------
leftnode
I'm a fan of Symfony but love that there are several advanced frameworks
pushing the state of the art forward (Symfony, Laravel, ZF2).

------
brianbreslin
What are the main advantages of Laravel over say Cake or Symfony?

~~~
tapsboy
Having worked with Kohana, CodeIgniter and WP, Laravel is the reason I started
writing PHP again. Also being a node developer, Laravel feels at home with
Express(both influenced by Sinatra).

Artisan command line utility, Migrations for DB version control, Blade
template engine and the neat directory structure are some of the things I like
apart from the community ofcourse

~~~
ponyous
What is the thing you don't like about Laravel community? (or is this what you
say when other PHP devs are involved?)

~~~
marcofiset
I think that he actually likes the community. The wording might be quite
confusing but I think that's what he meant.

------
emilsundberg
More info: [http://laravel.com](http://laravel.com)

------
graystevens
For those currently using Laravel, here are some upgrade guides due to the
large changes from 4 -> 5

[http://laravel.com/docs/master/upgrade](http://laravel.com/docs/master/upgrade)

[http://mattstauffer.co/blog/upgrading-from-laravel-4-to-
lara...](http://mattstauffer.co/blog/upgrading-from-laravel-4-to-laravel-5)

------
vruiz
Looks like some links are broken. For example
[http://laravel.com/docs/authentication](http://laravel.com/docs/authentication)
redirects to ->
[http://laravel.com/docs/4.2/authentication](http://laravel.com/docs/4.2/authentication)
which is 404.

~~~
smacktoward
It wouldn't be the first time. When Laravel 4 came out, they decided the best
way to announce that would be to make all the old URLs for Laravel 3
documentation point to Laravel 4 pages, and then _take down the Laravel 3
documentation completely._

Yes. Completely. Not just "put it in a less prominent place" or "hide it six
levels deep in the directory hierarchy" \-- it was _gone,_ overnight. Poof!
Vanished.

I happened to be in the middle of a Laravel 3 project at the time, so the
sudden removal of all documentation for the version I was working with was
more than a little painful.

------
debaserab2
Deal-breakers for me with Laravel:

\- Blade templating language. I don't need yet another templating syntax to
learn, especially one that isn't analogous to others I know and are common
among other frameworks.

\- I really can't imagine going back to an active record based ORM. I've
learned too many hard performance lessons from Doctrine1 and rails at this
point.

\- Facade/proxy pattern based classes. I think as they are implemented in the
actual framework, these are done correctly. However, I think the userland
understanding of this pattern is often lacking and leads to a lot of glorified
singletons that are some how touted as acceptable because they call them
facade/proxy based.

In the giant lineup of frameworks, ranging from something as simple as SlimPHP
or silex, all the way to enterprise targeted frameworks like Zend Framework 2,
I just don't see why I'd ever pick Laravel as the go-to solution in any use
case.

~~~
JonoBB
Those don't have to be deal-breakers.

\- You don't have to use Blade. Use Twig or Smarty or whatever you want

\- You don't have to use Eloquent. Use raw queries or Doctrine or whatever you
want

\- You don't have to use Facades - use the IOC container to get whatever you
want

Its so easy to plug-and-play with composer, and there are so many other
features to laravel.

~~~
debaserab2
Yeah, at that point why use Laravel?

All the major frameworks are just as decoupled, but as soon as you start
selecting off the "native" defaults for things like templating and ORM you
lose integration features that have been built into other areas of the
framework to support that specific library.

------
whatsthatyousay
Ive been so excited about this! Though I kinda miss the call to action buttons
that they had on the old site. Scrolled down the page looking for the
quickstart button before I had a "duh" moment and clicked on documentation.

------
import
Bad to see, Laravel still doesn't have an LTS version. Upgrading is a pain.

~~~
ceejayoz
Might be a business opportunity, ala
[https://railslts.com/](https://railslts.com/).

------
dieg0
Awesome news, been expecting this since a mysterious twit last week, Laravel
is awesome, can't wait to check v5

thanks!

------
vatotemking
i dont want to depend on a framework by one person.

------
Scarbutt
Can you really write beautiful code in PHP?

~~~
coldtea
Sure. PHP, especially post 5.4 has matured a lot and offers as many niceties
as your favorite blub language. It has its warts, but at this point, nothing
worse than what Javascript has for example.

That said, while you can write beautiful code in PHP, IMHO, Laravel is not
that.

It full of "string typing", over-applied and mis-applied Design Patterns, and
poorly thought abstractions.

It just saddens me that Laravel is considered well designed and advanced
codebase, or, worse, a standard of how PHP should be coded.

While it's not as bad as the Wordpress spaghetti, it is mostly Java EE (circa
2004) in PHP, sans the strong typing assurances (and, fortunately, sans the
gobs of XML too).

On the other hand, Laravel works and has a strong community going for it,
which, as in the case of Wordpress, makes all the difference in the world.

~~~
xoe26
Can you give an example of a well designed PHP codebase?

Are any of the other frameworks (Symfony2, Zend, etc..) better?

~~~
madawan
When I tried SF2 I found it to be a terrible, Java-like, pile of abstractions.
This might work for some people, but if you prefer thinking about business
logic (as opposed to "where do I extend this IoC dependency container so that
it can find my ControllerFactory), it's not for you. It left me bitter.

Yii is supposed to be nicer, I heard from colleagues, but I left PHP
programming the moment I saw the opportunity so I can't vouch for that.

~~~
tomcorrigan
Extending the IoC container?? A ControllerFactory?? You never do anything like
that in Symfony. The thing I appreciate most about Symfony2 is how it enforces
good design patterns.

~~~
_broody
One might argue that the SOLID principles applied in Symphony and inherited by
Laravel are in fact anti-patterns which only serve to add massive cognitive
overhead. They've wrecked countless Java projects over the years and are now
going to do PHP the same favor.

There's even less reason for a scripting language with a GIL to be saddled
with this level of complexity, than there is for Java.

~~~
Gigablah
Much of the complexity in Symfony comes from its "dependency injection"
component (a misnomer, really) and the inclusion of annotation magic in the
standard framework distribution.

These days, I'd rather use the basic components (e.g. Symfony's HttpFoundation
library) with something like league/container (formerly orno/di) and a simple
routing library like nikic/FastRoute.

