CBXVirtualIo
Описание
Поддержка Bitrix Framework русских (и прочих) символов в названиях публичных файлов накладывает определённые ограничения на работу:
недопустимы прямые вызовы
- к файлам, имена которых выбираются пользователями,
- к папкам, имена которых выбираются пользователями,
- к файлам и папкам, которые могут лежать в папках, имена которых выбираются пользователями.
Например, нельзя напрямую обратиться к файлу .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( );Без параметров. Возвращает массив ошибок, произошедших во время последней файловой операции. |