Я запускаю LAMP в Fedora VM с хоста OSX (Mavericks).
файл в папке, смонтированной на ВМ, — /media/sf_www/application/Some/Name/Space/FileName.php
<?php
namespace Some\Name\Space;
die(__FILE__);
?>
выходы
/media/sf_www/application/Some\Name\Space\FileName.php
Тем не менее, у меня есть тот же сайт, работающий в рабочей среде на хосте Linux, и тот же сценарий выводит все с косой чертой.
Давайте предположим, что я не могу коснуться кода.
Что-нибудь в конфигурации php я могу сделать на моем vm для вывода прямой косой черты?
Почему это происходит? OSX также должен использовать прямые косые черты, даже если он использует разделитель каталогов с компьютера, на котором размещается виртуальная машина.
Редактировать:
Это происходит только тогда, когда файл загружается через Kohana. Если я обращаюсь непосредственно к скрипту (apache или CLI), вывод правильный (прямая косая черта)
Это своего рода связанный вопрос: Разделители каталогов PHP, форсирующие косую черту; ненавязчивый
Ответ, который он дает, заключается в том, что нет никакой конфигурации, которую вы изменяете, чтобы использовать только один тип слеша.
Почему это происходит? Понятия не имею, может быть, это квази-баг в Кохане. И, возможно, отчасти это ошибка PHP, потому что функция, которая объединяет пути, немного не зависит от того, какой тип слеша она принимает.
Есть ли причина, по которой это должно иметь значение? Если у вас есть один вид слеша, вы можете просто сделать str_replace('\\', '/', __FILE__);
в первую очередь
Других решений пока нет …