PHP require 'guzzle.phar' выдает Fatal Error, но на странице refre sh работает - PullRequest
2 голосов
/ 16 марта 2020

Я хочу использовать Guzzle в моем проекте без использования Composer (ограничение, которое я не могу избежать). Я скачал их файл phar в каталог моего проекта PROJECT_ROOT/includes/guzzle.phar

Теперь в других моих файлах, если я использую require_once или include или include_once, он выдает Fatal Error ниже:

PHP Fatal error:  
require(): Failed opening required 'phar://guzzle.phar/autoloader.php (include_path='.:/usr/share/php:PROJECT_ROOT/includes') in PROJECT_ROOT/includes/guzzle.phar on line 3

Но когда я используйте

require 'includes/guzzle.phar'  

, он выдает вышеупомянутую ошибку при первой загрузке страницы, но когда я ссылаюсь sh, она не выдает никакой ошибки и после этого работает нормально.

За последние два дни я рассматривал различные вопросы SO, пытался использовать include_once, include, require_once и добавлять PROJECT_ROOT для включения пути, но, похоже, ничего не работает.

Любая помощь приветствуется, и дайте мне знать, если потребуется дополнительная информация. Спасибо

1 Ответ

0 голосов
/ 22 марта 2020

Упомянутая ошибка PHP Fatal будет выдана только в том случае, если путь к файлу указан правильно, также можно найти предупреждения о том, что путь к файлу указан неверно непосредственно перед Fatal error.

PHP Fatal error:  
require(): Failed opening required 'phar://guzzle.phar/autoloader.php (include_path='.:/usr/share/php:PROJECT_ROOT/includes') in PROJECT_ROOT/includes/guzzle.phar on line 

На каждом Error/Warning/Notice PHP включает информацию о причине ошибки, чтобы помочь разработчику отследить проблему.

Failed opening required 'phar://guzzle.phar/autoloader.php

Из приведенного выше line/code вы можете обнаружить, что файл guzzle.phar путь неверный, попробуйте использовать абсолютный путь относительно относительного.

require_once $_SERVER['DOCUMENT_ROOT'].""."includes/guzzle.phar"

...