| 12345678910111213141516171819202122232425262728293031323334353637383940414243 | 
							- <?php namespace System\Routing;
 
- class Finder {
 
- 	/**
 
- 	 * The named routes that have been found so far.
 
- 	 *
 
- 	 * @var array
 
- 	 */
 
- 	public static $names = array();
 
- 	/**
 
- 	 * Find a named route in a given array of routes.
 
- 	 *
 
- 	 * @param  string  $name
 
- 	 * @param  array   $routes
 
- 	 * @return array
 
- 	 */
 
- 	public static function find($name, $routes)
 
- 	{
 
- 		if (array_key_exists($name, static::$names))
 
- 		{
 
- 			return static::$names[$name];
 
- 		}
 
- 		$arrayIterator = new \RecursiveArrayIterator($routes);
 
- 		$recursiveIterator = new \RecursiveIteratorIterator($arrayIterator);
 
- 		// Since routes can be nested deep within sub-directories, we need to recursively
 
- 		// iterate through each directory and gather all of the routes.
 
- 		foreach ($recursiveIterator as $iterator)
 
- 		{
 
- 			$route = $recursiveIterator->getSubIterator();
 
- 			if (isset($route['name']) and $route['name'] == $name)
 
- 			{
 
- 				return static::$names[$name] = array($arrayIterator->key() => iterator_to_array($route));
 
- 			}
 
- 		}
 
- 	}
 
- }
 
 
  |