Based on the CodeIgniter 3 PHP framework, Sprint provides the essential running start to get you to the fun part of building your web applications. It provides additional utilities and workflow enhancements to stock CodeIgniter. In the process, it helps to modernize the code a bit.
Sprint is intended to be the heart of Bonfire Next, though that integration has not happened yet.
I found that for a number of my recent projects, the current Bonfire code was too much, too opinionated and fully developed. And the clients were requesting for me to use the Foundation CSS Framework since that's what they use in house, and Bonfire was built on Bootstrap. Besides, sometimes Bonfire is just too big of an application for your projects.
While working on Bonfire Next and an in-progress book on modernizing CodeIgniter and it's practical usage, I realized that I could reform the current slimmer codebase that I've been using and make it the core of Bonfire Next. The goal is to have basic functionality and workflow in place in Sprint, and to build on that in Bonfire.
So Sprint is basically CodeIgniter, but with more cowbell.
NOTE: This is currently in a Beta-release state. What's that mean? It means that no new features are expected, but is a time for bugs to get hunted down and stomped out. If you use the project and find changes to the code or docs, pull requests are accepted :) Preferably with tests in place, though I won't be enforcing that at this point.
- PHP version 5.4 or newer.
- SimpleXML enabled on your PHP installation for the docs to work.
- Composer installed on development server.
- A Database. We currently use MySQL but try to keep it fairly flexible.
Found A Security Issue?
I take security very seriously in Sprint and strive to create the most secure package that I can. If you have located what you believe to be security issues, please contact me at firstname.lastname@example.org with the details, instead of posting them as an issue on the repo or forums. That only releases the security hole to potential attackers before it's had a chance to be fixed.
How To Install?
Installation instructions can be found in the docs source here on GitHub.
What's In The Box?
The following is being built for the initial release:
- Powerful MY_Model with standard CRUD, db wrappers, observer methods and in-model validation
- MY_Controller with simple theming, rendering methods for other data types (like json) and more
- Extended Router to include module support, named routes, HTTP verb-based routing, Restful resources and scoped routes/areas.
- Simple, but flexible, Template system
- Module Support, without being able to call other controllers. That simply gets too complex and causes too many problems. Instead, it's simply the ability to keep MVC triads in modules that can still be called from the URI.
- Better Database Migrations, with CLI tool for building and running
- Database Seeding with CLI tool
- Markdown-based documentation system.
- Flexible Events system with priotized publish/subscribe methodology.
- Simple, GUI-less cron controller that can be used through standard crontab or scheduled tasks.
- Settings library for maintaining system-wide settings, either in the database, config files, or a combination.
- Simple, but expandable, Authentication and Authorization system with flexible Password strength checking
- Email Queue system allows for very flexible email generations and sending.
- The Forge - a code builder with simple generators in place, but fully customizable and easy to add your own.
What's NOT included?
Sprint will not include much in the way of a built-in admin area, though it will have default views that can be incorporated into your own areas.
It will not include a method for working with assets as much of this can be handled easier and with higher performance on a per-project basis, often using something like CodeKit.
Where's the Docs?
Docs are included in the repo itself, and it comes with a pretty nice documentation system built on simple Markdown-formatted files.
To view the documentation, download the code, and point your browser to
/docs. The rest should be working fine, but please let me know if you hit any snags!
To view the docs prior to downloading, you'll have to browse the files in the repo for now. Before too long, we'll have a site setup for it. But the current focus is on the initial release getting whipped into shape.