CodeIgniter V3

I've heard some random talk here and there about CodeIgniter V3, but can't find any actual reference to it anywhere.

Is there any code, documentation or blog posts around that have a bit more info?

Let me second JonoB's sentiments. It would be great to have that. How do you envision that would work? Different loader perhaps? New libraries that are created use the new loading mechanism? Old ones get rewritten over time?

Is there some sort of a project plan or roadmap? How is CI organized other than through Github (I've been following that relatively closely).


You would still be in the minority...everything would have to be rewritten if you ever wanted to upgrade. And not just a little bit.

Besides, you can already access everything individually outside of the CI superglobal, so why totally break backwards compatibility along with every user library and other user contributions just to appease a minority?
global $RTR; var_dump($RTR); //look ma, the router!!
global $BM;  var_dump($BM);  //the benchmarking class
global $CFG; var_dump($CFG); //the config class
global $URI; var_dump($URI); //the URI class
...and on...

Reading the thread, JonoB's response was to Phil's comment about adding a secondary OOP solution which doesn't break the existing code. Hence my support of that.

You may be right that it's a minority concern, but only because the average CI user probably doesn't know what a singleton is. From the help/questions I've fielded here and there - a lot of CI users are just following the framework. That doesn't mean the architecture has to suffer endlessly for people who want to really develop long lasting OOP applications that use more of the powerful features in PHP 5.3 and soon 5.4.

That said I'm a happy CI user and have found my way around some of these problems, but you can't deny it's not ideal.

I didn't see where he proposed a secondary solution that didn't break existing code, you did. He proposed killing the singleton, which is a radical departure from the way things are done with CI. They only dropped PHP4 support, what, a mere year ago (how long was 5.x out when they decided to do that? It came out in '04). One of the goals is to run in as many environments as possible. It was never meant to be a fast paced, modern specific php versioned framework, at least, from everything I've ever read from the authors. I doubt they will even use namespaces for at least 2 years. The popularity of the frameworks that do use namespaces, or other 5.3x specific features, have a very small user base, relatively speaking, because most hosts still aren't running 5.3 yet. Nothing wrong with that...different creatures and philosophies.

Irrespective of how up-to-date or modern CI is 'meant' to be (or not as the case may be), at some point in time the framework will have to move on from the singleton, or at least offer an alternative.

It is inevitable, so (from my point of view anyway), why wait?

[eluser]Phil Sturgeon[/eluser]
Hey CroNIX, please don't jump to conclusions. The team has not decided how to proceed, but you should not assume that we plan to randomly break anything. CodeIgniter has always been about backwards compatibility and that is shown by the fact that upgrading from 1.5.x to 2.1.0 only took me a few hours on a recent client job.

It is also worth remembering that everyone involved in development have commercial applications and client projects running on CodeIgniter. Do I feel like totally rewriting PyroCMS and Pancake? Absolutely not. Does CodeIgniter need to start using some more OOP logic? Absolutely!

A secondary method will be added for 3.0 to load libraries, models, etc. That much is agreed on the team. How? Not sure yet, but please don't spread around any misinformation 3.0 requiring a total rewrite as nobody said anything of the sort.

Phil, I think you totally misread/misunderstood what I said. I agreed with everything you just said. I never said v3 would require a rewrite of anything. I was saying if they killed the singleton, as was suggested, it would require a rewrite of...everything. I was defending why CI doesn't adopt the "latest and greatest" features from the current bleeding edge php it can be used by the largest audience, not just the relatively few people whose server is running 5.3x.

Yes, it was a very easy search/replace to upgrade from 1.7x to 2.0. However, if the above suggestion of "killing the singleton" went through, you would probably agree that that is a LOT bigger problem to solve and you can't just use a simple search and replace on that.

Glad to hear there will be a backwards compatibility layer for getting rid of the singleton, but how will that affect performance?

[quote author="CroNiX" date="1327179863"] but how will that affect performance?[/quote] My guess...

- Application performance will be slightly worse.
- Developer performance will be much better Wink

[eluser]Phil Sturgeon[/eluser]
Right now the Loader class loads a class when you tell it to.

The Autoload feature of PHP (not the "always load" autoload we have in CI) loads a class when you don't tell it where a class is, so it goes looking.

Autoload is by design slower as it has to do some guesswork, but having both in there would not be any slower than having one or the other by itself.

Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  

  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2020 MyBB Group.