Table of Contents

Site Structure

Sprint's site is structured with two main goals in mind:

  • Keep Sprint's core code out of your code (the application folder)
  • Help you keep your project organized amid the pressures of everyday development.

Hopefully, this page will give you an idea of the reasoning and purpose behind the structure.

SECURITY NOTE For additional security you are encouraged to modify the structure to remove all non-public files from the web root.

Folder Structure

application/
errata/
myth/
index.php
system/
tests/
themes/
vendor/

Application

The application folder is where you will do most of your work. This contains all of your controllers, libraries, helpers, models, and any modules you might use.

As much as possible, Sprint stays away from this folder. However, there are a few files that we cannot move out of the application folder due to restrictions in either CodeIgniter or the HMVC solution that we use. In most cases, those files are just fine for you to edit, anyway. These are files like MY_Controller, etc. In these cases, though, we do try to extend a class with our namespace to keep the actual working code away from yours.

Most of the folders with the application folder are the standard CodeIgniter folders you would expect. There are a few new ones that Sprint adds.

Database folder

The database folder stores two things. The first folder, migrations, holds the migration files that are specific to your application as a whole. The second folder, seeds contains Seed files that allow you to easily populate your site with data.

Docs Folder

The docs folder is a placeholder that is already setup for you to add your own, application-specific documentation. See the section on writing documentation for details.

Mailers Folder

The mailers folder holds the class files that our Mail System uses to allow you to maintain fine control over the emails that you send from your system.

Modules folder

This folder is where you should create all of your own modules. It is also where Sprint creates module-related files for you. Each module should have a folder of it's own unique name here.

Assets

The place where any site-wide assets are kept. Things like CSS files, javascript files, images, and more.

Errata

This simply contains the the license files and readmes from CodeIgniter and other packages.

Myth

This folder holds Sprint, itself, and is the container for the Myth namespace. All of our core files are stored under here, as well as any modules that are available to use within your own application. The following folders are where you might want to browse through to see how some of the things work in action.

  • _docs_src holds the Markdown-formatted files that are the user guide for Sprint developers.
  • CIModules - is the container for the modules.

All other folders are to provide PSR-4 namespacing for our code.

System

This is the standard CodeIgniter 3 system folder.

Tests

Contains the tests for Sprint, built using Codeception and Mockery. You are encouraged to continue using the folders for your own tests. When doing so, you should create a new folder under tests/acceptance, tests/functional and tests/unit to contain your own tests. This allows you to easily run only your own tests, and not have to run ours all of the time.

Themes

Each theme is stored under this folder, with the folder name matching the name of the theme in your config file. By default, it contains four themes:

  • bootstrap3 - a set of standard layout files built with Twitter's Bootstrap 3.x CSS framework.
  • foundation5 - a set of standard layout files built with Zurb's Foundation 5.x CSS framework.
  • docs - the theme used for the docs.
  • email - the generic theme for any emails sent from the system.

Vendor

This is created when you run Composer to hold third-party packages.