20
Мар
2017

Почему возникает ошибка "failed to open stream" , "<script_name>.php’ for inclusion"? PHP

Доброго времени суток
Прошу помочь:
При подключении файла относительно:

include '../controllers/Controller.php';

Возникли ошибки:

Warning: include(../controllers/Controller.php): failed to open stream: No such file or directory in /var/www/html/admin/views/View.php

Warning: include(): Failed opening '../controllers/Controller.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/html/admin/views/View.php

(php ищет файл в другой папке, почему то)

При подключении файла абсолютно:

include $_SERVER['DOCUMENT_ROOT'] . '/admin/controllers/Controller.php';

Все заработало, но так и не понял почему эти ошибки возникли. Все файлы названы правильно, пути прописаны правильно тоже. (OS Linux)
Вопрос:
Почему возникли ошибки?
Почему скрипт искал файл не в папке куда я его направляю, а в папке отткуда я его вызвал?

Код:
путь /html/admin/controllers

class Controller {}

путь /html/admin/views

include '../controllers/Contoller.php';
class View extends Controller
{
    public function test()
    {
        echo __DIR__;
    }
}

пусть html/admin/index.php

include 'views/View.php';
$test = new View();
$test->test();    

Источник: https://ru.stackoverflow.com/questions/641919/%D0%9F%D0%BE%D1%87%D0%B5%D0%BC%D1%83-%D0%B2%D0%BE%D0%B7%D0%BD%D0%B8%D0%BA%D0%B0%D0%B5%D1%82-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-failed-to-open-stream-script-name-php-for-inclus

Share

Тебе может это понравится...