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!

Posts Filed Under “Sprint”

Hello. It's Me. I bet you were wondering if the day would come when Sprint would ever actually have its own pretty website? Well - you're in luck. As of today (or whenever your browser DNS lets you see it), whenever you venture over to you'll be directed to it's shiny new home.

Before you start asking:

  • Yes, there will be more videos in the near future.
  • Yes, there will be better docs.

Speaking of docs - I'm almost finished with a new, central location for the New Myth Media family of project documentation. At least, finished for now. Things are never truly finished, you know that. Once it's ready, the links on all of the sites will update and send you to Don't go there today. It likely doesn't work. Unless you're reading this in the future, in which case, it likely does work...

That's it for now. Back to enjoying the Christmas break and the hundreds of other items on my ToDo list.

Sprint was just updated to use ZendFramework's escaper for the auto-escaping of data in ThemedController. This now supports different contexts to ramp the XSS protection up to 11.

This IS intended as a replacement for CI's xss_clean function. You should definitely upgrade, read up on the Escaper, and modify your code to ensure your security is kept working well.

Documentation has been updated in the repo to reflect this change.

Over the last week I've released two additional videos covering the Forge that should help you get up to speed on how to use it to dramatically increase your productivity.

Please, remember, the Forge generators simply generate code that functions as a starting point. They are not magical CRUD, so you can still customize the output (and should!) to meet your application's specific needs, but you'll shave hours of development time off of the typical application by using these.

Sprint got it's first video today.

In 7 short minutes I walk you through installing Sprint using Composer, provide a brief overview of all of the folders in the default install, and get your database setup and ready to go.

The is only the first in a number of planned videos intended to help you understand the concepts behind Sprint, not step you through copy-paste tutorials that only teach you steps. I'm a firm believer in understanding the concepts behind what you're trying to learn. From there, everything gets easier and it just becomes implementation details.

Whew! Sprint went Alpha on December 12 of 2014, about 3 months ago. And today, we've officially hit Beta status! There's been a TON of work in the last 3 months to create a product that helps you really speed your development time.

There's been a lot of new docs written, including a shiny new Simple Blog Tutorial that covers a lot of the best parts of Sprint in probably 30-40 minute tutorial. There's also been a lot of work under the hood, lots of bugs squashed, and some streamlining and fine-tuning to make it even nicer to use for you.

For API Builders

One of the biggest new features are some tools to quickly build up an API Server. Now, I understand this won't fit everyone's needs, but I think it covers enough basics that you can rapidly build on it and still save tons of time.

First is the ApiController, which contains enforces numerous restrictions (like AJAX-only, HTTPS-only, rate-limiting, IP black/white listing, etc), as well as a number of convenience methods that make returning the correct status code a no-brainer, like respondCreated, respondDeleted, failResourceExists, failResourceGone, and quite a few more.

The real time-saver here, though, is a set of Forge generators that will quickly build out the basic CRUD methods for a single resource for you, including simple API Blueprint doc files.

What's Next?

Over the next 3 months we will continue to squash bugs and refine the entire package, though we are pretty much on a feature freeze until the 1.0 release.

In the meantime, we will be working on a new website, with a number of short, succint video tutorials covering different aspects of the software. We actually have a designer who has offered up their services to help us out and that's exciting!

Sprint is just the first part in a new Bonfire family, so expect some really big things over the next year or so. I've got a road-map roughed in my mind and some very exciting aspects for the future of the project in mind. So, be sure to stay tuned!

Changes Since Alpha

(In no particular order)

  • AJAX features were removed. This framework shouldn't specify any form of front end code.
  • API Server Controller and other resources to make creating an API server pretty simple. Includes HTTP Basic and Digest Authentication.
  • Forge - API Install and API Scaffolds allow you to quickly create basic resources for your API.
  • Added Kint Debug Tools
  • Simple Build System in place - used when packaging up files for release, as well as after inital install and can easily be used by you.
  • Encryption key automatically set in config file during install if using composer create-project
  • Sample Data removed add added to it's own repo
  • Moved Docs to use phpLeague's CommonMark library. You'll only notice if you're using tables.
  • All main parts of Sprint should now be localised. Note, this does not include the generators which are still English-only
  • Stayed up to date with latest changes in CI 3
  • Additional Docs, including a new Simple Blog Tutorial that covers lots of ground.
  • New environment wrapper to restrict routes to only certain environments.
  • Additional tests written, though there's still lots more to write.
  • LocalAuthentication will automatically rehash passwords if the hash_cost changes.
  • New CLI tool to test system to determine appropriate hash_cost for password generation
  • FlatAuthentication updated to include "private permissions" which means it should meet all of the requirements of a Flat RBAC system.
  • Lots of bugs stomped