The New Myth family: SprintPHP Bonfire Practical CodeIgniter 3

New Myth Media Blog

Serving the New Myth Media Family.

Practical CodeIgniter 3 Released

My new book about making the most of CodeIgniter 3 is out!

Work on the next release of Bonfire is well under way and we have some exciting things in the process. Today I want to highlight 3 of the largest changes that are being made since they will affect anyone who decides to work off of the latest develop branch. Note that because of these changes, upgrading from earlier versions is difficult, at best. It is recommended that this version be used on new projects.

New Folder Structure

To better aid in security and ease of upgrading, we've implemented a completely re-arranged folder structure for Bonfire. It separates out the core Bonfire as much as CodeIgniter will let us, and keeps your application separate from Bonfire. This makes upgrading Bonfire in the future much simpler since it's all contained in its own folder.

We've also moved the core, your application and modules out of the webroot for the enhanced security that comes with making your files harder to get to. It's a small thing, but we think it helps keep your apps even more secure in the long run, which is good for everyone.

You can find the details over at the wiki.

More secure passwords

Keeping with the theme of security, we have moved the Auth library and all users to use phpass for the password encryption. This provides a much more difficult to hack password encryption scheme on a number of levels.

Note that during an upgrade of a site, all users are set to have their passwords reset on their next login. The guts are in place on this, but we're actively working on the process for the user during the login to actually detect that it needs to be reset and prompts them to reset it. That should be in place shortly.

Better Admin Theme

While Bonfire has always looked alright, I've never been overly happy with the design. It never held that polish and shine of a pro app. We're getting ready to change all of that. After I made a comment asking if we had any designers in the house, Bogdan Lazar stepped forward and has graciously offered his help to come up with a new look for the Bonfire admin area. The goals are to create something clean and professional that is even more well-suited to putting a professional face on your web applications. We're just in the beginning stages of the design, but I am very excited about the possibilities. Keep an eye out for screen shots in the next few weeks.

While you will see changes to the theme in the current develop branch, they are not the final theme. They were what I was working on when I got an offer from Bogdan to work with us so kindly ignore that for now. :)

Smaller Things

Cronjobs

Work is nearly completed on a new Cronjobs module that allows your modules to easily create cronjobs that can be scheduled to run just like a typical Unix-style cronjob. Note that you'll still need to setup the full cronjob to run Bonfire's module, but that single cron will trigger all of your site's cronjobs, when necessary throughout the day. Besides being very flexible, this helps overcome restrictions on the number of cronjobs that can be ran by a number of hosts.

More robust installer

The installer has had a number of new checks added to it and made a little clearer and more usable. We know there's still more to do there, but we're getting closer.

More thorough language support

Many loose strings have been hunted down so the site can be even more localized. We also have a French translation in the works, now.

Database independence work

Much work has been made in removing any MySQL specific code to use CodeIgniter's ActiveRecord for more database independence. We have found some limitations in CodeIgniter's support for other database features. For Example, while the installer supports setting you up with a MySQLi driver, the driver doesn't support creating backups so that feature is now broken when this driver is used. We're looking at ways to get around this or even help CI upgrade their driver, but it's going to take a while.

And more...

Many bugfixes have been done and are being hunted down. Documentation is still getting written. Work is always continuing on the project, so if you'd like to get involved and help with either of those areas, we'd love to have your help!