22 #require_once dirname(__FILE__) . '/SplAutoloader.php'; 90 if (is_string(
$map)) {
97 if (!is_array(
$map)) {
98 #require_once dirname(__FILE__) . '/Exception/InvalidArgumentException.php'; 102 $this->map = array_merge($this->map,
$map);
104 if (isset($location)) {
105 $this->mapsLoaded[] = $location;
119 if (!is_array($locations) && !($locations instanceof Traversable)) {
120 #require_once dirname(__FILE__) . '/Exception/InvalidArgumentException.php'; 123 foreach ($locations as $location) {
147 if (isset($this->map[
$class])) {
148 #require_once $this->map[$class]; 157 public function register()
159 if (version_compare(PHP_VERSION,
'5.3.0',
'>=')) {
160 spl_autoload_register(array($this,
'autoload'),
true,
true);
162 spl_autoload_register(array($this,
'autoload'),
true);
179 if (!file_exists($location)) {
180 #require_once dirname(__FILE__) . '/Exception/InvalidArgumentException.php'; 184 if (!
$path = self::realPharPath($location)) {
185 $path = realpath($location);
188 if (in_array(
$path, $this->mapsLoaded)) {
207 if (strpos(
$path,
'phar:///') !== 0) {
211 $parts = explode(
'/', str_replace(array(
'/',
'\\'),
'/', substr(
$path, 8)));
212 $parts = array_values(array_filter($parts, array(__CLASS__,
'concatPharParts')));
214 array_walk($parts, array(__CLASS__,
'resolvePharParentPath'), $parts);
216 if (file_exists($realPath =
'phar:///' . implode(
'/', $parts))) {
229 return ($part !==
'' && $part !==
'.');
245 unset($parts[$key], $parts[$key-1]);
246 $parts = array_values($parts);
registerAutoloadMap($map)
__construct($options=null)
$_option $_optionId $class
registerAutoloadMaps($locations)
static realPharPath($path)
static resolvePharParentPath($value, $key, &$parts)
static concatPharParts($part)
loadMapFromFile($location)