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