Need advice about which tool to choose?Ask the StackShare community!
Phalcon vs Symfony: What are the differences?
Introduction
Here, we will compare Phalcon and Symfony, two popular PHP frameworks, and highlight their key differences.
Execution Speed: Phalcon is associated with high performance due to its C-extension nature, which is compiled and directly loaded into the memory. On the other hand, Symfony, being a full-stack framework, has a larger codebase and is slower compared to Phalcon.
Architecture: Phalcon follows a loosely coupled architectural design, offering flexibility for developers to select the components they need. Symfony, on the other hand, follows a more opinionated and organized architectural design, enforcing a standard directory structure and defining strict rules.
Learning Curve: Phalcon has a steeper learning curve for beginners due to non-standard conventions and less comprehensive documentation. Symfony, with its well-maintained documentation and extensive community support, offers a more gradual learning curve, making it easier for developers to pick up.
Community and Ecosystem: While both Phalcon and Symfony have active communities, Symfony has a much larger user base and a broader ecosystem, with more third-party libraries and plugins available. Phalcon, being a newer framework, has a relatively smaller community and ecosystem.
Database Support: Phalcon provides support for a variety of databases, including MySQL, PostgreSQL, and SQLite. Symfony, being a more mature framework, supports a wider range of databases, including Oracle and Microsoft SQL Server, in addition to the ones supported by Phalcon.
Flexibility: Phalcon allows developers to have more control and flexibility over the application's code and structure. Symfony, with its conventions and predefined standards, provides a more consistent and structured approach, limiting some flexibility for developers.
In summary, Phalcon stands out for its performance and flexibility, while Symfony shines with its well-documented, structured approach, and a larger community and ecosystem. The choice between the two frameworks depends on the specific requirements and preferences of the developers.
Hi everyone! I'm starting a personal project that I've been postponing for a little while and I need a bit of advice. I thought that it will be a bit of a challenge but I figure the best way to learn is by doing!
The plan is to build an app with loads of automation build in for reporting which would make it very easy to perform tasks, The plan is to build something similar to an HR app using microservice architecture, separating services e.g. employee data, payroll (including calculations based on easily entered info like tax %), employee services (vacation, sick day allowance booking and tabulation) and automated reporting on a pre-defined schedule (bi-weekly, monthly).
I am considering Django (as I currently know a bit of Python) and Symfony (as a friend who is a developer recommended it) but I am well aware there are other (and probably better) tools out there for the job (like maybe ExpressJS/Node.js for the backend and React/Vue.js for the front).
Background:
I have got knowledge as a DevOps, Site Reliability and Cloud engineer so once the app is built I'm very comfortable taking it to deployment.
Thank you all for your help and responses.
Hi. I guess it all depends on what your goal is. If you wanna make fast prototyping Django or ExpressJNodeJS might be really good candidates. You can write your services quickly and easily by using anyone of them. Maybe we can also put Laravel in the same category.
Symfony is also another application framework that comes with many reusable components. It provides great flexibility with the configuration and dependency management solutions. So that you can inject or override anything, anytime without doing something hack-ish. You don't have to depend on any components that come with the framework and, replace them with whatever you prefer unless encounter any integration issues. I can say that Laravel also provides most of the Symfony futures as it uses its components under the hood. However, my personal experience with Laravel was not so good because it made me feel like I use a modernized version of Codeigniter. But anyway. :) So if I have to choose one of them, I would choose Symfony.
From the backend perspective, all of those have some pros and cons. For example, If strict type declaration is important for you and you don't like code magics like monkey patching etc., maybe Python and NodeJS might not be good candidates and maybe you could choose Symfony/php. However, in this case, you'll be missed out on the most powerful future of NodeJS which is non-blocking io. if you plan to do IO-intensive works, I think it would be a big loss.
So, maybe I can recommend you to have a look at typescript + NestJS also. https://nestjs.com/ The futures that NestJS provides might be a good balance between the strengths of Symfony and NodeJS.
As I'm backend dev., I haven't work too many frontend projects but from my personal experience, I loved ReactJS more than Vue although Vue was simpler. Maybe a front-end developer can give us more helpful details about those.
Hope it helps.
I'm about to begin working on an API, for which I plan to add GraphQL connectivity for processing data. The data processed will mainly be audio files being downloaded/uploaded with some user messaging & authentication.
I don't mind the difficulty in any service since I've used C++ (for data structures & algorithms at least) and would also say I am patient and can learn fairly quickly. My main concerns would be their performance, libraries/community, and job marketability.
Why I'm stuck between these three...
Symfony: I've programmed in PHP for back-end in a previous internship and may do so again in a few months.
Node.js: It's newer than PHP, and it's JavaScript where my front-end stack will be React and (likely) React Native.
Go: It's newer than PHP, I've heard of its good performance, and it would be nice to learn a new (growing) language.
Go with Node.js. There's something really satisfying about being able to use a single language across your entire tech stack. Especially once you integrate GraphQL, which is effectively JSON.
Your second best option is Go, but the ecosystem around Node.js is quite a bit stronger. This will play a big factor when you start building functionality like file management, messaging (especially in real-time), and authentication. The libraries and documentation are just stronger for Node.
For a full-stack app or just simple APIs I'd go 100% with Laravel. You get a clean architecture, beautiful documentation and friendly and always growing community: the project is yours, from A to Z. With their docs and resources like Laracast you can start from zero and build what you want, when you want. The learning curve is definitely smaller when compared to Symfony and, with the help of a bit of "magic" (Facades etc.) you get the same results in the half of the time with cleaner code.
Pros of Phalcon
- Fast65
- High performance54
- Open source37
- Fast and easy to use35
- Scalable32
- Versatile23
- Fiexble22
- Automatic routing20
- It is easy and fast19
- Is very good17
- Low overhead9
- Dependency injection9
- Awesome6
- Easy and fast2
- Great for API1
- Clean Architecture1
- Modularity1
- Easy Setup1
- Very customizable0
Pros of Symfony
- Open source177
- Php149
- Community130
- Dependency injection129
- Professional122
- Doctrine80
- Organized75
- Modular architecture71
- Smart programming47
- Solid45
- Documentation20
- LTS releases16
- Decoupled framework components10
- Robust10
- Easy to Learn10
- Good practices guideline8
- Service container8
- Bundle8
- Powerful7
- Simple7
- Flexible6
Sign up to add or upvote prosMake informed product decisions
Cons of Phalcon
- Support few databases4
- Very bad documentation2
Cons of Symfony
- Too many dependency10
- Lot of config files8
- YMAL4
- Feature creep3
- Bloated1