“Your platform will never scale. It’s on CodeIgniter.”
“You should’ve gone with Ruby/Rails. It a shame you’re using CodeIgniter for your web app.”
…those are just some of the responses I’ve received. Should I be worried that my platform is built using PHP’s CodeIgniter framework? What problems/issues can I expect to arise and how can I overcome them?
Can my web application succeed if it’s using CodeIgniter?
Why is there little love for PHP / CodeIgniter?
I mean, right now it appears to be fine and seems to perform like any other normal web application/platform on the net.
It’s always been popular to hate on PHP… there seems to have been a lot of discussion about this in the PHP community lately. Even though the language is still saddled with some quirks from its inception as a quick and dirty scripting language, it has matured a lot since then, and it is possible to write good apps in PHP, and also successful ones (take Facebook, for example).
I think the main gripes with CodeIgniter are that it’s now quite outdated compared to other popular frameworks, and also that its owner, EllisLab, had stopped development and were looking for someone else to take over control of the framework, which lead to a lot of uncertainty about its future (I think they’ve since found to take it over).
To be honest, unless your app is very badly written, your choice of framework probably won’t be an issue. Needing to scale your app is a nice problem to have. You can always re-write it in another framework (or language, even!) if it takes off.
PHP is more than capable of handling *most web projects. I would question the chose of using CodeIgnitor. Though the first thing to ask in that regards is when was this project developed? if it was recently within a year so than I would definitely say Codeignitor was not a very informed choice due to its likely inevitable death for more modern solutions in the open source realm. As for PHP Rubiest just like to bash on PHP. Their claims have some merit but for the most part both languages are capable of the same things.
What advice would you give me? My choice of CI was based on economical decisions and readily available talent. There tends to be far more PHP developers than Ruby developers out there. Should I switch to Laravel?
I think you’ll find that once you get past the people who call themselves PHP developers and the ones who are actually know what they are doing, the numbers will even out or get pretty close. The entry bar for PHP is pretty low, which leads to a lot of people who don’t really know what they are doing calling themselves developers. These people writing bad code is also part of the reason why the language gets a bad name.
I don’t mean to say this to persuade in either direction, only that it shouldn’t matter. There are plenty of developers, as long as you pick a major language.
CI is an excellent choice, first started about 2006 (using PHP 4) and was mean, lean, fast and bleeding edge without even needing any of the numerous caching drivers to make it one of the top PHP Framework performers. Since then it has steadily grown, now recommends a minimum of PHP 5.4 and incorporates lots of other goodies.
There is an online wealth of nearly ten years information available which will no doubt supply numerous solutions to any problems.
EllisLab stopped developing their free CI version about a year ago, to concentrate on other more lucrative platforms and CI started to receive a lot of bad press. It is now in the capable hands of a thriving Canadian University and once again is growing in popularity. Their latest Github Version 3.0.0 is imminent from a team of over three hundred excellent contributors. https://github.com/bcit-ci/CodeIgniter
I don’t think changing to another PHP Framework back-end or language will make much difference to your site, more to do with the actual content, user interface, aesthetic front end and mobile compatibility.
Can you supply a link to your web application? Also possibly request a review for any aspects you are having problems which could be improved.
I would agree that if you have problems fix them but if you don’t refrain from solving problems you don’t have. Especially one which would require a complete redevelopment effort. With that said I still think using Codeignitor for projects today is a bad choice. However, if CI is what is being used than unless there a problems with it outside of it being a dieing breed I wouldn’t recommend redeveloping your system on something else. Things come and go everything dies eventually. What is in today will out tomorrow and all that. So before investing the time and money to do something you should have a good reason that is probably more business focused than anything else.
Honestly, I submerse myself in this industry and haven’t heard a whole lot about CI in several years. Not to mention why develop NEW projects on some old, decrepit system when there are so many more well thriving ones out there. To me it makes no sense. CI might be alive but it is definitely on life support in comparison to others. I don’t think anyone is excited about CI development besides for those people trying to keep it on life support and/or stuck in their old ways. For a new project I can’t believe anyone besides those mentioned would think it would be a good idea to build using CI in place of Laravel or Symfony for instance.
I think so, yes. CodeIgniter’s new version has a minimum PHP version 5.2, I guess this explains how irresponsible and incompetent their dev team is to release a major version that support old fashioned PHP 5.2 in 2015. Read this article for more details:
Many thanks for your response but I will not try to argue because of your lack of CodeIgniter usage and knowledge.
I took the time to read Anthony Ferrara’s ignorant, rant, who eventually admitted, way down towards the end of his blog:
The mind boggles! I wonder how many advertising clicks he got from his troll posting.
Nicked from CodeIgniter Server Requirements:
Surely any old PHP Version can be used and PHP Frameworks can update their libraries to prevent security issues? Whenever a CodeIgninter user discovered that security was comprised, a release and/or fix was issued very quickly and usually within 24 hours. Personally I think that using the latest PHP version mollycoddles developers into a false sense of security.
I stumbled across the following realistic and exhaustive comparison between the two platforms:
I totally disagree with you and agree with Anthony Ferrara instead. There is a reason why popular PHP frameworks such as Symfony, CakePHP, Zend and Laravel no longer supports php 5.2. Wordpress still supports it, but it does recommend PHP 5.4+ and the next version 5 will surely drop PHP 5.2 support. Its irresponsible and incompetent for a modern PHP framework/software released in the year 2015 to support PHP 5.2, when PHP 5.3 already became EOL’d and soon will PHP 5.4. My point stands that CodeIgniter needs to make a cutting edge change to stay in the tough competion, its not the industry leader like Wordpress which is fine just maintain its current popularity. With CodeIgniter 3 supporting PHP 5.2, I dont see how it will survive the competition, it offers nothing exciting as compared to other alternatives. Just as we are speaking, CakePHP 3 already drops PHP 5.3 support and it requires PHP 5.4. CodeIgniter is holding back the industry and the developers, its incomprehensible.
In the modern era of open source development it is important to recognize others work and use it when appropriate. This practice not only aids in normalizing the landscape but provides a form of repayment which in turn indirectly increases the audience of both projects. The larger the audience the more likely a project is to succeed. Furthermore, the form of payment in the open source realm is having others use your code. A project that is open source which does not engage in this methodology provides no form of repayment to the open source ecosystem which it is apart. A projects that only gives back to the community by allowing code commits but not integrating others solutions is one that has no respect for the ecosystem which it exists and is destined to eventually be cast aside.
Therefore, projects like CI will eventually die unless a decision is made to engage in well known, modern open source solutions for low level functionality. Five ten years ago we didn’t have the large ecosystem of open projects as we do today. So at that time it made sense to build things yourself. The thing that is continuous throughout the modern open source development community is engaging and using other peoples solutions in place of building your own. For example, if you need a mailer why build your own. Why not use Swiftmailer. If you need a router why build your own when Symfony has one tried and true. If you need a database abstraction layer why build your own when there are so many existing and well documented ones out there. It just makes no sense. To survive older projects will need to recognize the change in landscape and replace out-dated, tightly coupled – framework specific code with more modern replacements. If they don’t other projects like Laravel that do will surpass them.
I will also say that I think it is a complete disservice to students adopting a single platform. Especially one that does not make use of all the new modern advancements in the PHP realm. However, I’m not surprised because educational institutions are notorious for teaching outdated practices. I can’t help to think who thought it would be wise introducing students to CI over individual, decoupled components like those available in Symfony which are being leveraged in MANY open source projects. For example, if you learn Symfony your not only learning Symfony your learning Drupal, Fuel, Laravel indirectly. I would think if one were to teach specific frameworks it would be one that offers the most valuable.
There is nothing wrong with using code igniter I use it for a couple things for their stance on backwards compatibility and with CI3 having composer built in you have access to the vast packages out there. It’s still a solid framework and long term applications are usually rewritten often on a need case more than anything else. forst drafts are almost always discarded eventually
If you are starting a new project, then its very wrong to choose CodeIgniter since it still supports PHP 5.2 and is holding you back from many advanced PHP new techniques. Since you talk about backward compatibility, I assume you have a legacy application to maintain, which is a different problem. Of course, in this case CodeIgniter can be the right choice for you, but for any new and modern application built in 2015 CodeIgniter is no longer a reasonable choice.
In short, NO, Code Igniter wasn’t the wrong choice. It’s a perfectly good framework. Other commenters will use other frameworks, but for most the choice is about getting the right tool for the job in hand, leveraging past experience, and personal preference.
I’ve been using Code Igniter for a couple of years and I love it. It’s fast, capable, well documented, and it’s not over-engineered like many of it’s competitors. Frankly, after looking at other more complex frameworks (including Laravel) I still prefer CI, although I’m now using SprintPHP on top of it to give me some extra capabilities. I’m just as productive in CI as others are in their chosen framework, and I like the performance I get out of it.
As with any system, you need to choose the right set of tools, and some tools are more important than others. The language is probably less important than many other choices.
If your app works to your satisfaction then there’s no need to rewrite it. Scaling a website is a science that has little to do with the language it’s written in. It’s more about the system architecture you’ve chosen, the capabilities of the database layer (particularly in terms of replication), etc.
Don’t pay any attention to the PHP-haters. Most of them are just regurgitating the rubbish they heard from someone else years ago. Many of them have only ever worked in one language and foolishly think theirs is the “best” because they lack the ability to truly compare them, or to understand that some tools are better for certain jobs than others. All languages have their strengths and weaknesses, and those who bag languages like this are generally just exposing their own ignorance and insecurity.
There is some merit to the point that CI v3.0 will be based on PHP 5.2 and that a later version would have been preferrable. However this decision hardly deserves the vitriol I’ve seen poured on it by other commenters. CI v3.0 does introduce a large number of fixes and structural upgrades, and the PHP version will be upgraded in due time. There’s only so much a dev team can do within a short timeframe and the new owners of CI have done a great job so far. I expect to see things continue to evolve in the near future.
As long as your app works you made a perfectly valid choice. Worry about marketing and monetising your app
There is no merit that CodeIgniter 3.0 supporting PHP 5.2, just totally irresponsible and incompetent. Read Anthony Ferrara’s blogpost and you will understand, and Anthony is a well-respected PHP internal and developer, he doesnt make up this opinion for no reason at all. PHP 5.2 is an old fashioned PHP version that needs to die already, only legacy application may still rely on it. Even PHP 5.3 went EOL quite some time ago, there’s just no justification that a new and modern application built in 2015 still uses PHP 5.2. Some may argue that CI does recommend PHP 5.4, but a recommendation is still a recommendation, it does not enforce anything and therefore is not in anyway effective. If it’s merely a recommendation to stop your car behind the parking line at a red-light, rather than a requirement, then expect 100-1000x more traffic accidents everyday.
This is an interesting topic. I agree with Hall_of_Famer. Considering it’s generally painless to upgrade PHP on a server (generally a simple apt-get or yum command, although you may need to add a third party repo), there is simply no reason not to. The minor BC issues that do exist affect a tiny percentage of projects. Not only that, Anthony Ferrara’s point is spot on and if you’re upgrading PHP so you can run an updated version of your software then BC changes, no matter how drastic, become 100% irrelevant.
Why are posters continually harping on about CodeIgniter and PHP 5.2? Did they not read my post. #11?
All PHP Frameworks and CMS Systems have the unenviable task of continually playing catchup to ensure their code is secure. CodeIgniter does a good job with frequent seamless, security patches far better than the new kids on the block.
New version installations have been simple and quick to install.
Perhaps CodeIgniter could do with a new marketing ploy similar to other systems that do not deliver their promises.