hamidzmi's avatar

Which PHP framework is more suitable for an enterprise project?

Our company decided to create an enterprise project (a warehouse management web application). Now my responsibility is to choose the best php framework that has great support and features to do this project. During the past week I researched some popular php frameworks (laravel, yii, symfony, zend framework) but I want to make sure which one is best suited for this work. Can anyone help?! The features that are most important are long term support, reliability, almost easy to learn (but we are not beginner in php), good documentation, scalability and stability.

0 likes
37 replies
ohffs's avatar

Symfony & Zend probably have a bigger ecosystem of consultants/support people if that's what you need? Symfony's documentation can be a little... 'interesting' sometimes though. It's many years since I looked at Zend's. Scalability usually isn't much to do with the framework itself.

But if you're writing it yourselves from scratch it's maybe more of a 'pick one and see how you get on'. IMHO you'll get a working product a lot quicker with Laravel.

1 like
hamidzmi's avatar

Thank you @ohffs. but my boss said laravel not been used in enterprise projects yet and worry about discontinue after some years.

RomainLanz's avatar

@hamidzmi Laravel has an LTS release for this purpose.

3 years of bug fixes and 5 of security fixes.

1 like
hamidzmi's avatar

@RomainLanz Laravel 5.1 has 2 years bug fixes and 3 years security fixes. he said it's not enough.

RomainLanz's avatar

Oh damn, sorry.

But you can still use the version when support is ended. It depends a lot of the project you want to create.

1 like
pmall's avatar

Your boss want some perfect thing, nothing is ever perfect. Go for symfony or laravel.

6 likes
ohffs's avatar

It sounds like your boss has already made up their mind. I'd suggest Java just to be cruel ;-)

6 likes
Prullenbak's avatar

boss said laravel not been used in enterprise projects

Where did he get that info?

4 likes
jekinney's avatar

Zend is to rigged and overly complicated because of it being strict imo but is designed for large enterprise apps.

Symfony is better imo but as Was mentioned, good luck with the docs. They are written in way higher level then almost any other.

1 like
andy's avatar

Racks, slots, movement in/out, and what not ... Any of the frameworks that you mentioned will do.

As a manager, I'd be more concerned about:

  1. developer availability and their skill level for the framework
  2. The total cost from development to deployment
  3. Long Term Support of the software that was written
  4. Does the framework save me time, effort and money
hamidzmi's avatar

@Prullenbak Do you have any sample of great enterprise project built with laravel?! I'm googled but they are all not enterprise projects!

pmall's avatar

What do you call enterprise projects ? Here at work I use laravel for our private network applications.

2 likes
joedawson's avatar

I don't think Googling "Enterprise Laravel Projects" is really going to give you a list of project's - do you?

3 likes
jlrdw's avatar

Google and Yahoo what large trucking companies use like JB Hunt, CH Robinson, FedEx.

ohffs's avatar

@hamidzmi We're in the process of migrating and old legacy 70,000 line php app to laravel to run a ~£50m technology facility if that counts?

3 likes
jlrdw's avatar

I know this is a PHP / laravel forum but for large enterprise I would still use Enterprise JavaBeans, servlets, and JSP pages. But I have used laravel for a couple of medium sized projects. Sorry I know that's not the best answer. But laravel should be able to handle thousands or even millions of records with no problem. It all depends on your knowledge and how you pull the records, in any technology you only pull what's needed. In other words don't query 10000 records at a time.

1 like
mehany's avatar

I would add as well, We "the Developers" build the enterprise world, our passion in writing good and maintainable code is what powers the largest systems out there.

3 likes
hamidzmi's avatar

@JoeDawson No, I'm not googled "Enterprise Laravel Projects" (it's a joke), but I visited builtwith.com and wappalyzer.com and did not found a popular and great project there.

topvillas's avatar

If you're building an enterprise level app then I wouldn't worry about the framework so much as the architecture.

The cool kids are using microservices these days. If you go with that approach then the framework is a secondary concern. You just use whichever language / framework is best suited to the service.

3 likes
hamidzmi's avatar

@ohffs Really? great work. could you tell us your project name please? (if possible)

jlrdw's avatar

Also check what Sam's and Walmart uses, they have a very sophisticated warehousing system.

1 like
ohffs's avatar

@hamidzmi if I told you I couldn't slack off on here as much ;-) It's internal to the facility in any case so would never be visible to the public (thankfully - I hate dealing with the public, they're awful ;-) But it handles managing equipment time, image processing, reporting, finances (there's a lot of precious metals involved), training schedules, file transfers, all sorts really. There's a lot of this kind of thing involved.

1 like
jimmck's avatar

@hamidzmi This is a Laravel hobbyist/fanboy site. The opinions here are not going to be constructive. Laravel is a nice platform for building web based applications. So are many others. You already have a large PHP codebase, who is supporting that now? Porting to JAVA is probably not an option. Have you done any kind of feature inventory of your existing software? What parts of your system must stay in place? Your existing database and organization, same thing. Present your boss with an accurate picture of where you are now and application features needed for the desired future. But in the end, you have to be comfortable with the choice. Your boss is going to rely on you to provide guidance and solve problems.

3 likes
hamidzmi's avatar

Thank you guys, all the answers was helpful and nice :)

andy's avatar

I'm handling 12,000 hits plus per day on my need to refactor pound it out fast cms.

I've also got a warehouse app that manages racks, zones, pallets, print pallet labels, scans, shipping, receiving, production side and a few other things. Currently, handles 2-5 trucks a day. This last rewrite was 200 hours.

If symfony is considered enterprise, I'd say that laravel is just as qualified.

I'd give Zend a plus for being enterprise just because the php developers maintain it too.

Is any framework safer than another? Nope, because somebody fucked up some code somewhere ;-)

As for java. nah, we refuse to put it on our servers. We house our own server room and have another for off site redundancy. We also try to keep that stuff off the 15,000+ devices that we maintain.

1 like
Prullenbak's avatar

Do you have any sample of great enterprise project built with laravel?! I'm googled but they are all not enterprise projects!

@hamidzmi No I don't. Didn't look for it. But I'm willing to bet your boss also didn't. In the end it's not your framework of choice that's building the product. It's you and your team. It's also that team that will support it. And if they don't like the framework or tools they have to work with, how stable will that support be?

davorminchorov's avatar

It really depends on how big the app is or it will be. There was a tweet about the Fallout website handling 670 or 680 000 concurrent connections at a time and that website is built on Laravel.

I don't think that performance should be a big concern at the beginning of a project because you still don't have any real data to work with or test your application / framework. Usually, you deal with the performance problems on the fly.

Sure, you have to consider how big the data will be and how much users will the app handle, implement the app with some basic performance tricks but you can't really know for sure how it will go until it happens.

1 like
Memoryme's avatar

It's all about what's project need and requirement. If your project need more memory and high data usage then probrably j2ee and other framework like spring. Very efficient and scalable interms of server. Laravel is more about request and response based application where you have limited resources interms of server. If you need to update distributed architecture which normally any enterprise would assumed to be then laravel or php framework wont give you that kind of flexibility.

nikhilj's avatar

I think Yii2 might be a better choice for Enterprise grade applications, esp. if you want speed and performance. Yii2 is built for performance. Laravel is built for elegance.

mr_j936's avatar

We're facing this dilemma in my company right now and I am strongly pushing towards Symfony for enterprise projects.The reality of the situation is, we are building a project that we expect will have to live on/be maintained for 5 years+ easily. Symfony does not break backwards compatibility on minor releases(I could go from a symfony 2.3 app done in 2013 to a symfony 2.8 upgrade and still be online and supported till 2018 (granted I will get tens of deprecation errors, but it will work)) LTS are supported for 3 years and are 2 years apart(giving us ample time to upgrade)And BTW, that is 3 years of bug fixing and 4 years of security. Development toolbar gives deprecation notices about things that will be removed years later I am getting notices for things that will be removed in Symfony 4, which is set to be released as LTS September 2019. So I already KNOW my code will work until at least 2022. If something changes, it will be minor, changing structure and big logic is not their style...

And this is a deciding factor for me... I can't write an enterprise project on a Laravel LTS (which already has lost its maintenance, and where is the next LTS?) with an unclear upgrade path, and unclear plan for the future, structures change between minor releases and things get scrapped completely between minor releases... I would rather spend time and energy making my project better instead of playing catch up with the minor releases...

Next

Please or to participate in this conversation.