2011-08-18 19:56:29 -05:00
|
|
|
<?php namespace Laravel;
|
2011-08-02 22:19:13 -05:00
|
|
|
|
|
|
|
|
class Loader {
|
|
|
|
|
|
|
|
|
|
/**
|
2011-09-08 17:49:16 -05:00
|
|
|
* The paths that will be searched by the loader.
|
2011-08-02 22:19:13 -05:00
|
|
|
*
|
|
|
|
|
* @var array
|
|
|
|
|
*/
|
2011-09-08 17:49:16 -05:00
|
|
|
public $paths;
|
2011-08-02 22:19:13 -05:00
|
|
|
|
|
|
|
|
/**
|
2011-09-08 17:49:16 -05:00
|
|
|
* The class aliases defined for the application.
|
2011-08-02 22:19:13 -05:00
|
|
|
*
|
|
|
|
|
* @var array
|
|
|
|
|
*/
|
2011-09-08 17:49:16 -05:00
|
|
|
public $aliases;
|
2011-08-02 22:19:13 -05:00
|
|
|
|
|
|
|
|
/**
|
2011-09-08 17:49:16 -05:00
|
|
|
* Create a new class loader instance.
|
2011-08-02 22:19:13 -05:00
|
|
|
*
|
2011-09-08 17:49:16 -05:00
|
|
|
* @param array $paths
|
|
|
|
|
* @param array $aliases
|
2011-08-02 22:19:13 -05:00
|
|
|
* @return void
|
|
|
|
|
*/
|
2011-09-08 17:49:16 -05:00
|
|
|
public function __construct($paths, $aliases)
|
2011-08-02 22:19:13 -05:00
|
|
|
{
|
2011-08-26 21:42:04 -05:00
|
|
|
$this->paths = $paths;
|
|
|
|
|
$this->aliases = $aliases;
|
2011-08-02 22:19:13 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
2011-09-08 17:49:16 -05:00
|
|
|
* Load the file for a given class.
|
2011-08-02 22:19:13 -05:00
|
|
|
*
|
|
|
|
|
* @param string $class
|
|
|
|
|
* @return void
|
|
|
|
|
*/
|
2011-08-26 21:42:04 -05:00
|
|
|
public function load($class)
|
2011-08-02 22:19:13 -05:00
|
|
|
{
|
2011-09-06 22:04:52 -05:00
|
|
|
$file = strtolower(str_replace('\\', '/', $class));
|
2011-08-02 22:19:13 -05:00
|
|
|
|
2011-09-09 20:55:24 -05:00
|
|
|
if (array_key_exists($class, $this->aliases)) return class_alias($this->aliases[$class], $class);
|
2011-08-03 22:10:07 -05:00
|
|
|
|
2011-09-08 17:49:16 -05:00
|
|
|
foreach ($this->paths as $path)
|
2011-08-02 22:19:13 -05:00
|
|
|
{
|
2011-09-08 17:49:16 -05:00
|
|
|
if (file_exists($path = $path.$file.EXT))
|
2011-08-02 22:19:13 -05:00
|
|
|
{
|
2011-08-30 22:09:47 -05:00
|
|
|
require_once $path;
|
2011-08-02 22:19:13 -05:00
|
|
|
|
2011-08-24 22:51:32 -05:00
|
|
|
return;
|
2011-08-03 22:10:07 -05:00
|
|
|
}
|
|
|
|
|
}
|
2011-08-02 22:19:13 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|