У меня тройка вложенная require_once
:
user@mybox:/tmp/foo $ cat bar.php
<?php
ini_set('display_errors', 1);
require_once 'foo3.php';
user@mybox:/tmp/foo $ cat foo3.php
<?php
require_once 'foo2.php';
echo "foo3" . PHP_EOL;
user@mybox:/tmp/foo $ cat foo2.php
<?php
require_once 'foo.php';
echo "foo2" . PHP_EOL;
user@mybox:/tmp/foo $ cat foo.php
<?php
require_once 'Mage.php';
echo "foo" . PHP_EOL;
user@mybox:/tmp/foo $ cat Mage.php
<?php
die('require once works' . PHP_EOL);
Это работает: при звонке php bar.php
Я получаю вывод require once works
,
Если я сейчас поменяю foo.php
использовать абсолютный путь:
user@mybox:/tmp/foo $ cat foo.php
<?php
require_once '/tmp/foo/Mage.php';
echo "foo" . PHP_EOL;
Я получаю следующий вывод:
user@mybox:/tmp/foo $ php bar.php
foo
foo2
foo3
И включение последнего файла не работает.
Не вложенный require_once
также работает:
user@mybox:/tmp/foo $ php foo.php
require once works
Это происходит только на некоторых машинах (с идентичной версией PHP PHP 5.3.3 (cli) (сборка: 6 августа 2014 г. 05:09:45)
Обновить
php foo2.php
тоже не работает
Мы обнаружили, что использование только абсолютных путей работает. Микс, кажется, проблема.
Других решений пока нет …