Я пытаюсь скомпилировать некоторые части PHP-приложения в байт-код. Код использует магическую константу __FILE __.
infile.php:
<?php
echo dirname(__FILE__);
squish.php:
<?php
$h = fopen('/tmp/pants/outfile.php', 'w');
bcompiler_write_header($h);
bcompiler_write_file($h, '/tmp/trousers/infile.php');
bcompiler_write_footer($h);
fclose($h);
test.php:
<?php
require('/tmp/pants/outfile.php');
Результат запуска test.php - /tmp/trousers
, а не /tmp/pants
. Я предполагаю, что это потому, что фаза компиляции байт-кода преобразует магические константы в соответствующие значения перед записью байт-кода в выходной файл, однако это сильно ограничивает мою возможность использовать магические константы для чего-либо полезного, если они всегда будут привязаны к местоположению входного файла.
Существуют ли другие способы получения имени текущего исходного файла? Существуют ли другие методы, которые могут уменьшить потребность в __FILE__, но все же позволяют мне ссылаться на пути относительно данного исходного файла?