There’s some discussion in a thread on CodeIgniter about microframeworks, and there’s always some discussion about the newest, latest and greatest PHP framework. I know the market is a bit crowded, but here’s a little something I’ve been working on outside of my time at EllisLab. I’m a bit hesitant to release it to the world, since it competes directly with both CodeIgniter and ExpressionEngine, but its so good that I can’t help myself. I hope you’ll enjoy it as much as me. Here’s some highlights
- It works on all versions of PHP (yes, even those not released yet)
- Its FAST. Really fast. The fastest against anything I’ve ever benchmarked it against and is WAY faster then CodeIgniter.
- Tiny footprint. The whole framework is only a few KB big.
- Compatible with every database that PHP supports.
- Pretty good documentation (not fully developed yet).
- Very small learning curve. If you know PHP, you’ll pick it up right away.
- Catchy name… I mean seriously, who doesn’t think that “Igniter-zen-i-rails” doesn’t kick ass? Crazy people, that’s who.
- We’re corporate… but not too corporate.
- Albatross!
Seriously, you should try it.
I’ve included my files so far. Its pretty mature so don’t expect any more development on it. You can get the files by reading the full post.
Version 1.6.1 is primarily a maintenance release, but does bring a handful of nice feature additions and enhancements, such as Active Record caching, a new Path Helper, and a series of enhancements for working with multiple character sets. After a very successful 1.6.0 release, a series of bugs have been squashed and enhancements have been made that we wanted to roll out as a formal release. Updating from 1.6.0 is as easy as simply replacing a few files in your system directory (full update instructions).
Work continues at a fever pitch, and we’re looking to make the next release into something very special. For full details, here’s the official announcement.
Happy CodeIgniting!
Elliot Haughin is a popular CodeIgniter user who keeps a blog of all things web. In a wonderfully written forum post, he takes the time to explain how caching works in CodeIgniter. It is haiku. Well done Elliot, thanks for taking the time to write this up. Much appreciated.
A month and a half of really, really solid work has started to pay dividents! I’m very proud to announce the release of CodeIgniter 1.6, the kick ass open source web application framework for PHP developers working in the real world. The release marks a new turn in the development of the framework, and has received considerable attention from both EllisLab developers, and the community.
Among a host of new capabilities, this release features:
- A Database Forge class: database agnostic table and field manipulation
- An enhanced Active Record library
- A revised Session Class with “flash variables” and additional security
- An extendable Model Class with auto-loadable Models
- Extendable Helpers, and additions and enhancements to existing Helpers
- A revised view architecture that allows for simple inclusion of multiple views
- And over 120 different enhancements, improvements and bug fixes. Yup one two oh other changes.
What’s even more exciting? Development on CodeIgniter is moving forward in earnest. There are great things on the horizon, and as soon as some of the 1.6 dust settles, we’ll be ready to kick up more dust in the form of another version, with a raft of new features. I expect the release cycle to get much tighter now.
Some of the changes are so simple and elegant, I’m kicking myself that I didn’t think of it earlier. The new view functionality for example is so simple yet functional. Rick did a great job with that. Extending the helpers? I love this change. That particular innovation was courtesy of Derek Jones. Again, very simple, very elegant change. Brilliant.
I hope this release is as exciting for you as it is for us - and hey, just because its out doesn’t mean you get to sit back now! Keep hitting the SVN for more changes, features and enhancements.
As of CodeIgniter 1.6.0 (not out as of this writing unless you use the svn repository), you’ll be able to “extend” CodeIgniter helpers. This is a huge convenience if you just need a small change, or a single additional function, but don’t want to make an entire duplicate copy of the helper.
For example, I often find myself needing a “mysqldatetime_to_timestamp()” function in there. Previously, it would mean making an entire duplicate helper in application/helpers, but now, adding an additional function is as easy as creating an application/MY_date_helper.php page, and just adding in a single function.
function mysqldatetime_to_timestamp($datetime = "")
{
// function is only applicable for valid MySQL DATETIME (19 characters) and DATE (10 characters)
$l = strlen($datetime);
if(!($l == 10 || $l == 19))
{
return false;
}
//
$date = $datetime;
$hours = 0;
$minutes = 0;
$seconds = 0;
// DATETIME only
if($l == 19)
{
list($date, $time) = explode(" ", $datetime);
list($hours, $minutes, $seconds) = explode(":", $time);
}
list($year, $month, $day) = explode("-", $date);
return mktime($hours, $minutes, $seconds, $month, $day, $year);
}
Also, if you want to change the behaviour of a current function, you can simply create an identically named function. Perfect for getting seconds out of timespan() (a personal bugaboo).
Of course, this is on top of an impressive change log of other features added into 1.6.0. The future looks very bright indeed!
* This function originally written by Clemens Kofler.
There’s been renewed discussion about CodeIgniter moving to a PHP 5 only framework within the community. This post is my attempt to articulate the point of view of the development team, and my personal reasons for why we will not go this route.
First of all, let me just say this “I like PHP 5”. A lot. I use it exclusively for my personal development, and I want to see it adopted more. I don’t like PHP 4 much, and in fact, I’d love to not need to support it. But the fact of the matter is that the vast majority of PHP servers out there are still running PHP 4, and we want our products to be accessible for the widest possible audience. We will not be dropping support for PHP 4 anytime soon.
What follows in this entry is my full reasoning. Want to see a PHP 5 CodeIgniter? Read on…
I’ve been quiet on the blog recently… but not in my code - and the same can be said of the rest of the EllisLab dev team. I’m finally ready to say that the next version of CodeIgniter will be out shortly. We’ve added all our completed* work into the subversion repository, and we’re just finalizing a few bug fixes and admin details before we go formal with it. If you have access to the bleeding edge that is our SVN, please grab a copy and run it through its paces. Beat it up, inspect it… poke, prod and otherwise try to tear it limb from limb.
And let me also just add that we are not done. Not by a long shot. What is up there now represents much less then a month of development - and we’ve been doing massive work on ExpressionEngine 2.0, so this is all “trickle down”. There are many more exciting things in the works that will make it into CodeIgniter shortly.
*What an odd choice of words… “completed”... Does it make you wonder what kind of half-finished but not quite ready for prime-time stuff is coming down the pipes?
Ever wanted to pick Rick’s brain in person? Ever wanted to scream at me for introducing a bug into CodeIgniter? Now’s your chance!
If you’re going to South by Southwest this year we’re holding our usual party (last year’s was awesome), BUT we have MUCH more goodness going on. Check out http://camp.ellislab.com/
- ExpressionEngine 2.0 Sneak Preview
- EllisLab Open Panel Discussion
- Party at the Moonshine Grill
- Solspace Night Cap
- Brunch “Click” Event
And of course, just hang out with us… we’re cool like that.
I’m very proud to say that I’ve formally joined the EllisLab development team as a Technology Architect. In the near term future, I’m focusing on code changes to ExpressionEngine and CodeIgniter in our goal to get EE 2 out the door (its a major task). I’m looking forward to sinking a bit more time into the codebase, which I really haven’t had the opportunity to do.
Not many people realized it, but I was only onboard with EllisLab part time. I’d spend a few hours each day working there, mostly in the support forums, where I acted as Senior Technical Support Specialist. The rest of my day was spent running my business, which I’m fortunate was pretty busy. So yeah, I was the classic “freelancer” - keeping busy with client projects and programming. Freelancing was very good to me, but it’s a bit “unrewarding” (is that a word) to pour yourself into a project, and then have it end. What I really wanted professionally, was to be part of something “bigger then I am”.
Now EE 2 development is underway, and EllisLab needs a few more hands on deck. If ever there was something worth joining, if ever there was something that I want to have a legacy in… its ExpressionEngine and CodeIgniter. So I did something that scares the hell out of me - I put my business (which I’ve proud to say I’ve built up into a nice little organization since 1999) on hold, and accepted a senior role at EllisLab.
Time to start building up a new legacy.
I stumbled across two noteworthy CodeIgniter blog posts today when reading the forums today, that I wanted to share.
- Favio wrote Forms in CodeIgniter Views. Essentially, what they’ve done is created a controller that takes the data you feed it (as a csv via a textarea) and generates all the validiation rules for you, as well as the forms. Looks very promising, and is a clever solution.
- Jonathan Abbett posted instructions on how he uses Oracle with PHP and CodeIgniter. Its well written, step by step, and hopefully will be useful for you.
There’s a lot of exciting things happening in the CI community recently - its hard to keep up with everything.