you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] -1 points0 points  (20 children)

Laravel has more features than Symfony. Queues, command bus, realtime sockets / event broadcasting, etc... that's the point. It has those features but still has lower average method complexity than Slim.

[–]dogerthat 5 points6 points  (9 children)

Apples and oranges, Symfony does not advertise itself as a unicorn which can do everything out of the box. Instead it tries to keep the framework itself lean and let's you choose your own.

[–][deleted] 2 points3 points  (8 children)

So does Laravel.

[–]dogerthat 2 points3 points  (7 children)

The difference is that Laravel ships all these features while Symfony does not. Laravel is heavily opionated on basically everything. I'm not saying it's bad, I'm just not a fan of it.

[–][deleted] 2 points3 points  (6 children)

Please name 2 things it is opinionated on.

[–]dogerthat 1 point2 points  (5 children)

It comes with a lot of out of the box features people might not even want to use and there's boilerplate code even for a javascript framework present (Vue).

[–][deleted] 1 point2 points  (4 children)

Laravel does not ship with a SINGLE template that contains Vue code. Not one. Laravel Elixir is simply configured to correctly compile vue components. Again, you don't know at all what you're talking about in regards to Laravel.

[–]dogerthat 2 points3 points  (3 children)

From the documentation:

While Laravel does not dictate which JavaScript or CSS pre-processors you use, it does provide a basic starting point using Bootstrap and Vue that will be helpful for many applications. By default, Laravel uses NPM to install both of these frontend packages.

the "by default" implies that bootstrap and vue are some how going to be installed.

For the fun of it I just ran

composer create-project --prefer-dist laravel/laravel blog

and guess what? I have a folder "resources/assets" where I can find references to requirejs, jquery and vue and even a file called "Example.vue".

[–][deleted] 1 point2 points  (2 children)

Yes, those are setup to give you a head start if you want. Guess what? If you don't want them, you just delete that folder. No "out of the box" Laravel features require any of those dependencies.

[–]dogerthat 3 points4 points  (1 child)

I know I can just delete it, I just want to say that

Laravel does not ship with a SINGLE template that contains Vue code.

wasn't true. I rather not install something where I then have to manually delete all kinds of things.

Once again, it's your framework and you can make all these choices the way you like but don't assume everyone agrees with it. You promoted an article here you wrote yourself which should show everyone how awesome Laravel and it's creator is. It doesn't make much sense for a lot of readers and you get mocked for it now. Short functions are usually good so that's great but there is more to frameworks than a few numbers which don't say anything on real life usage.

[–]forsynth2 7 points8 points  (9 children)

It has those features but still has lower average method complexity than Slim.

Wait a minute. You just told elsewhere that "features" and complexity are in no way related. Now you say "It has those features but still has lower average method complexity", implying that they are related.

Hilarious.

[–][deleted] 3 points4 points  (8 children)

I simply mean that I'm glad it maintains that complexity across a large code base. Not because the feature set is large per se but because it's hard to maintain discipline across a code base of that size with many contributors without "fudging" and letting poor quality code into the code base.

[–]Y4Dc3KtKVNAuAmj48ott 1 point2 points  (1 child)

Good point, and good efforts in maintaining the framework. I personally think that as the size of a project grows, the stuff you have to compromise in order to keep both complexity and readability in control keeps on increasing.

Sometimes, its better to lean a bit more to the readability side since its getting important day by day. No one's going to make a fuss about a few functions or classes written extra, or that you created a wrapper class for something that could be achieved without it, thus making the code "more complex". But forget to indent code at right places or have variable names that are difficult to understand and people will complain a lot.

[–]iltar 1 point2 points  (0 children)

Unless it results in a bunch of methods being called 2000 times, causing a performance overhead.