diff options
author | Michael Francis <edude03@gmail.com> | 2011-05-28 13:28:16 -0400 |
---|---|---|
committer | Michael Francis <edude03@gmail.com> | 2011-05-28 13:28:16 -0400 |
commit | 2389d66da849798f8d4ec5f10e3b07c11da49185 (patch) | |
tree | e22556d12982395b469a23420c662662e3e064cc /config/bootstrap/action.php | |
download | otakuhub-2389d66da849798f8d4ec5f10e3b07c11da49185.tar.xz |
Initial Commit
Diffstat (limited to 'config/bootstrap/action.php')
-rw-r--r-- | config/bootstrap/action.php | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/config/bootstrap/action.php b/config/bootstrap/action.php new file mode 100644 index 0000000..41b4d5e --- /dev/null +++ b/config/bootstrap/action.php @@ -0,0 +1,55 @@ +<?php +/** + * Lithium: the most rad php framework + * + * @copyright Copyright 2010, Union of RAD (http://union-of-rad.org) + * @license http://opensource.org/licenses/bsd-license.php The BSD License + */ + +/** + * This file contains a series of method filters that allow you to intercept different parts of + * Lithium's dispatch cycle. The filters below are used for on-demand loading of routing + * configuration, and automatically configuring the correct environment in which the application + * runs. + * + * For more information on in the filters system, see `lithium\util\collection\Filters`. + * + * @see lithium\util\collection\Filters + */ + +use lithium\core\Libraries; +use lithium\net\http\Router; +use lithium\core\Environment; +use lithium\action\Dispatcher; + +/** + * This filter intercepts the `run()` method of the `Dispatcher`, and first passes the `'request'` + * parameter (an instance of the `Request` object) to the `Environment` class to detect which + * environment the application is running in. Then, loads all application routes in all plugins, + * loading the default application routes last. + * + * Change this code if plugin routes must be loaded in a specific order (i.e. not the same order as + * the plugins are added in your bootstrap configuration), or if application routes must be loaded + * first (in which case the default catch-all routes should be removed). + * + * If `Dispatcher::run()` is called multiple times in the course of a single request, change the + * `include`s to `include_once`. + * + * @see lithium\action\Request + * @see lithium\core\Environment + * @see lithium\net\http\Router + */ +Dispatcher::applyFilter('run', function($self, $params, $chain) { + Environment::set($params['request']); + + foreach (array_reverse(Libraries::get()) as $name => $config) { + if ($name === 'lithium') { + continue; + } + $file = "{$config['path']}/config/routes.php"; + file_exists($file) ? include $file : null; + } + return $chain->next($self, $params, $chain); +}); + +?>
\ No newline at end of file |