PHP-код, функция «включить» не включает файл - PullRequest
0 голосов
/ 04 июня 2018

Как видно из заголовка, функция включения не работает в определенной части моего кода.Поскольку другой раздел того же файла использует «include», я знаю, что проблема не в этом конкретном файле, а в том, как я пытаюсь его включить.Я просто новичок в PHP, поэтому я не могу понять, что я делаю неправильно, несмотря на то, что на самом деле часами ищу разные решения и пробую их.

Для копирования реального кода потребуется слишком много места, поэтому я собираюсь сделать его более простую версию с необходимой информацией.Расположение file1.php:

$_SERVER['DOCUMENT_ROOT']."/TAO_3.1.0-RC3_build/taoDelivery/controller/file1.php"

Местоположение file2.php:

$_SERVER['DOCUMENT_ROOT']."/dashboard/controllers/file2.php"

file1.php:

class ClassA {
   public function functionA()
   {
     //does its thing
   }

file2.php:

include("../../TAO_3.1.0-RC3_build/taoDelivery/controller/file1.php");

class ClassB {
   public function functionB()
   {
       //does its thing, and as testing I included a printout of all included files

       $included_files = get_included_files();
       foreach($included_files as $filename)
       {
           echo "$filename\n";
       }
   }

Это не работает, цикл foreach, который успешно отображает все включенные файлы, включает другие включенные файлы, но не этот.Единственное отличие состоит в том, что другие файлы находятся гораздо ближе по расположению, например, всего в одной папке, а не в нескольких папках.

Я пробовал

include("file1.php");

, а не более длинный.это идет папка за папкой, но это также не работает.Я также пытался использовать require_once и require, но они просто останавливают остальную часть кода, и страница не загружает полностью то, что должна (фатальная ошибка, которая заставляет меня больше убеждаться, что в моем синтаксисе что-то не хватает).Любая помощь будет очень признательна, спасибо !!

Редактировать:

Я исправил относительный путь, используя ../../../, а не исходные два,По какой-то причине это не устранило проблему.Использование require () приводит к фатальной ошибке, а остальная часть кода не возникает.Я (к сожалению и не в идеале) работаю над живым веб-сайтом, поэтому мне придется выяснить, как обнаруживать ошибки в этом проекте, чтобы увидеть, какую именно ошибку вызывает require ().Спасибо за полезные комментарии

Edit # 2:

Я обнаружил, в чем проблема с включением, так как у меня нет доступа к журналам ошибок, я вывел ошибку на экран, используя

ini_set('display_errors', 1);
ini_set('log_errors', 1);
ini_set('error_log', dirname(__FILE__) . '/log.txt');
error_reporting(E_ALL);

Это привело к распечатке фатальной ошибки:

Неустранимая ошибка: класс 'tao_actions_CommonModule' не найден в /var/www/html/taoplatform/TAO_3.1.0-RC3_build/taoDelivery/controller/file1.php в строке 42

В заключение, проблема не в том, что включаемая функция не работает, а в том, что файл, который я пытался включить, является проблемой совершенно другой.Спасибо всем за помощь!

...