malam-route / classes / malam / route / core.php

<?php

defined('SYSPATH') or die('No direct script access.');

/**
 * @author  arie
 */

class Malam_Route_Core
{
    protected $routes;

    /**
     * @return Malam_Route
     */
    public static function factory()
    {
        return new self();
    }

    private function __construct()
    {
        $this->routes = Kohana::$config->load('route');
    }

    public function run()
    {
        $default_values = array(
            'is_cli'    => FALSE,
            'regex'     => NULL,
            'defaults'  => NULL,
            'env'       => NULL,
        );

        foreach ($this->routes as $key => $values)
        {
            $values += $default_values;
            extract($values);

            if (((Kohana::$is_cli && TRUE == $is_cli) || (! Kohana::$is_cli && FALSE == $is_cli))
                 AND
                (NULL === $env || $env === Kohana::$environment))
            {
                    Route::set($key, $uri_callback, $regex)->defaults($defaults);
            }
        }
    }
}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.