core.php 6.83 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
<?php namespace Laravel;

/**
 * Define all of the constants that we will need to use the framework.
 * These are things like file extensions, as well as all of the paths
 * used by the framework. All of the paths are built on top of the
 * basic application, laravel, and public paths.
 */
define('EXT', '.php');
define('CRLF', chr(13).chr(10));
define('BLADE_EXT', '.blade.php');
define('APP_PATH', realpath($application).'/');
define('PUBLIC_PATH', realpath($public).'/');
define('SYS_PATH', realpath($laravel).'/');
define('STORAGE_PATH', APP_PATH.'storage/');
define('CACHE_PATH', STORAGE_PATH.'cache/');
define('CONFIG_PATH', APP_PATH.'config/');
define('CONTROLLER_PATH', APP_PATH.'controllers/');
define('DATABASE_PATH', STORAGE_PATH.'database/');
define('LANG_PATH', APP_PATH.'language/');
define('LIBRARY_PATH', APP_PATH.'libraries/');
define('MODEL_PATH', APP_PATH.'models/');
define('ROUTE_PATH', APP_PATH.'routes/');
define('SESSION_PATH', STORAGE_PATH.'sessions/');
define('SYS_CONFIG_PATH', SYS_PATH.'config/');
define('VIEW_PATH', APP_PATH.'views/');

/**
 * Define the Laravel environment configuration path. This path is used
 * by the configuration class to load configuration options specific for
 * the server environment, allowing the developer to conveniently change
 * configuration options based on the application environment.
 * 
 */
$environment = '';

if (isset($_SERVER['LARAVEL_ENV']))
{
	$environment = CONFIG_PATH.$_SERVER['LARAVEL_ENV'].'/';
}

define('ENV_CONFIG_PATH', $environment);

unset($application, $public, $laravel, $environment);

/**
 * Require all of the classes that can't be loaded by the auto-loader.
 * These are typically classes that the auto-loader itself relies upon
 * to load classes, such as the array and configuration classes.
 */
require SYS_PATH.'arr'.EXT;
require SYS_PATH.'config'.EXT;
require SYS_PATH.'facades'.EXT;
require SYS_PATH.'autoloader'.EXT;

/**
 * Load a few of the core configuration files that are loaded for every
 * request to the application. It is quicker to load them manually each
 * request rather than parse the keys for every request.
 */
Config::load('application');
Config::load('session');
Config::load('error');

/**
 * Register the Autoloader's "load" method on the auto-loader stack.
 * This method provides the lazy-loading of all class files, as well
 * as any PSR-0 compliant libraries used by the application.
 */
spl_autoload_register(array('Laravel\\Autoloader', 'load'));

/**
 * Build the Laravel framework class map. This provides a super fast
 * way of resolving any Laravel class name to its appropriate path.
 * More mappings can also be registered by the developer as needed.
 */
Autoloader::$mappings = array(
	'Laravel\\Arr' => SYS_PATH.'arr'.EXT,
	'Laravel\\Asset' => SYS_PATH.'asset'.EXT,
	'Laravel\\Auth' => SYS_PATH.'auth'.EXT,
	'Laravel\\Benchmark' => SYS_PATH.'benchmark'.EXT,
	'Laravel\\Blade' => SYS_PATH.'blade'.EXT,
	'Laravel\\Config' => SYS_PATH.'config'.EXT,
	'Laravel\\Cookie' => SYS_PATH.'cookie'.EXT,
	'Laravel\\Crypter' => SYS_PATH.'crypter'.EXT,
	'Laravel\\File' => SYS_PATH.'file'.EXT,
	'Laravel\\Form' => SYS_PATH.'form'.EXT,
	'Laravel\\Hash' => SYS_PATH.'hash'.EXT,
	'Laravel\\HTML' => SYS_PATH.'html'.EXT,
	'Laravel\\Inflector' => SYS_PATH.'inflector'.EXT,
	'Laravel\\Input' => SYS_PATH.'input'.EXT,
	'Laravel\\IoC' => SYS_PATH.'ioc'.EXT,
	'Laravel\\Lang' => SYS_PATH.'lang'.EXT,
	'Laravel\\Memcached' => SYS_PATH.'memcached'.EXT,
	'Laravel\\Messages' => SYS_PATH.'messages'.EXT,
	'Laravel\\Paginator' => SYS_PATH.'paginator'.EXT,
	'Laravel\\Redirect' => SYS_PATH.'redirect'.EXT,
	'Laravel\\Redis' => SYS_PATH.'redis'.EXT,
	'Laravel\\Request' => SYS_PATH.'request'.EXT,
	'Laravel\\Response' => SYS_PATH.'response'.EXT,
	'Laravel\\Section' => SYS_PATH.'section'.EXT,
	'Laravel\\Str' => SYS_PATH.'str'.EXT,
	'Laravel\\URI' => SYS_PATH.'uri'.EXT,
	'Laravel\\URL' => SYS_PATH.'url'.EXT,
	'Laravel\\Validator' => SYS_PATH.'validator'.EXT,
	'Laravel\\View' => SYS_PATH.'view'.EXT,
	'Laravel\\Cache\\Manager' => SYS_PATH.'cache/manager'.EXT,
	'Laravel\\Cache\\Drivers\\APC' => SYS_PATH.'cache/drivers/apc'.EXT,
	'Laravel\\Cache\\Drivers\\Driver' => SYS_PATH.'cache/drivers/driver'.EXT,
	'Laravel\\Cache\\Drivers\\File' => SYS_PATH.'cache/drivers/file'.EXT,
	'Laravel\\Cache\\Drivers\\Memcached' => SYS_PATH.'cache/drivers/memcached'.EXT,
	'Laravel\\Cache\\Drivers\\Redis' => SYS_PATH.'cache/drivers/redis'.EXT,
	'Laravel\\Database\\Connection' => SYS_PATH.'database/connection'.EXT,
	'Laravel\\Database\\Expression' => SYS_PATH.'database/expression'.EXT,
	'Laravel\\Database\\Manager' => SYS_PATH.'database/manager'.EXT,
	'Laravel\\Database\\Query' => SYS_PATH.'database/query'.EXT,
	'Laravel\\Database\\Connectors\\Connector' => SYS_PATH.'database/connectors/connector'.EXT,
	'Laravel\\Database\\Connectors\\MySQL' => SYS_PATH.'database/connectors/mysql'.EXT,
	'Laravel\\Database\\Connectors\\Postgres' => SYS_PATH.'database/connectors/postgres'.EXT,
	'Laravel\\Database\\Connectors\\SQLite' => SYS_PATH.'database/connectors/sqlite'.EXT,
	'Laravel\\Database\\Eloquent\\Hydrator' => SYS_PATH.'database/eloquent/hydrator'.EXT,
	'Laravel\\Database\\Eloquent\\Model' => SYS_PATH.'database/eloquent/model'.EXT,
	'Laravel\\Database\\Grammars\\Grammar' => SYS_PATH.'database/grammars/grammar'.EXT,
	'Laravel\\Database\\Grammars\\MySQL' => SYS_PATH.'database/grammars/mysql'.EXT,
	'Laravel\\Routing\\Controller' => SYS_PATH.'routing/controller'.EXT,
	'Laravel\\Routing\\Filter' => SYS_PATH.'routing/filter'.EXT,
	'Laravel\\Routing\\Loader' => SYS_PATH.'routing/loader'.EXT,
	'Laravel\\Routing\\Route' => SYS_PATH.'routing/route'.EXT,
	'Laravel\\Routing\\Router' => SYS_PATH.'routing/router'.EXT,
	'Laravel\\Session\\Payload' => SYS_PATH.'session/payload'.EXT,
	'Laravel\\Session\\Drivers\\APC' => SYS_PATH.'session/drivers/apc'.EXT,
	'Laravel\\Session\\Drivers\\Cookie' => SYS_PATH.'session/drivers/cookie'.EXT,
	'Laravel\\Session\\Drivers\\Database' => SYS_PATH.'session/drivers/database'.EXT,
	'Laravel\\Session\\Drivers\\Driver' => SYS_PATH.'session/drivers/driver'.EXT,
	'Laravel\\Session\\Drivers\\Factory' => SYS_PATH.'session/drivers/factory'.EXT,
	'Laravel\\Session\\Drivers\\File' => SYS_PATH.'session/drivers/file'.EXT,
	'Laravel\\Session\\Drivers\\Memcached' => SYS_PATH.'session/drivers/memcached'.EXT,
	'Laravel\\Session\\Drivers\\Redis' => SYS_PATH.'session/drivers/redis'.EXT,
	'Laravel\\Session\\Drivers\\Sweeper' => SYS_PATH.'session/drivers/sweeper'.EXT,
);

/**
143 144 145 146 147 148 149
 * Register the default timezone for the application. This will be
 * the default timezone used by all date / timezone functions in
 * the entire application.
 */
date_default_timezone_set(Config::$items['application']['timezone']);

/**
150 151 152 153 154 155
 * Define a few global, convenient functions. These functions
 * provide short-cuts for things like the retrieval of language
 * lines and HTML::entities. They just make our lives as devs a
 * little sweeter and more enjoyable.
 */
require SYS_PATH.'helpers'.EXT;