2013-10-10 02:44:53 +00:00
|
|
|
<?php defined('SYSPATH') or die('No direct script access.');
|
|
|
|
|
|
|
|
// -- Environment setup --------------------------------------------------------
|
|
|
|
|
|
|
|
// Load the core Kohana class
|
|
|
|
require SYSPATH.'classes/Kohana/Core'.EXT;
|
|
|
|
|
|
|
|
if (is_file(APPPATH.'classes/Kohana'.EXT))
|
|
|
|
{
|
|
|
|
// Application extends the core
|
|
|
|
require APPPATH.'classes/Kohana'.EXT;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
// Load empty core extension
|
|
|
|
require SYSPATH.'classes/Kohana'.EXT;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the default time zone.
|
|
|
|
*
|
|
|
|
* @link http://kohanaframework.org/guide/using.configuration
|
|
|
|
* @link http://www.php.net/manual/timezones
|
|
|
|
*/
|
|
|
|
date_default_timezone_set('Australia/Melbourne');
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the default locale.
|
|
|
|
*
|
|
|
|
* @link http://kohanaframework.org/guide/using.configuration
|
|
|
|
* @link http://www.php.net/manual/function.setlocale
|
|
|
|
*/
|
|
|
|
setlocale(LC_ALL, 'en_US.utf-8');
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Enable the Kohana auto-loader.
|
|
|
|
*
|
|
|
|
* @link http://kohanaframework.org/guide/using.autoloading
|
|
|
|
* @link http://www.php.net/manual/function.spl-autoload-register
|
|
|
|
*/
|
|
|
|
spl_autoload_register(array('Kohana', 'auto_load'));
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Optionally, you can enable a compatibility auto-loader for use with
|
|
|
|
* older modules that have not been updated for PSR-0.
|
|
|
|
*
|
|
|
|
* It is recommended to not enable this unless absolutely necessary.
|
|
|
|
*/
|
|
|
|
//spl_autoload_register(array('Kohana', 'auto_load_lowercase'));
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Enable the Kohana auto-loader for unserialization.
|
|
|
|
*
|
|
|
|
* @link http://www.php.net/manual/function.spl-autoload-call
|
|
|
|
* @link http://www.php.net/manual/var.configuration#unserialize-callback-func
|
|
|
|
*/
|
|
|
|
ini_set('unserialize_callback_func', 'spl_autoload_call');
|
|
|
|
|
2016-05-01 11:36:37 +00:00
|
|
|
/**
|
|
|
|
* Set the mb_substitute_character to "none"
|
|
|
|
*
|
|
|
|
* @link http://www.php.net/manual/function.mb-substitute-character.php
|
|
|
|
*/
|
|
|
|
mb_substitute_character('none');
|
|
|
|
|
2013-10-10 02:44:53 +00:00
|
|
|
// -- Configuration and initialization -----------------------------------------
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the default language
|
|
|
|
*/
|
|
|
|
I18n::lang('en-us');
|
|
|
|
|
2016-05-01 11:36:37 +00:00
|
|
|
if (isset($_SERVER['SERVER_PROTOCOL']))
|
|
|
|
{
|
|
|
|
// Replace the default protocol.
|
|
|
|
HTTP::$protocol = $_SERVER['SERVER_PROTOCOL'];
|
|
|
|
}
|
|
|
|
|
2013-10-10 02:44:53 +00:00
|
|
|
/**
|
|
|
|
* Set Kohana::$environment if a 'KOHANA_ENV' environment variable has been supplied.
|
|
|
|
*
|
|
|
|
* Note: If you supply an invalid environment name, a PHP warning will be thrown
|
|
|
|
* saying "Couldn't find constant Kohana::<INVALID_ENV_NAME>"
|
|
|
|
*/
|
2014-08-26 12:33:54 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the environment status by the domain.
|
|
|
|
*/
|
2016-05-01 11:36:37 +00:00
|
|
|
Kohana::$environment = Kohana::PRODUCTION;
|
2014-08-26 12:33:54 +00:00
|
|
|
|
2013-10-10 02:44:53 +00:00
|
|
|
if (isset($_SERVER['KOHANA_ENV']))
|
|
|
|
{
|
|
|
|
Kohana::$environment = constant('Kohana::'.strtoupper($_SERVER['KOHANA_ENV']));
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Initialize Kohana, setting the default options.
|
|
|
|
*
|
|
|
|
* The following options are available:
|
|
|
|
*
|
|
|
|
* - string base_url path, and optionally domain, of your application NULL
|
|
|
|
* - string index_file name of your index file, usually "index.php" index.php
|
|
|
|
* - string charset internal character set used for input and output utf-8
|
|
|
|
* - string cache_dir set the internal cache directory APPPATH/cache
|
|
|
|
* - integer cache_life lifetime, in seconds, of items cached 60
|
|
|
|
* - boolean errors enable or disable error handling TRUE
|
|
|
|
* - boolean profile enable or disable internal profiling TRUE
|
|
|
|
* - boolean caching enable or disable internal caching FALSE
|
|
|
|
* - boolean expose set the X-Powered-By header FALSE
|
|
|
|
*/
|
|
|
|
Kohana::init(array(
|
|
|
|
'base_url' => '/',
|
2016-05-01 11:36:37 +00:00
|
|
|
'caching' => Kohana::$environment === Kohana::PRODUCTION,
|
|
|
|
'profile' => Kohana::$environment !== Kohana::PRODUCTION,
|
|
|
|
'index_file' => FALSE,
|
|
|
|
'cache_life' => 600,
|
2013-10-10 02:44:53 +00:00
|
|
|
));
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Attach the file write to logging. Multiple writers are supported.
|
|
|
|
*/
|
|
|
|
Kohana::$log->attach(new Log_File(APPPATH.'logs'));
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Attach a file reader to config. Multiple readers are supported.
|
|
|
|
*/
|
|
|
|
Kohana::$config->attach(new Config_File);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Enable modules. Modules are referenced by a relative or absolute path.
|
|
|
|
*/
|
|
|
|
Kohana::modules(array(
|
2014-08-25 04:41:07 +00:00
|
|
|
'lnapp' => MODPATH.'lnapp', // lnApp Base Application Tools
|
2013-05-23 07:00:14 +00:00
|
|
|
'oauth' => MODPATH.'oauth', // OAuth Module for External Authentication
|
2013-10-10 02:44:53 +00:00
|
|
|
'auth' => SMDPATH.'auth', // Basic authentication
|
|
|
|
'cache' => SMDPATH.'cache', // Caching with multiple backends
|
|
|
|
'cron' => SMDPATH.'cron', // Kohana Cron Module
|
|
|
|
// 'codebench' => SMDPATH.'codebench', // Benchmarking tool
|
|
|
|
'database' => SMDPATH.'database', // Database access
|
|
|
|
'gchart' => MODPATH.'gchart', // Google Chart Module
|
2013-11-14 11:50:35 +00:00
|
|
|
'highchart' => MODPATH.'highchart', // Highcharts Chart Module
|
2013-10-10 02:44:53 +00:00
|
|
|
// 'image' => SMDPATH.'image', // Image manipulation
|
|
|
|
'khemail' => SMDPATH.'khemail', // Email module for Kohana 3 PHP Framework
|
|
|
|
'minion' => SMDPATH.'minion', // CLI Tasks
|
|
|
|
'orm' => SMDPATH.'orm', // Object Relationship Mapping
|
|
|
|
'pagination' => SMDPATH.'pagination', // Kohana Pagination module for Kohana 3 PHP Framework
|
|
|
|
// 'unittest' => SMDPATH.'unittest', // Unit testing
|
2016-05-01 11:36:37 +00:00
|
|
|
'userguide' => SMDPATH.'userguide', // User guide and API documentation
|
2013-10-10 02:44:53 +00:00
|
|
|
'xml' => SMDPATH.'xml', // XML module for Kohana 3 PHP Framework
|
|
|
|
));
|
|
|
|
|
2016-05-01 11:36:37 +00:00
|
|
|
/**
|
|
|
|
* Cookie Salt
|
|
|
|
* @see http://kohanaframework.org/3.3/guide/kohana/cookies
|
|
|
|
*
|
|
|
|
* If you have not defined a cookie salt in your Cookie class then
|
|
|
|
* uncomment the line below and define a preferrably long salt.
|
|
|
|
*/
|
|
|
|
// Cookie::$salt = NULL;
|
|
|
|
|
2013-10-10 02:44:53 +00:00
|
|
|
/**
|
|
|
|
* Load our modules defined in the DB
|
|
|
|
*/
|
|
|
|
Kohana::modules(array_merge(Kohana::modules(),Config::modules()));
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Enable specalised interfaces
|
|
|
|
*/
|
|
|
|
Route::set('sections', '<directory>/<controller>(/<action>(/<id>(/<sid>)))',
|
|
|
|
array(
|
|
|
|
'directory' => '('.implode('|',array_values(URL::$method_directory)).')'
|
|
|
|
))
|
|
|
|
->defaults(array(
|
|
|
|
'action' => 'index',
|
|
|
|
));
|
|
|
|
|
|
|
|
// Static file serving (CSS, JS, images)
|
|
|
|
Route::set('default/media', 'media(/<file>)', array('file' => '.+'))
|
|
|
|
->defaults(array(
|
|
|
|
'controller' => 'media',
|
|
|
|
'action' => 'get',
|
|
|
|
));
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the routes. Each route must have a minimum of a name, a URI and a set of
|
|
|
|
* defaults for the URI.
|
|
|
|
*/
|
|
|
|
Route::set('default', '(<controller>(/<action>(/<id>)))', array('id'=>'[a-zA-Z0-9_.-]+'))
|
|
|
|
->defaults(array(
|
|
|
|
'controller' => 'welcome',
|
|
|
|
'action' => 'index',
|
|
|
|
));
|
|
|
|
|
|
|
|
/**
|
|
|
|
* If APC is enabled, and we need to clear the cache
|
|
|
|
*/
|
|
|
|
if (file_exists(APPPATH.'cache/CLEAR_APC_CACHE') AND function_exists('apc_clear_cache') AND (PHP_SAPI !== 'cli')) {
|
|
|
|
if (! apc_clear_cache() OR ! unlink(APPPATH.'cache/CLEAR_APC_CACHE'))
|
|
|
|
throw new Kohana_Exception('Unable to clear the APC cache.');
|
|
|
|
}
|
2013-12-05 05:22:23 +00:00
|
|
|
|
|
|
|
// If we are a CLI, set our session dir
|
|
|
|
if (PHP_SAPI === 'cli')
|
|
|
|
session_save_path('tmp/');
|
2013-10-10 02:44:53 +00:00
|
|
|
?>
|