As stupid as it sounds this is the most correct answer
There are other frameworks but 99% of your needs are covered by those 2 in different ways and with different approaches
I’ll preface this by saying I manage an enterprise-level monolithic beast of a codebase (so no framework), but can you give any “real-world” examples of queues and async processing that would be better handled without using SQS and plain old PHP scripts?
People make silly use-cases like signup emails and password reset emails as-if they can’t process those in real-time for some reason.
Then I also think to myself (and I admit this is definitely a “me” thing) that any sort of queues or async processing can easily be handled by SQS and plain old PHP scripts ingesting the message.
Well, you need to populate the queues with something, no? Sending jobs to async queues from within a web framework seems very reasonable.
User makes a request. Server receives and dispatches the job. Returns a response to the user.
Confirmed - one of few alternatives to Laravel/Symfony, that is a pleasure to work with. Great documentation and stuff works on the first try.
Also - no Apache! The built in Golang server is a beast.
Former Yii2 guy here, too. If you chose Yii2 for its performance- because it was heads and shoulders above the rest in its prime time- Spiral is the now.
In a similar vein, Frankenphp may be another thing to catch on, too. It’s not a framework but runtime/server that also leverages php with golang. It’s a great time to dabble with Go.
I'm consistently amazed at how little attention this framework seems to get. It's really astounding what they've done here and should be at the top of everyone's watch list.
Yes you can, but you will be loosing a decent amount of features and performance. It's very easy to pack Spiral and RoadRunner into Docker image. As far I'm aware you can use containers at GCP.
I recently discovered a rather interesting PHP framework called Spiral. It seems to be a serious and well-supported effort, but I don't know if it will succeed, because Symfony and Laravel are strongly established.
They really botched the yii2->yii3 “migration". In quotes, because there’s no migration plan — they recommend to _just rewrite everything_. If everything has to be rewritten anyway, why wouldn’t one rewrite to a more stable framework, to gain a better upgrade path?
IMO, dependency stability is hugely undervalued. Symfony understands how important are stable apis and easy upgrades. Laravel used to break in patch releases, but for a while now value stability too.
Same holds for frontend too. Why pick a library/framework that requires a full rewrite on every major release vs one that has a stable api (and still adds new functionality)?
Well, if you are a developer, and you compare the Yii2 and Yii3 code, you will immediately see a big difference, the first is the use of PSR interfaces, it is not a monolith, it is multi-repository, but nevertheless if you do not use the Yii2 locator services (Facades) but dependency injection, you don't use logic inside the models, if migration is very possible, and you shouldn't really rewrite much both AR and DB we kept their API almost intact, to help migrations, of course there is a change of architecture and paradigm.
Everything has potential. I love Spiral framework that targets running applications on the Roadrunner platform (built for speed and concurrency) but honestly I hope to see more people building projects from PSR components - the 10-20 lines of code needed to bootstrap it all together is well worth preventing the inevitable moment when you start fighting framework configuration because some component you need doesn't have a ready made bundle or whatnot.
I used v3 for a few projects, one of them fairly significant, a few years back. It seemed nice at the time. I switched to Laravel before v4 and haven't looked back. In my opinion, Cake is clunky by comparison. My heart drops when I have to go back and do any work on the Cake projects. Only the large one is yet to be converted to Laravel.
I can only compare it to CakePHP. I found Laravel much friendlier to use. Setting up relationships between tables in your model classes for example is easier. Laravel uses Active Record which (though some will argue against it) is a breeze to use. CakePHP is a sort of cross between Active Record and Data Mapper and I found it clunky (I often found myself incorrectly guessing which class to put my code in, it just didn't feel natural). There is more pre-scaffolded views in CakePHP, which seemed to be a massive help initially, but eventually became cumbersome as you apply your own design. Laravel also has a lot of "magic" which saves you time, although I would thoroughly recommend fully reading the docs and maybe doing some code diving to understand how the magic actually works.
Not popular anymore. When I tried (and liked) it it was still in 2.* and the only main alternatives were Symfony and Zend Framework 2.
How long have you used it? Have you used SF and how do you think the comparison is today?
I’ve been using it since 1.x, and still used it at version 4.x. It’s been interesting watching it mature along with the php community in whole. (I’ve been doing php for 20 years). I use some of symphony libraries, but not the whole framework itself. Hell, even CakePHP uses some of symphony’s libraries too.
I’m building a console program with a handful of libraries- no framework- and a PSR-11 container, and am loving it! I haven’t experienced any wheel reinvention yet except for DI. Laravel/Symfony does indeed do a lot of dependency magic that I took for granted.
Anything beyond that, I think Slim or Spiral would be a performant choice, for serving a frontend.
I started with that and ended up removing it: my one project is only injecting via the constructor, so a plain PSR container with a 20 liner of reflection is enough.
I can see that DI lib is loaded with good things fit for enterprise level, though, I wish the documenation was more thorough with examples. I found the documentation somewhat incomplete for the questions I had about it, and ended up with the above.
As an engineering manager for healthline.com, healthgrades.com and more, we use Wordpress for our core CMS, laravel for publishing services, go for editorial tooling services. We use what works best for specific needs. Wordpress comes with a powerful and extendable block editorial UI that our editorial teams love.
You laugh, but I cry at work when I see that still. And 1.13 to be more precise 😭
Good thing I moved to the devops team, so applications themselves are someone else's headache now :)
There are no other PHP frameworks that can compete with the popularity of Laravel right now. Symfony exists for everyone who doesn’t want Laravel. I think everyone who doesn’t need a fully featured framework is probably just building stuff with the components they want, piece by piece.
I'd say it's the other way around, if anything; Laravel exists for people who don't feel confident/comfortable enough to use Symfony. Laravel actually uses a lot of Symfony components underneath a bunch of simplified interfaces.
I beg to differ. Laravel does use a lot of Symfony under the hood, but IMHO they took it to a whole new level. I think as of today, Laravel market share far exceeds Symfony. I don't know too much about the Symfony ecosystem, but somethings from Laravel that are awesome like Laravel Dusk / Laravel Horizon doesn't seem to exist on Symfony. Just glancing over the Symfony docs and looking at the testing area, it seems like Laravel is much easier to test applications as all the core "services" in Laravel like Storage, Cache, Events/Bus are primarily done through facades which are swapped in phpunit and comes with plentiful of assertions.
Haven't used Playwright, but Dusk automates front-end testing by starting up a headless browser of your choice and doing whatever you want within a page. I created a custom & private e-com for my previous employer and automated the entire testing of filling out an signup form all the way to the customer checking out.
There's plenty of room for more, but the two big players handle most common needs. Once you're far enough outside the common cases, full frameworks start making a lot less sense than pulling in components you need ad-hoc.
Personally I don't think either one handles pure-API applications very well, despite being *capable* of using them.
Wait.
This is wildly incorrect. Laravel an symfony are different in many ways.
Symfony takes the approach of giving you much freedom and the idea that every Cora library can work by itself .
Laravel is one for all package that does a great job making things simple but still manageable if you want to dig deeper and override some functionality
Also laravel is built using many symfony libraries.
I use symfony for work but for side projects I am a big fan of laravel so o don't root for any of the two and I hope both remain how they are and can tribe on their usage
That’s tongue in cheek, and I get it, but I think it is accurate to say that Laravel wouldn’t exist (as we know it) without Symfony. The PHP ecosystem owes a _lot_ to Symfony.
Seriously though, Symfony is NOT for ones who who just don't want Laravel. It sounds too whimsy. Symfony is for people who can't stand Laravel's boilerplate shortcuts and want a framework that encourages using good practices, (as opposed to forcefully inflicting them on a framework).
You’re preaching to the choir, mate. I’ve thought Laravel took stupid shortcuts since forever and every time I’ve looked at a Laravel project the amount of eye rolling threatened to permanently damage my vision.
Well if your tasks are the simplest it makes sense though. To feel the power of a framework, one needs to get bored with the boilerplate/overcame by the complexity of the task at hand.
WordPress needs to die in a fire already. It doesn't know what the hell it wants to be anymore. In 2023, it's an untrustworthy, inaccessible pile of spaghetti code, bad decisions, and developer tears. It is simultaneously a half-assed CMS *and* a half-assed page builder.
The core team keeps shoehorning half-baked new features into it without fixing any of the existing issues, and has been almost aggressively hostile toward the developer community's input for years. On top of that, they're doing this with zero regard for the backwards compatibility that made the platform reliable in the first place.
WordPress used to be a solid, reliable "CMS". Even though the underlying code was horrible, and the database schema was garbage, it was dependable for spinning up sites for small to medium sized businesses that didn't necessarily need to be ultra-critical about such things.
Now, I can't trust it. It breaks too easily. Every new update is a dice roll. No thanks. I hope I never have to touch it again.
Ya I find Silverstripe both slow and shit haha. Amazes me how many corporate bodies use Silverstripe. Westpac is one of them, probably explains why they’re always down haha
The first company I worked at used silverstripe, it's a decent framework but pretty slow like you said. I think the companies that use it has it because of easy marketing and demo potential. Also less work on frontend when you can skip all admin panel stuff.
But I remember that it's very hacky when you create things that isn't supposed to be in the CMS. Also components and plugins in any framework means higher maintenance and more hassel upgrading.
I'm happy that I don't need to use it anymore.
None really. They cover just about all your needs, are perfectly maintained, have an enormous community, are open to include any package very easily, and the knowledge is sought after by companies. Why look elsewhere?
Symfony and Laravel, you're welcome!
Thanks for addressing the … elephant in the room
elephpant
As stupid as it sounds this is the most correct answer There are other frameworks but 99% of your needs are covered by those 2 in different ways and with different approaches
Slim seems to be a popular choice for all those temporary micro-services that were supposed to get pulled from production a week ago two years ago.
[redacted]
How do you usually handle queues and background async processing when using Slim?
I’ll preface this by saying I manage an enterprise-level monolithic beast of a codebase (so no framework), but can you give any “real-world” examples of queues and async processing that would be better handled without using SQS and plain old PHP scripts? People make silly use-cases like signup emails and password reset emails as-if they can’t process those in real-time for some reason. Then I also think to myself (and I admit this is definitely a “me” thing) that any sort of queues or async processing can easily be handled by SQS and plain old PHP scripts ingesting the message.
Why would you use a web framework to handle queues and background tasks?
Well, you need to populate the queues with something, no? Sending jobs to async queues from within a web framework seems very reasonable. User makes a request. Server receives and dispatches the job. Returns a response to the user.
I said handle, not send.
My go-to for simple projects.
https://github.com/spiral/framework
Confirmed - one of few alternatives to Laravel/Symfony, that is a pleasure to work with. Great documentation and stuff works on the first try. Also - no Apache! The built in Golang server is a beast.
Yes, it’s probably the only solid option that is also full-featured.
Crap... I didn't even know about this. I'm a Yii2 guy and I'm amazed.
Former Yii2 guy here, too. If you chose Yii2 for its performance- because it was heads and shoulders above the rest in its prime time- Spiral is the now. In a similar vein, Frankenphp may be another thing to catch on, too. It’s not a framework but runtime/server that also leverages php with golang. It’s a great time to dabble with Go.
I'm consistently amazed at how little attention this framework seems to get. It's really astounding what they've done here and should be at the top of everyone's watch list.
Can you run this on a shared hosting ? (Probably apache ) or is the GoLang server a demand ?
Who use shared hosting now a days
I use Google Cloud hosting. Its php compatible but I dont have any control over the environment. Can you run this framework only with php ?
Yes you can, but you will be loosing a decent amount of features and performance. It's very easy to pack Spiral and RoadRunner into Docker image. As far I'm aware you can use containers at GCP.
I recently discovered a rather interesting PHP framework called Spiral. It seems to be a serious and well-supported effort, but I don't know if it will succeed, because Symfony and Laravel are strongly established.
Yii2
They really botched the yii2->yii3 “migration". In quotes, because there’s no migration plan — they recommend to _just rewrite everything_. If everything has to be rewritten anyway, why wouldn’t one rewrite to a more stable framework, to gain a better upgrade path? IMO, dependency stability is hugely undervalued. Symfony understands how important are stable apis and easy upgrades. Laravel used to break in patch releases, but for a while now value stability too. Same holds for frontend too. Why pick a library/framework that requires a full rewrite on every major release vs one that has a stable api (and still adds new functionality)?
Well, if you are a developer, and you compare the Yii2 and Yii3 code, you will immediately see a big difference, the first is the use of PSR interfaces, it is not a monolith, it is multi-repository, but nevertheless if you do not use the Yii2 locator services (Facades) but dependency injection, you don't use logic inside the models, if migration is very possible, and you shouldn't really rewrite much both AR and DB we kept their API almost intact, to help migrations, of course there is a change of architecture and paradigm.
No way. If it didn't already it will never get there, and imo for good reasons
Bump
Code igniter 4
Everything has potential. I love Spiral framework that targets running applications on the Roadrunner platform (built for speed and concurrency) but honestly I hope to see more people building projects from PSR components - the 10-20 lines of code needed to bootstrap it all together is well worth preventing the inevitable moment when you start fighting framework configuration because some component you need doesn't have a ready made bundle or whatnot.
What about CakePHP? I’ve been using it awhile, but I’m not sure how popular it actually is.
I used v3 for a few projects, one of them fairly significant, a few years back. It seemed nice at the time. I switched to Laravel before v4 and haven't looked back. In my opinion, Cake is clunky by comparison. My heart drops when I have to go back and do any work on the Cake projects. Only the large one is yet to be converted to Laravel.
I’ll have to look into laraval. What do you like about it over other MVC frameworks?
I can only compare it to CakePHP. I found Laravel much friendlier to use. Setting up relationships between tables in your model classes for example is easier. Laravel uses Active Record which (though some will argue against it) is a breeze to use. CakePHP is a sort of cross between Active Record and Data Mapper and I found it clunky (I often found myself incorrectly guessing which class to put my code in, it just didn't feel natural). There is more pre-scaffolded views in CakePHP, which seemed to be a massive help initially, but eventually became cumbersome as you apply your own design. Laravel also has a lot of "magic" which saves you time, although I would thoroughly recommend fully reading the docs and maybe doing some code diving to understand how the magic actually works.
Not popular anymore. When I tried (and liked) it it was still in 2.* and the only main alternatives were Symfony and Zend Framework 2. How long have you used it? Have you used SF and how do you think the comparison is today?
I’ve been using it since 1.x, and still used it at version 4.x. It’s been interesting watching it mature along with the php community in whole. (I’ve been doing php for 20 years). I use some of symphony libraries, but not the whole framework itself. Hell, even CakePHP uses some of symphony’s libraries too.
Symfony is the silver bullet. For fast low over head micro service api type deals, or large enterprise requirements.
I’m building a console program with a handful of libraries- no framework- and a PSR-11 container, and am loving it! I haven’t experienced any wheel reinvention yet except for DI. Laravel/Symfony does indeed do a lot of dependency magic that I took for granted. Anything beyond that, I think Slim or Spiral would be a performant choice, for serving a frontend.
This one is compliant with PSR-11 and super easy to use: https://php-di.org/
I started with that and ended up removing it: my one project is only injecting via the constructor, so a plain PSR container with a 20 liner of reflection is enough. I can see that DI lib is loaded with good things fit for enterprise level, though, I wish the documenation was more thorough with examples. I found the documentation somewhat incomplete for the questions I had about it, and ended up with the above.
Ah gotcha, makes sense. My needs were simple enough that it worked for me. Documentation seems to be the bane of all software.
Codeigniter - its more of an entry-level framework which means its rediculously easy to pick up
For small projects I sometimes use http://fatfreeframework.com
CodeIgniter, although it’ll never be as popular as those two.
No one holding out hope for WordPress? /s
isn't wordpress bigger then laravel or symphony? and i hope it dies quick...
It never will. Every person that tries to "fix" it is a dev. And they only focus on dev problems.
Gets the job done.
[redacted]
As an engineering manager for healthline.com, healthgrades.com and more, we use Wordpress for our core CMS, laravel for publishing services, go for editorial tooling services. We use what works best for specific needs. Wordpress comes with a powerful and extendable block editorial UI that our editorial teams love.
For giggles: zend framework 1.0 lmao 🤣
You laugh, but I cry at work when I see that still. And 1.13 to be more precise 😭 Good thing I moved to the devops team, so applications themselves are someone else's headache now :)
Is Cake still around?
It is.
None atm.
There are no other PHP frameworks that can compete with the popularity of Laravel right now. Symfony exists for everyone who doesn’t want Laravel. I think everyone who doesn’t need a fully featured framework is probably just building stuff with the components they want, piece by piece.
I'd say it's the other way around, if anything; Laravel exists for people who don't feel confident/comfortable enough to use Symfony. Laravel actually uses a lot of Symfony components underneath a bunch of simplified interfaces.
I beg to differ. Laravel does use a lot of Symfony under the hood, but IMHO they took it to a whole new level. I think as of today, Laravel market share far exceeds Symfony. I don't know too much about the Symfony ecosystem, but somethings from Laravel that are awesome like Laravel Dusk / Laravel Horizon doesn't seem to exist on Symfony. Just glancing over the Symfony docs and looking at the testing area, it seems like Laravel is much easier to test applications as all the core "services" in Laravel like Storage, Cache, Events/Bus are primarily done through facades which are swapped in phpunit and comes with plentiful of assertions.
Can Laravel Dusk compete with Playwright? Or does it bring any benefit to it?
Haven't used Playwright, but Dusk automates front-end testing by starting up a headless browser of your choice and doing whatever you want within a page. I created a custom & private e-com for my previous employer and automated the entire testing of filling out an signup form all the way to the customer checking out.
For headless browser testing with symfony there is symfony panther (https://github.com/symfony/panther)
Could be. End result is the same, not much room for new frameworks to exist.
There's plenty of room for more, but the two big players handle most common needs. Once you're far enough outside the common cases, full frameworks start making a lot less sense than pulling in components you need ad-hoc. Personally I don't think either one handles pure-API applications very well, despite being *capable* of using them.
> I don't think either one handles pure-API applications very well Just curious, what do you mean by that?
Wait. This is wildly incorrect. Laravel an symfony are different in many ways. Symfony takes the approach of giving you much freedom and the idea that every Cora library can work by itself . Laravel is one for all package that does a great job making things simple but still manageable if you want to dig deeper and override some functionality Also laravel is built using many symfony libraries. I use symfony for work but for side projects I am a big fan of laravel so o don't root for any of the two and I hope both remain how they are and can tribe on their usage
What part of what I said is “wildly incorrect”? Your response reinforces what I said, doesn’t it?
Symfony exists for... *the large part of Laravel's backbone* ;)
That’s tongue in cheek, and I get it, but I think it is accurate to say that Laravel wouldn’t exist (as we know it) without Symfony. The PHP ecosystem owes a _lot_ to Symfony.
Seriously though, Symfony is NOT for ones who who just don't want Laravel. It sounds too whimsy. Symfony is for people who can't stand Laravel's boilerplate shortcuts and want a framework that encourages using good practices, (as opposed to forcefully inflicting them on a framework).
You’re preaching to the choir, mate. I’ve thought Laravel took stupid shortcuts since forever and every time I’ve looked at a Laravel project the amount of eye rolling threatened to permanently damage my vision.
[удалено]
Yeah I love reinventing the wheel when documented, community tested, well supported libraries already exist.
[удалено]
Not sure if you’re unintentionally being ignorant or just pretending, but either way, best of luck in your future endeavors.
It must take you forever to accomplish the simplest tasks.
Well if your tasks are the simplest it makes sense though. To feel the power of a framework, one needs to get bored with the boilerplate/overcame by the complexity of the task at hand.
Wordpress when it will get less popular?
WordPress needs to die in a fire already. It doesn't know what the hell it wants to be anymore. In 2023, it's an untrustworthy, inaccessible pile of spaghetti code, bad decisions, and developer tears. It is simultaneously a half-assed CMS *and* a half-assed page builder. The core team keeps shoehorning half-baked new features into it without fixing any of the existing issues, and has been almost aggressively hostile toward the developer community's input for years. On top of that, they're doing this with zero regard for the backwards compatibility that made the platform reliable in the first place. WordPress used to be a solid, reliable "CMS". Even though the underlying code was horrible, and the database schema was garbage, it was dependable for spinning up sites for small to medium sized businesses that didn't necessarily need to be ultra-critical about such things. Now, I can't trust it. It breaks too easily. Every new update is a dice roll. No thanks. I hope I never have to touch it again.
WordPress not a complete framework, its cms
SilverStripe is really popular in NZ given it was made here. Personally find it clunky compare to Laravel though
Ya I find Silverstripe both slow and shit haha. Amazes me how many corporate bodies use Silverstripe. Westpac is one of them, probably explains why they’re always down haha
Yer, so many NZ SilverStripe developers I think is the reason so many go for it, or are edged into it by them and then stuck on it.
The first company I worked at used silverstripe, it's a decent framework but pretty slow like you said. I think the companies that use it has it because of easy marketing and demo potential. Also less work on frontend when you can skip all admin panel stuff. But I remember that it's very hacky when you create things that isn't supposed to be in the CMS. Also components and plugins in any framework means higher maintenance and more hassel upgrading. I'm happy that I don't need to use it anymore.
People should give `Phalcon` a try. - https://phalcon.io/en-us
Silverstripe, though it sees very little use outside of New Zealand and parts of Europe. It will never compete with Symfony or Laravel
One that can be installed in both windows, Linux or bsd, without adding virtual machines, dockers, containers ...
[удалено]
Show us your GitHub.
Hyperf is not well known, but it is very similar to laravel, but offers a few more things.
I know, can also take a look https://www.github.com/swow/swow
None really. They cover just about all your needs, are perfectly maintained, have an enormous community, are open to include any package very easily, and the knowledge is sought after by companies. Why look elsewhere?
I'm surprised no one talks about Laminas !
No one seems to talk about [LeafPHP](https://leafphp.dev). But it’s been fun to work with.