Возможно ли в PHP требовать
произвольного файла без утечки каких-либо переменных из текущей области в пространство имен переменных требуемого файла или загрязнения глобального область видимости переменных?
Я хочу сделать упрощенное создание шаблонов с файлами PHP и ради чистоты меня интересовал, можно ли загрузить файл шаблона без каких-либо переменных в его области действия, кроме предполагаемых.
У меня есть тест, который я хочу пройти. Должна быть возможность потребовать RequiredFile.php
и вернуть Успех, без утечек переменных.
.
RequiredFile.php:
<?php
print array() === get_defined_vars()
? "Success, no leaking variables."
: "Failed, leaked variables: ".implode(", ",array_keys(get_defined_vars()));
?>
Самое близкое, что я получил, - это использование замыкания, но оно все равно возвращает Неудачные, просочившиеся переменные: _file
.
$scope = function( $_file, array $scope_variables ) {
extract( $scope_variables ); unset( $scope_variables );
//No way to prevent $_file from leaking since it's used in the require call
require( $_file );
};
$scope( "RequiredFile.php", array() );
Есть идеи?