Я смутно разбираюсь в путях включения и в том, как они записаны, я знаю, как установить их в ini
файл и как это сделать функционально set_include_path
просто не как получить, чтобы быть точным каждый раз, несмотря ни на что.
Итак, у меня есть файл автозагрузки администратора, который я включаю во все мои заголовки, чтобы зарегистрировать spl_autoload_register
функция. Я просто получаю ошибки в моем error_log
файл. Это говорит о том, что
PHP Fatal error: Class 'Configurate' not found in
/home/~username~/public_html/testing_ini.php on line 5
Так что я ищу, как я могу установить путь включения всегда быть каталогом до public_html
каталог, где бы я ни находился?
Я попытался установить путь включения для таких
.:/opt/alt/php5/usr/share/pear:/opt/alt/php5/usr/share/phphome/~username~/classes/Configurate.php
Но я все еще получаю ошибку. Любая помощь и несколько советов для понимания всего этого? Я сосу relative
пути
В соответствии с просьбой spl_autoload_register
функция
<?php
$ini = parse_ini_file("configurations.ini",true);
foreach($ini as $section) {
foreach($section as $key=>$value ) {
define("__".strtoupper($key)."__",$value);
}
}
//if(__USERNAME__ == null) {
// header("Location: /setup.php?step=1");
// exit();
//}
spl_autoload_register(function($class) {
try {
if(!file_exists("../classes/{$class}.php")){
throw new Exception("/classes/{$class}.php does not exist error on line ". __LINE__." in file ". realpath(__FILE__));
} else
require_once "../classes/{$class}.php";
} catch (Exception $ex) {
echo $ex->getMessage()."<br>";
echo $ex->getCode();
}
});
getcwd()
и многие другие методы не работают для меня. Хотя я нашел этот метод, который отлично работает для меня в любом каталоге.
set_include_path(
dirname( $_SERVER["DOCUMENT_ROOT"] )
);
Надеюсь, что это поможет любому, кто хочет выйти за пределы корня документа и использовать его, как я.
Других решений пока нет …