sash

ответов0 / помог0

Не подключает файлы классов

1679550331
На боевом сервере не подключаются файлы через __DIR__ и через realpath тоже. Причём сам файл Autoload подключает в индекс.пхп

// константа абсолютного пути
define('ROOT', __DIR__);
require_once ROOT."/components/Autoload.php";
Файл Autoload.php

// функция автозагрузки классов
function myAutoload($classname){
  if(preg_match('/\\\\/', $classname)){
      $path = str_replace('\\', DIRECTORY_SEPARATOR, $classname);
  }else{
      $path = str_replace('_', DIRECTORY_SEPARATOR, $classname);
  }
  require_once(ROOT.DIRECTORY_SEPARATOR."$path.php");
}
 
// регистрация функции автозагрузки
spl_autoload_register('myAutoload');
Warning: require_once(/var/www/sash3001/data/www/waytohome.online): failed to open stream: No such file or directory in /var/www/sash3001/data/www/waytohome.online/components/Autoload.php on line 10 Как нужно подключать правильно, подскажите пожалуйста)
crautcher
ответов1 / помог1
1679550804
А чего не взять автолодер композера? Конкретно у вас автолодер рабочий. Проверил, все подключает если неймспейсы верные. Проблема не в автолодере, в самом классе Ну вы можете дебаг добавить

function myAutoload($classname)
{
    if (preg_match('/\\\\/', $classname)) {
        $path = str_replace('\\', DIRECTORY_SEPARATOR, $classname);
    } else {
        $path = str_replace('_', DIRECTORY_SEPARATOR, $classname);
    }
    $path = ROOT . DIRECTORY_SEPARATOR . "$path.php";
    if (!file_exists($path)) {
        $error = sprintf('%s not found in %s', $classname, $path);
        throw new \Exception($error);
    }
    require_once($path);
}
sashвлепить жирный лайк
sash
ответов0 / помог0
1679551013
crautcher, мой косяк, там файлы должны были называться с большой буквы, а я один завтыкал сделал с маленькой. На винде нормально всё было, а на боевом там же unix
влепить жирный лайк
Сначала вход
A B i U S JS PHP HTML CSS SQL C C++ C# PYTHON JAVA
Для входа только имэйл или имя и апроль
Можно сменить аватар
Имэйл Ваше имя
Пароль