Location: PHPKode > projects > Energine > energine-2.2/core2a/framework/ini.func.php
<?php
/**
 * Содержит набор инициализационных функций и констант
 *
 * @package energine
 * @subpackage core
 * @author pavka
 * @copyright ColoCall 2007
 * @version $Id: ini.func.php,v 1.7 2008/04/03 09:56:10 pavka Exp $
 */
/**
 * опыт показывает что есть еще люди  пользующиеся register_globals = On
 * не катит
 */
if (ini_get('register_globals')) {
	die('Что ж ты, сцуко, творишь! Выключи register_globals.');
}
/**
 * Хак для cgi mode, где SCRIPT_FILENAME возвращает путь к PHP, вместо пути к текущему исполняемому файлу
 */
$_SERVER['SCRIPT_FILENAME'] = (isset($_SERVER['PATH_TRANSLATED']))?$_SERVER['PATH_TRANSLATED']:$_SERVER['SCRIPT_FILENAME'];

/**
 * устанавливаем максимальный уровень отображения ошибок
 */
error_reporting(E_ALL | E_STRICT);

/**
 * включаем вывод ошибок и отключаем вывод в HTML
 */
ini_set('display_errors', 1);
ini_set('html_errors', 0);

/**
 * отключаем magic_quotes_runtime
 */
set_magic_quotes_runtime(1);
/**
 * поскольку magic_quotes_gpc в runtime отключить нельзя, идем на ухищрение
 */
if (get_magic_quotes_gpc()) {
   function recursiveStripslashes($value) {
       $value = is_array($value)?array_map('recursiveStripslashes', $value):stripslashes($value);
       return $value;
   }
   $_POST = array_map('recursiveStripslashes', $_POST);
   $_GET = array_map('recursiveStripslashes', $_GET);
   $_COOKIE = array_map('recursiveStripslashes', $_COOKIE);
   $_REQUEST = array_map('recursiveStripslashes', $_REQUEST);
}

date_default_timezone_set('Europe/Kiev');

/**
 * Путь к директории пользовательских компонентов
 */
define('SITE_COMPONENTS_DIR', 'site/components');

/**
 * Шаблон пути к директориям компонентов стандартных модулей,
 * где * заменяется именем модуля
 */
define('CORE_COMPONENTS_DIR', 'core/modules/*/components');

/**
 * Путь к директории ядра системы
 */
define('CORE_FRAMEWORK_DIR', 'core/framework');

/**
 * Функция автозагрузки файлов классов
 *
 * @param string $className имя класса
 * @return void
 * @staticvar array $paths массив путей к файлам классов вида [имя класса]=>путь к файлу класса
 */
function __autoload($className){
    static $paths = array();
    //если массив путей не заполнен - заполняем
    if (empty($paths)) {
        $tmp = glob(
            '{'.implode(',', array(CORE_FRAMEWORK_DIR, CORE_COMPONENTS_DIR, SITE_COMPONENTS_DIR)).'}/*.class.php',
            GLOB_BRACE
        );
        foreach ($tmp as $fileName) {
        	$paths[substr(strrchr($fileName,'/'), 1, -10)] = $fileName;
        }
    }

    if (isset($paths[$className])) {
    	require($paths[$className]);
    }
    else {
        trigger_error('no class '.$className.' found');
    }
}
Return current item: Energine