This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
khosb/application/bootstrap.php

170 lines
5.4 KiB
PHP
Raw Normal View History

2010-08-21 04:43:03 +00:00
<?php defined('SYSPATH') or die('No direct script access.');
2011-05-13 06:00:25 +00:00
// -- Environment setup --------------------------------------------------------
// Load the core Kohana class
2012-11-09 12:18:50 +00:00
require SYSPATH.'classes/Kohana/Core'.EXT;
2011-05-13 06:00:25 +00:00
2012-11-09 12:18:50 +00:00
if (is_file(APPPATH.'classes/Kohana'.EXT))
2011-05-13 06:00:25 +00:00
{
// Application extends the core
2012-11-09 12:18:50 +00:00
require APPPATH.'classes/Kohana'.EXT;
2011-05-13 06:00:25 +00:00
}
else
{
// Load empty core extension
2012-11-09 12:18:50 +00:00
require SYSPATH.'classes/Kohana'.EXT;
2011-05-13 06:00:25 +00:00
}
2010-08-21 04:43:03 +00:00
/**
* Set the default time zone.
*
2012-11-09 12:18:50 +00:00
* @link http://kohanaframework.org/guide/using.configuration
* @link http://www.php.net/manual/timezones
2010-08-21 04:43:03 +00:00
*/
2012-11-09 23:13:57 +00:00
date_default_timezone_set('Australia/Melbourne');
2010-08-21 04:43:03 +00:00
/**
* Set the default locale.
*
2012-11-09 12:18:50 +00:00
* @link http://kohanaframework.org/guide/using.configuration
* @link http://www.php.net/manual/function.setlocale
2010-08-21 04:43:03 +00:00
*/
setlocale(LC_ALL, 'en_US.utf-8');
/**
* Enable the Kohana auto-loader.
*
2012-11-09 12:18:50 +00:00
* @link http://kohanaframework.org/guide/using.autoloading
* @link http://www.php.net/manual/function.spl-autoload-register
2010-08-21 04:43:03 +00:00
*/
spl_autoload_register(array('Kohana', 'auto_load'));
2012-11-09 12:18:50 +00:00
/**
* 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'));
2010-08-21 04:43:03 +00:00
/**
* Enable the Kohana auto-loader for unserialization.
*
2012-11-09 12:18:50 +00:00
* @link http://www.php.net/manual/function.spl-autoload-call
* @link http://www.php.net/manual/var.configuration#unserialize-callback-func
2010-08-21 04:43:03 +00:00
*/
ini_set('unserialize_callback_func', 'spl_autoload_call');
2011-05-13 06:00:25 +00:00
// -- Configuration and initialization -----------------------------------------
/**
* Set the default language
*/
I18n::lang('en-us');
/**
* 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>"
*/
if (isset($_SERVER['KOHANA_ENV']))
{
Kohana::$environment = constant('Kohana::'.strtoupper($_SERVER['KOHANA_ENV']));
}
2010-08-21 04:43:03 +00:00
/**
* 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
2012-11-09 12:18:50 +00:00
* - integer cache_life lifetime, in seconds, of items cached 60
2010-08-21 04:43:03 +00:00
* - boolean errors enable or disable error handling TRUE
* - boolean profile enable or disable internal profiling TRUE
* - boolean caching enable or disable internal caching FALSE
2012-11-09 12:18:50 +00:00
* - boolean expose set the X-Powered-By header FALSE
2010-08-21 04:43:03 +00:00
*/
Kohana::init(array(
'base_url' => '/',
2011-07-13 22:59:32 +00:00
'caching' => TRUE,
2012-11-09 23:13:57 +00:00
'index_file' => '',
2010-08-21 04:43:03 +00:00
));
/**
* Attach the file write to logging. Multiple writers are supported.
*/
2011-05-13 06:00:25 +00:00
Kohana::$log->attach(new Log_File(APPPATH.'logs'));
2010-08-21 04:43:03 +00:00
/**
* Attach a file reader to config. Multiple readers are supported.
*/
2011-05-13 06:00:25 +00:00
Kohana::$config->attach(new Config_File);
2010-08-21 04:43:03 +00:00
/**
* Enable modules. Modules are referenced by a relative or absolute path.
*/
Kohana::modules(array(
2013-01-10 00:53:13 +00:00
'lnapp' => MODPATH.'lnApp',
2010-11-29 22:41:08 +00:00
'auth' => SMDPATH.'auth', // Basic authentication
'cache' => SMDPATH.'cache', // Caching with multiple backends
2011-08-16 02:27:19 +00:00
'cron' => SMDPATH.'cron', // Kohana Cron Module
// 'codebench' => SMDPATH.'codebench', // Benchmarking tool
2010-11-29 22:41:08 +00:00
'database' => SMDPATH.'database', // Database access
2012-11-09 23:13:57 +00:00
'gchart' => MODPATH.'gchart', // Google Chart Module
// 'image' => SMDPATH.'image', // Image manipulation
2012-11-09 23:13:57 +00:00
'khemail' => SMDPATH.'khemail', // Email module for Kohana 3 PHP Framework
'minion' => SMDPATH.'minion', // CLI Tasks
2010-11-29 22:41:08 +00:00
'orm' => SMDPATH.'orm', // Object Relationship Mapping
'pagination' => SMDPATH.'pagination', // Kohana Pagination module for Kohana 3 PHP Framework
2012-11-09 23:13:57 +00:00
// 'unittest' => SMDPATH.'unittest', // Unit testing
// 'userguide' => SMDPATH.'userguide', // User guide and API documentation
2011-05-13 06:00:25 +00:00
'xml' => SMDPATH.'xml', // XML module for Kohana 3 PHP Framework
2010-11-29 22:41:08 +00:00
));
/**
* Load our modules defined in the DB
*/
Kohana::modules(array_merge(Kohana::modules(),Config::modules()));
2010-11-29 22:41:08 +00:00
/**
2011-05-02 12:20:56 +00:00
* Enable specalised interfaces
2010-11-29 22:41:08 +00:00
*/
2011-12-21 03:48:16 +00:00
Route::set('sections', '<directory>/<controller>(/<action>(/<id>(/<sid>)))',
2010-11-29 22:41:08 +00:00
array(
'directory' => '('.implode('|',array_values(URL::$method_directory)).')'
2011-12-21 03:48:16 +00:00
))
->defaults(array(
'action' => 'index',
2010-08-21 04:43:03 +00:00
));
2011-07-13 22:59:32 +00:00
// Static file serving (CSS, JS, images)
Route::set('default/media', 'media(/<file>)', array('file' => '.+'))
->defaults(array(
2012-01-29 06:23:24 +00:00
'controller' => 'media',
'action' => 'get',
2011-07-13 22:59:32 +00:00
));
2010-08-21 04:43:03 +00:00
/**
* Set the routes. Each route must have a minimum of a name, a URI and a set of
* defaults for the URI.
*/
2012-11-09 23:13:57 +00:00
Route::set('default', '(<controller>(/<action>(/<id>)))', array('id'=>'[a-zA-Z0-9_.-]+'))
2010-08-21 04:43:03 +00:00
->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.');
}
2011-07-13 22:59:32 +00:00
?>