Включите пути, автозагрузчики, подкаталоги и разницу между локальными и удаленными серверами - PullRequest
0 голосов
/ 03 февраля 2020

Я сбит с толку автозагрузчиками - особенно 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, и когда курсор находится на этой строке, появляется нечетный символ - это может означать лямбда-функцию (о которой я слышал, но ...), но это довольно странно и не уверен, что это уместно.

enter image description here

Вот символ в крупном плане:

enter image description here

Это, вероятно, ничего не значит, но, как я никогда не замечал этого раньше думал, что это может быть актуально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...