Skip to content
Snippets Groups Projects
Select Git revision
  • fe2a63ffd425b354ee1cf6c2faaca19ca71717bb
  • master default protected
2 results

.gitignore

Blame
  • autoloader.php 4.63 KiB
    <?php
    /**
     * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
     * This file is licensed under the Affero General Public License version 3 or
     * later.
     * See the COPYING-README file.
     */
    
    namespace OC;
    
    class Autoloader {
    	private $useGlobalClassPath = true;
    
    	private $prefixPaths = array();
    
    	private $classPaths = array();
    
    	/**
    	 * Optional low-latency memory cache for class to path mapping.
    	 * @var \OC\Memcache\Cache
    	 */
    	protected $memoryCache;
    
    	/**
    	 * Add a custom prefix to the autoloader
    	 *
    	 * @param string $prefix
    	 * @param string $path
    	 */
    	public function registerPrefix($prefix, $path) {
    		$this->prefixPaths[$prefix] = $path;
    	}
    
    	/**
    	 * Add a custom classpath to the autoloader
    	 *
    	 * @param string $class
    	 * @param string $path
    	 */
    	public function registerClass($class, $path) {
    		$this->classPaths[$class] = $path;
    	}
    
    	/**
    	 * disable the usage of the global classpath \OC::$CLASSPATH
    	 */
    	public function disableGlobalClassPath() {
    		$this->useGlobalClassPath = false;
    	}
    
    	/**
    	 * enable the usage of the global classpath \OC::$CLASSPATH
    	 */
    	public function enableGlobalClassPath() {
    		$this->useGlobalClassPath = true;
    	}
    
    	/**
    	 * get the possible paths for a class
    	 *
    	 * @param string $class
    	 * @return array|bool an array of possible paths or false if the class is not part of ownCloud
    	 */
    	public function findClass($class) {
    		$class = trim($class, '\\');
    
    		$paths = array();
    		if (array_key_exists($class, $this->classPaths)) {
    			$paths[] = $this->classPaths[$class];
    		} else if ($this->useGlobalClassPath and array_key_exists($class, \OC::$CLASSPATH)) {