Я сбит с толку автозагрузчиками - особенно spl_autoload_register
и застрял. Я уверен, что утром я разберусь с этим, но я собираюсь помешаться здесь. Поэтому, если у вас есть 5 минут ...
Я с радостью отправлял SMS-сообщения (тексты) из общей учетной записи GoDaddy, используя Twilio для отправки сообщений. Я работал над этим проектом пару лет (медленно).
Я только что провел капитальный ремонт, пытаясь облегчить работу со всем.
Но пока отправка текста по-прежнему работает с моего локального компьютера , с удаленного компьютера я получаю:
Предупреждение: include (Twilio \ Http \ CurlClient. php): не удалось открыть поток: нет такого файла или каталога в /home/beNice/public_html/realName.com/beta72/other/includes/autoloader.inc.php в строке 23
Предупреждение: include (): не удалось открыть Twilio \ Http \ CurlClient. php для включения (include_path = '/ home / beNice / public_html / realName.com / beta72 / classes') в / home / beNice / public_html / realName.com/beta72/other/includes/autoloader.inc.php в строке 23
Предупреждение: требуется (/home/beNice/public_html/realName.com/beta72/classes/Twilio/ Twilio / Http / CurlClient. php): не удалось открыть поток: нет такого файла или каталога в /home/beNice/public_html/realName.com/beta72/classes/Twilio/autoload.php в строке 140
Неустранимая ошибка: require (): не удалось открыть обязательный файл '/home/beNice/public_html/realName.com/beta72/classes/Twilio/Twilio/Http/CurlClien t. php '(include_path =' / home / beNice / public_html / realName.com / beta72 / classes ') в /home/beNice/public_html/realName.com/beta72/classes/Twilio/autoload.php в строка 140
Я проверил, включить пути и получить:
ЛОКАЛЬНО
Включить отчеты о путях как:
C:/xampp/htdocs/testName.test/beta72/classes
Do c root сообщает как:
C:/xampp/htdocs/testName.test
УДАЛЕННО
Включает отчеты о путях как:
/home/stevehomer/public_html/realName.com/beta72/classes
Do c root сообщает как:
/home/stevehomer/public_html/realName.com
... в основном именно то, что и должно быть.
Все классы находятся в папке classes
с основной папкой Twilio
ВНУТРИ, что (со ВСЕМИ файлами Twilio - я знаю, что это ересь, но это сработало).
(Теперь это тот момент, когда мне стыдно - я просто не могу разобраться с автозагрузчиками. Автозагрузчик:
$docRoot = $_SERVER['DOCUMENT_ROOT'];
set_include_path("$docRoot/beta72/classes");
spl_autoload_register(function($class) {
global $docRoot;
include $class . '.php';
});
Как я уже сказал, он отлично работает на локальной машине. Я включаю автозагрузчик в файл с:
include_once "$docRoot/beta72/other/includes/autoloader.inc.php";
Кто-то сказал, что это могут быть права доступа к файлу, поэтому я изменил все соответствующие файлы на 777
...
ОК, кто-нибудь получил Идея. Как я уже сказал, это работает. Я вернулся к предыдущей версии или две, и все выглядит так же, но я уверен, что я что-то упустил или что-то вставил.
РЕДАКТИРОВАТЬ: строка 23 в автозагрузчик:
include $class . '.php';
Я работаю в PhpStorm, и когда курсор находится на этой строке, появляется нечетный символ - это может означать лямбда-функцию (о которой я слышал, но ...), но это довольно странно и не уверен, что это уместно.
Вот символ в крупном плане:
Это, вероятно, ничего не значит, но, как я никогда не замечал этого раньше думал, что это может быть актуально.