This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
khosb/includes/kohana/modules/userguide/guide/ru-ru/about.filesystem.md

59 lines
6.5 KiB
Markdown
Raw Normal View History

2010-08-21 04:43:03 +00:00
# Каскадная файловая система
Файловая система Kohana представляет собой иерархическая структура каталогов. Когда файл загружается, используя [Kohana::find_file], он ищется в каталогах в следующем порядке:
Application путь
: Определён как `APPPATH` в `index.php`. Значение по-умолчанию - `application`.
Module путь
: Определён как ассоциативный массив [Kohana::modules] в `APPPATH/bootstrap.php`. Поиск каждого значение массива будет произведён в том порядке, в каком порядке они определены.
System путь
: Определён как `SYSPATH` в `index.php`. Значение по-умолчанию - `system`. Все основные или "core" файлы и классы располагаются в этой категории.
Файлы, находящиеся в каталогах выше уровнем, имеют приоритет над файлами, которые располагаются в таких же папках уровнем ниже, что позволяет перегружать любой файл, путём перемещения файла с таким же названием на уровень выше:
![Каскадная файловая система](img/cascading_filesystem.png)
Если у Вас имеется файл представления с названием `wellcome.php`, расположенный в `APPPATH/views` и `SYSPATH/views`, то при поиске файла с этим именем будет возвращен тот, который находится в папке `APPPATH/views` (как находящийся на высшем уровне иерархической системы). Если же удалить файл в каталоге `APPPATH/views`, то при очередном поиске этого файла будет вызван тот, что располагается в каталоге `SYSPATH/views`.
## Типы файлов
Верхний уровень каталогов application, module, и system путей, по-умолчанию имеет следующие директории:
classes/
: Все классы, которые должны быть [автоматически загружены](using.autoloading) должны располагаться тут. Это касается контроллеров, моделей и всех других классов. Наименования классов должны соответствовать [соглашению по именованию классов](about.conventions#classes).
config/
: Конфигурационные файлы возвращают ассоциативный массив опций, который может быть загружен с использованием метода [Kohana::config]. Для более подробной информации, обратитесь к разделу [Настройка](using.configuration).
i18n/
: Файлы перевода возвращают ассоциативный массив строк. Перевод осуществляется с использованием метода `__()`.Для того, чтобы перевести "Hello, world!" на Русский, нужно вызвать `__('Hello, world!')` c [I18n::$lang] определённом как "ru-ru". Для более подробной информации, обратитесь к разделу [Интернационализация](using.translation).
messages/
: Файлы сообщений возвращают ассоциативный массив строк, который может быть загружен с использованием [Kohana::message]. Разница между сообщениями и файлами интернационализации заключается в том, что сообщения никогда не переводятся, пишутся на языке, используемом по-умолчанию, и вызываются по односложному ключу. Для более подробной информации, обратитесь к разделу [Сообщения (Messages)](using.messages).
views/
: Файлы представления являются PHP файлами, которые используются для генерации HTML или другого вида вывода информации. Файлы представления загружаются в объект [View] и присваиваются переменным, которые в дальнейшем конвертируются во фрагменты HTML. Множественные файлы представления могут быть вызваны одни в других. Для более подробной информации, обратитесь к разделу [Представление и HTML](usings.views).
## Поиск файлов
Путь к любому файлу в файловой структуре приложения может быть найден путём вызова [Kohana::find_file]:
// Ищет полный путь до "classes/cookie.php"
$path = Kohana::find_file('classes', 'cookie');
// Ищет полный путь до "views/user/login.php"
$path = Kohana::find_file('views', 'user/login');
# Сторонние библиотеки
Мы называем библиотеки, которые не специфичны для Kohana "vendor" библиотеками. Например, если Вы хотите использовать [DOMPDF](http://code.google.com/p/dompdf), то Вам нужно скопировать эту библиотеку в `application/vendor/dompdf` и добавить автозагрузочный класс DOMPDF:
require Kohana::find_file('vendor', 'dompdf/dompdf/dompdf_config.inc');
После этого, можно использовать DOMPDF без загрузки каких-либо других файлов:
$pdf = new DOMPDF;
[!!] Если Вы хотите конвертировать представление в PDF с использованием DOMPDF, используйте [PDFView](http://github.com/shadowhand/pdfview) модуль.