Bonfire's site is structured with three goals in mind:
Hopefully, this page will give you an idea of the reasoning and purpose behind the structure.
application/
archives/
cache/
config/
controllers/
core/
db/
backups/
migrations/
docs/
errors/
helpers/
hooks/
language/
libraries/
logs/
models/
modules/
third_party/
MX/
Sparks_Loader.php
views/
bonfire/
codeigniter/
controllers/
core/
docs/
helpers/
libraries/
migrations/
modules/
public/
assets/
cache/
css/
images/
js/
index.php
themes/
admin/
default/
docs/
tests/
_support/
application/
bonfire/
simpletest/
tools/
lib/
spark/
spark_types/
spark
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, Bonfire 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. Most of these files are located in the application/third_party
folder or the application/core
folder.
The application/third_party
folder contains Sparks_Loader.php
for sparks support and the bulk of the HMVC solution, located in the application/third_party/MX
folder.
While it is best to stay away from the *_Controller.php
files in the application/core
folder (you can create your own controllers in this folder to extend them), the MY_Model.php
file is intended to be modified as you see fit.
Most of the folders within the application folder are the standard CodeIgniter folders you would expect. There are a few new ones that Bonfire adds.
The db folder stores two things:
This folder is where you should create all of your own modules. It is also where Bonfire creates module-related files for you. Each module should have a folder with its own unique name here.
It is also possible to override portions of Bonfire's core modules by adding files here, following the folder/file names in the Bonfire module you wish to override.
The bonfire folder holds Bonfire, itself, as well as the codeigniter system files.
This folder is where you should point your domain name to. It holds the files and folders that should be accessible from the web.
In some situations, you may prefer a more traditional folder structure that has all of the files and folders located in the web root. This might be due to restrictions on shared hosting, or becuase you prefer easier installation for your customers. This can be easily done by moving the files and folders from the public folder into the same folder as the others, overwriting the root index.php
with the public/index.php
file. This would leave a folder structure like:
application/
assets/
bonfire/
index.php
tests/
themes/
After you've moved the files, you need to edit the main index.php
file to let CodeIgniter know where to find the application and system folders.
$path = '.'
Changing this variable will set all of the other paths.
1 ms | Loading Time: Base Classes |
7 ms | Controller Execution Time ( Docs / Index ) |
11 ms | Total Execution Time |
0.0002 | SELECT GET_LOCK('7745be82543169ab1b5534538b132a51', 300) AS ci_session_lockSpeed: 0.0002 - Possible keys: - Key Used: - Type: - Rows: - Extra: No tables used |
0.0003 | SELECT `data` FROM `bf_ci_sessions` WHERE `id` = 'gu0a2hspn67mhs75uar1sff6oac0s6l9' and `ip_address` = '18.223.159.143'Speed: 0.0003 - Possible keys: - Key Used: - Type: - Rows: - Extra: Impossible WHERE noticed after reading const tables |
0.0004 | SHOW TABLES FROM `bonfire` |
0.0003 | SELECT * FROM `bf_settings`Speed: 0.0003 - Possible keys: - Key Used: - Type: ALL - Rows: 42 - Extra: |
0.0013 | Total Query Execution Time |
__ci_last_regenerate | 1734909789 |
requested_page | https://kampensonline.com/docs/developer/site_structure |
previous_page | https://kampensonline.com/docs/developer/site_structure |
No GET data exists |
No POST data exists |
docs/developer/site_structure |
docs/index |
HTTP_ACCEPT | */* |
HTTP_USER_AGENT | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) |
HTTP_CONNECTION | |
SERVER_PORT | 443 |
SERVER_NAME | kampensonline.com |
REMOTE_ADDR | 18.223.159.143 |
SERVER_SOFTWARE | Apache/2.4.62 (Ubuntu) |
HTTP_ACCEPT_LANGUAGE | |
SCRIPT_NAME | /index.php |
REQUEST_METHOD | GET |
HTTP_HOST | |
REMOTE_HOST | |
CONTENT_TYPE | |
SERVER_PROTOCOL | HTTP/1.1 |
QUERY_STRING | |
HTTP_ACCEPT_ENCODING | gzip, br, zstd, deflate |
HTTP_X_FORWARDED_FOR |
domain | kampensonline.com |
base_url | https://kampensonline.com |
index_page | |
uri_protocol | AUTO |
url_suffix | |
language | english |
charset | UTF-8 |
enable_hooks | true |
subclass_prefix | MY_ |
composer_autoload | false |
permitted_uri_chars | a-z 0-9~%.:_- |
allow_get_array | true |
enable_query_strings | false |
controller_trigger | c |
function_trigger | m |
directory_trigger | d |
log_threshold | 4 |
log_path | /var/www/htdocs/bonfire/application/logs/ |
log_file_extension | |
log_file_permissions | 436 |
log_date_format | Y-m-d H:i:s |
error_views_path | |
cache_path | /var/www/htdocs/bonfire/application/cache/ |
cache_query_string | false |
encryption_key | 92b35b02920621aedbed3b8b9a68c0f1 |
sess_cookie_name | bf_session |
sess_expiration | 7200 |
sess_time_to_update | 300 |
sess_match_ip | true |
sess_driver | database |
sess_regenerate_destroy | false |
sess_save_path | ci_sessions |
cookie_prefix | |
cookie_domain | kampensonline.com |
cookie_path | / |
cookie_secure | false |
cookie_httponly | true |
cookie_samesite | Strict |
standardize_newlines | false |
csrf_protection | true |
csrf_token_name | ci_csrf_token |
csrf_cookie_name | ci_csrf_token |
csrf_expire | 7200 |
csrf_regenerate | true |
csrf_exclude_uris | Array ( ) |
compress_output | false |
time_reference | local |
rewrite_short_tags | false |
proxy_ips | |
bonfire.installed | 1 |
site.default_user_timezone | UP12 |
modules_locations | Array ( [/var/www/htdocs/bonfire/application/modules/] => ../../application/modules/ [/var/www/htdocs/bonfire/bonfire/modules/] => ../../bonfire/modules/ ) |
site.backup_folder | archives/ |
contexts | Array ( [0] => content [1] => reports [2] => settings [3] => developer ) |
enable_activity_logging | true |
sparks_path | ../sparks/ |
template.site_path | /var/www/htdocs/bonfire/public/ |
template.theme_paths | Array ( [0] => themes ) |
template.default_layout | index |
template.ajax_layout | ajax |
template.use_mobile_themes | false |
template.default_theme | default/ |
template.admin_theme | admin |
template.message_template | <div class="alert alert-{type} alert-dismissable"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button> <div>{message}</div> </div> |
template.breadcrumb_symbol | : |
template.parse_views | false |
assets.directories | Array ( [base] => assets [cache] => cache [css] => css [image] => images [js] => js [module] => module ) |
assets.js_opener | $(document).ready(function() { |
assets.js_closer | }); |
assets.css_combine | false |
assets.js_combine | false |
assets.css_minify | true |
assets.js_minify | true |
assets.encrypt_name | false |
assets.encode | false |
assets.base_folder | assets |
assets.asset_folders | Array ( [css] => css [js] => js [image] => images ) |
ui.current_shortcuts | Array ( [form_save] => Array ( [description] => Save any form in the admin area. [action] => $("input[name=save]").click();return false; ) [create_new] => Array ( [description] => Create a new record in the module. [action] => window.location.href=$("a#create_new").attr("href"); ) [select_all] => Array ( [description] => Select all records in an index page. [action] => $("table input[type=checkbox]").click();return false; ) [delete] => Array ( [description] => Delete the record(s). [action] => $("#delete-me.btn-danger").click(); ) [module_index] => Array ( [description] => Return to the index of the current module. [action] => window.location.href=$("a#list").attr("href"); ) [goto_content] => Array ( [description] => Jump to the Content context. [action] => window.location.href=$("#tb_content").attr("href") ) [goto_reports] => Array ( [description] => Jump to the Reports context. [action] => window.location.href=$("#tb_reports").attr("href") ) [goto_settings] => Array ( [description] => Jump to the Settings context. [action] => window.location.href=$("#tb_settings").attr("href") ) [goto_developer] => Array ( [description] => Jump to the Developer context. [action] => window.location.href=$("#tb_developer").attr("href") ) ) |
emailer.write_to_file | false |
migrate.auto_core | false |
migrate.auto_app | false |
commonmark.valid_drivers | Array ( [0] => Parsedown [1] => Markdown [2] => MarkdownExtra [3] => LeagueCommonMark ) |
commonmark.driver | MarkdownExtended |
docs.theme | docs |
docs.default_group | developer |
docs.show_dev_docs | true |
docs.show_app_docs | true |
docs.toc_file | _toc.ini |
docs.permitted_environments | Array ( [0] => development [1] => testing [2] => production ) |
application.php /var/www/htdocs/bonfire/application/config/application.php |
autoload.php /var/www/htdocs/bonfire/application/config/autoload.php |
config.php /var/www/htdocs/bonfire/application/config/config.php |
constants.php /var/www/htdocs/bonfire/application/config/constants.php |
database.php /var/www/htdocs/bonfire/application/config/database.php |
events.php /var/www/htdocs/bonfire/application/config/events.php |
hooks.php /var/www/htdocs/bonfire/application/config/hooks.php |
mimes.php /var/www/htdocs/bonfire/application/config/mimes.php |
profiler.php /var/www/htdocs/bonfire/application/config/profiler.php |
routes.php /var/www/htdocs/bonfire/application/config/routes.php |
Base_Controller.php /var/www/htdocs/bonfire/application/core/Base_Controller.php |
MY_Model.php /var/www/htdocs/bonfire/application/core/MY_Model.php |
App_hooks.php /var/www/htdocs/bonfire/application/hooks/App_hooks.php |
application_lang.php /var/www/htdocs/bonfire/application/language/english/application_lang.php |
Profiler.php /var/www/htdocs/bonfire/application/libraries/Profiler.php |
Base.php /var/www/htdocs/bonfire/application/third_party/MX/Base.php |
Config.php /var/www/htdocs/bonfire/application/third_party/MX/Config.php |
Controller.php /var/www/htdocs/bonfire/application/third_party/MX/Controller.php |
Lang.php /var/www/htdocs/bonfire/application/third_party/MX/Lang.php |
Loader.php /var/www/htdocs/bonfire/application/third_party/MX/Loader.php |
Benchmark.php /var/www/htdocs/bonfire/bonfire/ci3/core/Benchmark.php |
CodeIgniter.php /var/www/htdocs/bonfire/bonfire/ci3/core/CodeIgniter.php |
Common.php /var/www/htdocs/bonfire/bonfire/ci3/core/Common.php |
Config.php /var/www/htdocs/bonfire/bonfire/ci3/core/Config.php |
Controller.php /var/www/htdocs/bonfire/bonfire/ci3/core/Controller.php |
Hooks.php /var/www/htdocs/bonfire/bonfire/ci3/core/Hooks.php |
Input.php /var/www/htdocs/bonfire/bonfire/ci3/core/Input.php |
Lang.php /var/www/htdocs/bonfire/bonfire/ci3/core/Lang.php |
Loader.php /var/www/htdocs/bonfire/bonfire/ci3/core/Loader.php |
Log.php /var/www/htdocs/bonfire/bonfire/ci3/core/Log.php |
Model.php /var/www/htdocs/bonfire/bonfire/ci3/core/Model.php |
Output.php /var/www/htdocs/bonfire/bonfire/ci3/core/Output.php |
Router.php /var/www/htdocs/bonfire/bonfire/ci3/core/Router.php |
Security.php /var/www/htdocs/bonfire/bonfire/ci3/core/Security.php |
URI.php /var/www/htdocs/bonfire/bonfire/ci3/core/URI.php |
Utf8.php /var/www/htdocs/bonfire/bonfire/ci3/core/Utf8.php |
hash.php /var/www/htdocs/bonfire/bonfire/ci3/core/compat/hash.php |
mbstring.php /var/www/htdocs/bonfire/bonfire/ci3/core/compat/mbstring.php |
password.php /var/www/htdocs/bonfire/bonfire/ci3/core/compat/password.php |
standard.php /var/www/htdocs/bonfire/bonfire/ci3/core/compat/standard.php |
DB.php /var/www/htdocs/bonfire/bonfire/ci3/database/DB.php |
DB_driver.php /var/www/htdocs/bonfire/bonfire/ci3/database/DB_driver.php |
DB_query_builder.php /var/www/htdocs/bonfire/bonfire/ci3/database/DB_query_builder.php |
DB_result.php /var/www/htdocs/bonfire/bonfire/ci3/database/DB_result.php |
mysqli_driver.php /var/www/htdocs/bonfire/bonfire/ci3/database/drivers/mysqli/mysqli_driver.php |
mysqli_result.php /var/www/htdocs/bonfire/bonfire/ci3/database/drivers/mysqli/mysqli_result.php |
directory_helper.php /var/www/htdocs/bonfire/bonfire/ci3/helpers/directory_helper.php |
form_helper.php /var/www/htdocs/bonfire/bonfire/ci3/helpers/form_helper.php |
language_helper.php /var/www/htdocs/bonfire/bonfire/ci3/helpers/language_helper.php |
url_helper.php /var/www/htdocs/bonfire/bonfire/ci3/helpers/url_helper.php |
profiler_lang.php /var/www/htdocs/bonfire/bonfire/ci3/language/english/profiler_lang.php |
Cache.php /var/www/htdocs/bonfire/bonfire/ci3/libraries/Cache/Cache.php |
Cache_dummy.php /var/www/htdocs/bonfire/bonfire/ci3/libraries/Cache/drivers/Cache_dummy.php |
Driver.php /var/www/htdocs/bonfire/bonfire/ci3/libraries/Driver.php |
CI_Session_driver_interface.php /var/www/htdocs/bonfire/bonfire/ci3/libraries/Session/CI_Session_driver_interface.php |
PHP8SessionWrapper.php /var/www/htdocs/bonfire/bonfire/ci3/libraries/Session/PHP8SessionWrapper.php |
Session.php /var/www/htdocs/bonfire/bonfire/ci3/libraries/Session/Session.php |
Session_driver.php /var/www/htdocs/bonfire/bonfire/ci3/libraries/Session/Session_driver.php |
Session_database_driver.php /var/www/htdocs/bonfire/bonfire/ci3/libraries/Session/drivers/Session_database_driver.php |
BF_Loader.php /var/www/htdocs/bonfire/bonfire/core/BF_Loader.php |
BF_Router.php /var/www/htdocs/bonfire/bonfire/core/BF_Router.php |
BF_directory_helper.php /var/www/htdocs/bonfire/bonfire/helpers/BF_directory_helper.php |
BF_form_helper.php /var/www/htdocs/bonfire/bonfire/helpers/BF_form_helper.php |
application_helper.php /var/www/htdocs/bonfire/bonfire/helpers/application_helper.php |
config_file_helper.php /var/www/htdocs/bonfire/bonfire/helpers/config_file_helper.php |
markdown_extended_helper.php /var/www/htdocs/bonfire/bonfire/helpers/markdown_extended_helper.php |
markdown_helper.php /var/www/htdocs/bonfire/bonfire/helpers/markdown_helper.php |
Assets.php /var/www/htdocs/bonfire/bonfire/libraries/Assets.php |
BF_Model.php /var/www/htdocs/bonfire/bonfire/libraries/BF_Model.php |
CommonMark.php /var/www/htdocs/bonfire/bonfire/libraries/CommonMark.php |
CommonMarkDriver.php /var/www/htdocs/bonfire/bonfire/libraries/CommonMark/CommonMarkDriver.php |
CommonMark_MarkdownExtended.php /var/www/htdocs/bonfire/bonfire/libraries/CommonMark/drivers/CommonMark_MarkdownExtended.php |
Console.php /var/www/htdocs/bonfire/bonfire/libraries/Console.php |
Events.php /var/www/htdocs/bonfire/bonfire/libraries/Events.php |
Modules.php /var/www/htdocs/bonfire/bonfire/libraries/Modules.php |
Route.php /var/www/htdocs/bonfire/bonfire/libraries/Route.php |
Template.php /var/www/htdocs/bonfire/bonfire/libraries/Template.php |
docs.php /var/www/htdocs/bonfire/bonfire/modules/docs/config/docs.php |
routes.php /var/www/htdocs/bonfire/bonfire/modules/docs/config/routes.php |
Docs.php /var/www/htdocs/bonfire/bonfire/modules/docs/controllers/Docs.php |
docs_lang.php /var/www/htdocs/bonfire/bonfire/modules/docs/language/english/docs_lang.php |
_sidebar.php /var/www/htdocs/bonfire/bonfire/modules/docs/views/_sidebar.php |
index.php /var/www/htdocs/bonfire/bonfire/modules/docs/views/index.php |
Settings_lib.php /var/www/htdocs/bonfire/bonfire/modules/settings/libraries/Settings_lib.php |
Settings_model.php /var/www/htdocs/bonfire/bonfire/modules/settings/models/Settings_model.php |
index.php index.php |
index.php themes/docs/index.php |