Need advice about which tool to choose?Ask the StackShare community!
CodeIgniter vs Symfony: What are the differences?
Introduction
CodeIgniter and Symfony are both popular PHP frameworks used for web development. While they serve the same purpose, there are several key differences that set them apart.
Development Philosophy: CodeIgniter follows a simpler and lightweight development philosophy, focusing on minimalism and speed. It provides a small footprint and greater flexibility for developers. On the other hand, Symfony follows a full-stack framework approach, providing a structured and modular development environment with a rich set of features right out of the box.
Learning Curve: CodeIgniter has a shallow learning curve, making it easier for beginners to understand and start developing applications quickly. It has simple and intuitive syntax, making it a preferred choice for simple projects and beginners. Conversely, Symfony has a steeper learning curve due to its comprehensive design patterns and more complex concepts. It requires more time and effort to master, but it offers higher flexibility and scalability for complex projects.
Community and Ecosystem: CodeIgniter has a significant user community, but its ecosystem is relatively smaller compared to Symfony. Symfony, being backed by a large corporation (SensioLabs), has a thriving community and a wide range of well-documented libraries and plugins. It provides access to a broader range of tools, libraries, and reusable components, enhancing development speed and efficiency.
Database ORM: CodeIgniter does not include a built-in Object-Relational Mapping (ORM) system. It allows developers to work directly with databases using a lightweight Active Record implementation. In contrast, Symfony embraces Doctrine, a powerful ORM tool, facilitating database management and manipulation. Doctrine includes advanced features like caching, query building, and database abstraction, providing greater convenience for handling database operations.
Integration and Interoperability: Symfony is designed to work seamlessly with other PHP libraries and tools, offering better interoperability with third-party components. It has a more modular architecture, allowing developers to integrate and use different components independently. CodeIgniter, on the other hand, offers limited interoperability as it follows a monolithic approach, with tightly coupled components that are difficult to replace or modify without affecting the overall framework.
Longevity and Maintenance: CodeIgniter has been around since 2006 and has a proven track record of stability and reliability. It has a large codebase and extensive documentation, making maintenance and troubleshooting easier. Symfony, although relatively newer (since 2005), has gained widespread adoption and has evolved into a mature and well-maintained framework. Its development team actively supports and updates the framework, providing regular updates with bug fixes, security patches, and new features.
In summary, CodeIgniter is a lightweight and beginner-friendly framework with a smaller ecosystem, while Symfony offers a more comprehensive and modular development environment with a steeper learning curve. Symfony provides better integration options, advanced database management with Doctrine, and a larger community support. However, CodeIgniter has a longer history and proven stability. Choosing between the two frameworks depends on the project's complexity, scalability requirements, and the developer's skill level.
Hi all, I need to create a simple IoT interface application that connects the end device API with a GeoTab API. I am considering using Bubble due to its simple interface and configuration tools, but I fear it's too simple. We will want to add features and new devices as we grow - I was thinking of using CodeIgniter or CakePHP on a hosted site for the application. Must support JCOM encoding between the two APIs and there is no need for a separate interface as GeoTab already has one; we are just connecting and pushing data. Thoughts?
You should check out Partunity.com if you want to get plugged in with innovative tech startup ideas!
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 need to build a web application plus android and IOS apps for an enterprise, like an e-commerce portal. It will have intensive use of MySQL to display thousands (40-50k) of live product information in an interactive table (searchable, filterable), live delivery tracking. It has to be secure, as it will handle information on customers, sales, inventory. Here is the technology stack: Backend: Laravel 7 Frondend: Vue.js, React or AngularJS?
Need help deciding technology stack. Thanks.
It's better to use Laravel with Vue.js and also laravel is very lightweight and speed performance.
Go for Laravel 8 (not 7, obviously because it's the latest version and has a lot of new features and bug fixes) when it comes to backend coding.
Go for Vue.js (if you don't have any preference) because it is having by default configuration setup in Laravel).
Pick MySQL or PostgreSQL both work fine.
If you know GCP, go for it, otherwise go for Heroku.
Avoid spending time on hosting setup - prefer PaaS based solutions.
In Laravel, try Laravel Breeze or Jetstream - these might make the development much faster - at least for the basic setup that is there.
40-50k should not be a problem at all for the database nor for any frontend/backend combo. Laravel works pretty well with Vue.js, for example; and you can include Elasticsearch in the combo if you really need fulltext search capabilites in your app. That will be much more decisive in the final product than the frontend stack chosen.
I don't know anything really about CodeIgniter, but I do know that microservices are a great choice for e-commerce, as they tend to have a lot of different moving (but not necessarily connected) parts. That being said, and if you have a choice, I'd recommend Go personally. But node isn't the worst option if Go isn't something you're comfortable with.
If you know typescript and want an entire framework to work with, go wth Angular. AngularJS, to my knowledge was deprecated. React is great, popular, and you'll find a ton of support.
I highly recomand using the Vue based Nuxt framework for the front end. It is not required to use the server render feature and the folder based routing and stores are really nice to work with. In addition it brings component auto import and lots of plugins neatly integrated (authentication, i18n, socket.io, etc.). If in the setup process you also chose Vuetify as a component library you will cover 98% of needed components.
As for Laravel vs CodeIginter I would chose Laravel as the safest bet. Sadly, CodeIgniter development slowed down after the main contributor's death. It is also worth mentioning, as others did, that the initial boost Vue got is from Laravel's creator and community. The simplicity and ease of use mindset is shared.
I can't speak to Angular since I haven't used it for at least 3 years (I wasn't a fan back then) but both React and Vue are great frameworks and will do the job just fine. Since you are using Laravel for the back end I'd recommend Vue. There's a lot of overlap between the communities and most Laravel developers I know do favor Vue over React.
Laravel is the best tool in php and I know it also if i don't develop in php. Vue.js is the future. In combination with https://bootstrap-vue.org/ is THE solution.
Best regards
If your customer is an enterprise, I'll strongly recommend leveraging Azure or AWS for building and hosting your backend. AWS API Gateway + AWS Lambda + AWS RDS would be a good combination. You might want to run everything in your VPC if security / privacy are your top concerns.
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.
Hi, We are thinking to rebuild a website and need your suggestion on which platform to choose from NodeJs, Laravel & CodeIgnitor. Since it's an education base website and there will be multiple functionalities like the use of graphics, video, animation and off-course forms for lead generation. Please advise us which tool to use to build the website considering load-time, server security, code vulnerability, etc.
It has the necessary packages for what you need, in addition to optimizing your time with what is needed.
Node.js is great but if I had a choice for something like this I would pick Elixir and Phoenix. They have LiveViews and channels which be one step up then the other 3 plateforms. It will also scale better and respond faster. Last will probably far less code as well.
Node.js is the perfect tech to real-time features like chats, forums, quizzes and polls. Additionally it has great support for objects storage like Mongodb and its important for file media management.
I would suggest you to pick the right stack for the right purpose. My suggestion would be to go for Microservices approach and break your app into smaller pieces according to the type of functionality like you mentioned above. E.g if you would be expecting the high traffic on you platform, then Node.js can be used as the endpoint there to handle that traffic. Normal form processing can be done in Laravel but I would not suggest codeigniter as managing code is difficult there.
So this way you can decide do architecture you app and can use the best of the feature from all the languages. Even it would be easier for you to manage your app based on the functionality and team who will be working on that. Hope you would like my suggestions.
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 CodeIgniter
- Mvc88
- Easy setup76
- Open source70
- Well documented62
- Community support36
- Easy to learn25
- Easy21
- Fast14
- HMVC11
- "Fast","Easy","MVC"9
- Language Suppert9
- Powerful7
- I think it is best. we can make all types of project6
- Easy, fast and full functional6
- Open source, Easy to setup6
- Customizable5
- Beginner friendly framework5
- Super Lightweight, Super Easy to Learn4
- CLI3
- Easily Extensible2
- Powerful1
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 CodeIgniter
- No ORM6
- No CLI1
Cons of Symfony
- Too many dependency10
- Lot of config files8
- YMAL4
- Feature creep3
- Bloated1