Как мы уже убедились при установке фреймворка, в дистрибутиве присутствуют три главных директории — system, modules и application. Рассмотрим их поподробнее.
- SYSTEM. Эта папка — ядро системы, ее мы никогда не меняем. Здесь лежат основные «кирпичики» нашего будущего проекта.
- MODULES. Помните, при загрузке дистрибутива на оффициальном сайте Kohana нам предоставляли возможность добавить дополнительные модули? Так вот, они сохраняются в папке MODULES, каждый модуль в своей папке.
- APPLICATION. С этой папкой мы и будем работать постоянно, это наша песочница. Здесь будут храниться созданные нами контроллеры, модели и представления (мы ведь знаем, что такое MVC?).
Фреймворк реализует так называемую каскадную файловую систему: структура поддиректорий в рассмотренных нами папках одинакова, т.е. мы получаем как бы несколько слоев. Наивысший приоритет имеет папка APPLICATION, затем MODULES (анализируется каждый подключенный модуль) и напоследок — SYSTEM. Таким образом, нет необходимости править под свои нужды системные скрипты — можно создать свой в папке APPLICATION и он будет загружен вместо оригинального. Очень наглядна картинка из Википедии, упоминаемая в документации к фреймворку.
Какие же поддиректории могут располагаться в нашем проекте?
- cache. Обычно используется библиотекой Cache для хранения кэшированных объектов.
- config. В этой папке (в этих папках, если быть точнее ) хранится конфигурация проекта, разбитая по тематическим файлам (например, в database.php лежат настройки подключения к СУБД, а в routes.php — правила роутинга, т.к. маршрутизации запрашиваемых URL).
- controllers. Все класс-контроллеры должны лежать тут. По традиции, каждый класс хранится в отдельном файле (например, Blog_Controller будет разыскиваться в controllers/blog.php).
- helpers. Это небольшие вспомогательные библиотеки для совершения определенного рода действий (есть хэлпер для работы с датой/временем, есть для работы с файлами и т.д.).
- hooks. Что-то вроде «перехватчиков» (у меня они ассоциируется с термином «триггер» из СУБД). Так они загружаются сразу после ядра системы, обычно их используют для выполнения каких-то дополнительных действий при каком-либо зафиксированном событии (т.е. как дополнительные обработчики к событиям класса Events).
- i18n. Если необходимо создать приложение с поддержкой различных языков (я про языки стран мира ), то в данной папке будем складывать т.н. «ресурсы» — куски текста, которые и должны зависеть от выбранного языка (обычно это элементы интерфейса, но не контент).
- libraries. Библиотеки. На мой взгляд, не сильно отличаются от хэлперов. Главное отличие — хэлперы не требуют предварительной инициализации, они выступают как глобальные объекты. Библиотеки же необходимо сперва создать:
echo date::adjust(7,'PM'); // используется хэлпер для вывода 7 часов вечера в 24-часовом формате $cal = new Calendar(1,2009); // Инициализируем библиотечный класс Calendar с настройкой на январь 2009 echo $cal->render(); // Выводим в браузер
Мы можем создавать свои собственные библиотеки, сохраняя их в папке application/libraries.
- logs. По умолчанию класс Log складывает свои логи в папку application/logs.
- models. Тут лежат модели — классы для предоставления контроллеру данных по запросу. Папка существует только в application.
- vendor. Сюда мы можем складывать библиотеки сторонних разработчиков. Их мы позже можем попытаться подключить и использовать как «родные» библиотеки.
- views. Здесь будут лежать представления, т.е. шаблоны для вывода информации, подготовленной контроллерами, в браузер.
Внутри данных папок Вы можете создать свои, например очень удобно в папке с представлениями (VIEWS) создавать отдельные подпапки для контроллеров, чтобы они не перемешивались.
Не знаю, как Вам, а мне надоедают долгие теоретические блоки информации, поэтому мы сейчас закругляемся, а в следующий раз наконец-то поиграемся этим фреймворком.
Комментарии (0)
Будьте в курсе обсуждения, подпишитесь на RSS ленту комментариев к этой записи.