Документация для разработчиков

CBXVirtualIo

Поддержка Bitrix Framework русских (и прочих) символов в названиях публичных файлов накладывает определённые ограничения на работу:
недопустимы прямые вызовы

  • к файлам, имена которых выбираются пользователями,
  • к папкам, имена которых выбираются пользователями,
  • к файлам и папкам, которые могут лежать в папках, имена которых выбираются пользователями.
Недопустимы вызовы любых прямых методов работы с файловой системой: include, require, fopen, filesize, unlink, file_exists и т.д.

Например, нельзя напрямую обратиться к файлу .access.php потому, что он может лежать в папке Папка: /Папка/.access.php.

Если обращение идет к файлу внутри папки /bitrix, то это служебная область и там не должно быть кириллицы. Можно использовать прямые методы. Если обращение вне папки /bitrix, то либо в имени, либо в пути могут быть русские буквы. И нужно пользоваться CBXVirtualIo.
Исключение - известные нам файлы в корне сайта: /404.php, /auth.php, /urlrewrite.php, /.htaccess, которые очевидно не могут подержать в пути кириллицу, хотя они и не в папке /bitrix.

CBXVirtualIo - класс для работы с файлами публичной части, которые создаются пользователями или лежат в папках, создаваемых пользователями.

Это не статический класс, поэтому перед использованием необходимо создать его экземпляр. Для получения экземпляра "по-умолчанию" класса CBXVirtualIo следует использовать статический метод GetInstance(). Этот метод создает экземпляр класса с настройками "по-умолчанию" только один раз при первом обращении:

$io = CBXVirtualIo::GetInstance();

Методы класса

Метод Описание С версии
CombinePath Объединяет части пути в единый путь.
RelativeToAbsolutePath Приводит путь относительно корня продукта к абсолютному пути.
SiteRelativeToAbsolutePath Приводит путь относительно корня указанного сайта к абсолютному пути.
GetPhysicalName
string 
CBXVirtualIo::GetPhysicalName(
 string $path
);

Конвертирует путь (строку) в формат файловой системы. Не рекомендуется пользоваться этим методом без реальной необходимости.

GetLogicalName
string 
CBXVirtualIo::GetLogicalName(
 string $path
);
Конвертирует путь (строку) из формата файловой системы в формат сайта. Не рекомендуется пользоваться этим методом без реальной необходимости.
ExtractNameFromPath Возвращает имя файла или папки принимая на вход путь.
ExtractPathFromPath Возвращает путь к файлу или папке принимая на вход путь.
ValidatePathString Проверяет, является ли путь корректным.
ValidateFalenameString Проверяет, является ли имя файла (папки) корректным
DirectoryExists Проверяет, существует ли указанная папка.
FileExists Проверяет, существует ли указанный файл.
GetDirectory Возвращает объект класса папки для указанного пути.
GetFile Возвращает объект класса файла для указанного пути.
OpenFile
resource 
CBXVirtualIo::OpenFile(
 string $path,
 string $mode
);
Открывает файл в указанном режиме и возвращает его дескриптор. Лучше не применять этот метод, если это действительно не нужно.
CreateDirectory Создает указанную папку, если ее нет.
Delete Удаляет файл или папку.
Copy Копирует файл или папку.
Move Перемещает файл или папку
ClearCache
void 
CBXVirtualIo::ClearCache(
);
Без параметров. Сбрасывает кеш файловой системы, если такой есть
11.0.2
GetErrors
array  
CBXVirtualIo::GetErrors(
);
Без параметров. Возвращает массив ошибок, произошедших во время последней файловой операции.


Пользовательские комментарии

Пользовательские комментарии не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.

Добавлять комментарии могут только зарегистрированные пользователи. Сообщения для просмотра появляются после модерации.
© «Битрикс», 2001-2018, «1С-Битрикс», 2018