Иерархия фреймворка

Комментарии: 4  Просмотры: 21 828

Сейчас, после того, как мы установили Кохану и создали наши первые Виды и Контроллеры, пришла пора более внимательно рассмотреть внутреннее устройство фреймворка и получить необходимые знания для создания продвинутых веб-приложений, а не просто сайтов-визиток.
Фреймворк Кохана имеет каскадную файловую систему. Это значит, что фреймворк загружает файлы каждой части своего ядра в определенном порядке, т.е. существует некая иерархия. Для этого используется специальный метод Kohana::find_file(), который осуществляет поиск и загрузку файла с классом в следующем порядке (для значений, заданных по умолчанию):

  • Директория приложения /application
  • Директория с модулями /modules, в порядке, указанном в файле bootstrap.php
  • Системная директория /system
    • Когда происходит загрузка фреймворка, происходит некое объединение файлов в порядке, рассмотренном выше. Одним из преимуществ такого подхода является возможность легкой перезагрузки класса, который загружается позже. Таким образом мы можем изменить поведение какого-то класса из системной директории просто перезагрузив этот класс в директории приложения.

      В каждой из вышеописанных трех директорий могут быть пять основных поддиректорий, в которые заглядывает фреймворк и которые содержат определенные файлы. Это:

      • Классы. Директория /classes содержит все автозагружаемые файлы классов. В ней находятся наши Контроллеры и Модели и используемые ими классы. Автозагрузка позволяет нам использовать их без всякого ручного подключения, т.е. любой класс в этой директории загружается автоматически при его использовании.
      • Конфигурационные файлы. Директория /config содержит файлы с массивами, которые могут быть загружены с помощью специального метода Kohana::config(). Некоторые конфигурационные файлы необходимы для правильной загрузки модулей. Другие могут быть созданы нами для более легкого обслуживания нашего приложения. Ведь всегда приятно, когда определенные настройки вынесены в отдельный файл и не надо рыскать в их поисках. Конфигурационные файлы — единственные файлы в каскадной файловой системе, которые всегда существуют в эдаком объединенном тандеме со своими файлами — родителями.
      • Интернализационные файлы. В директории /i18n можно легко и просто создавать языковые файлы. Подробно мы на этом останавливаться пока не будем, т.к. на данном этапе это не особо важно.
      • Сообщения. Директория /messages, в которой находятся файлы с массивами, по своей структуре очень напоминающими конфигурационные файлы. Загружаются также с помощью специального метода, теперь уже Kohana::messages(). Иногда бывают очень полезны.
      • Файлы Видов. Директория /views. В ней содержаться файлы представления нашего приложения. Работу с шаблонами из этой директории мы уже рассматривали в предыдущих уроках.

      Стоит заметить, что расположение этих пяти поддиректорий в корне основных директорий справедливо только для /application и /system. В /modules вы сначала увидите поддиректории модулей, а уже в них всю вышеназванную структуру.

      В следующем уроке мы пошагово рассмотрим работу Коханы начиная с главного файла index.php. Что-то уже рассматривалось в первых уроках, так что как раз закрепим те знания и добавим новые.

      << Назад | Вперед >> | Обсудить на форуме


      К записи оставлено 4 коммент.

      Здравствуйте, вот вы пишите: «Автозагрузка позволяет нам использовать их без всякого ручного подключения, т.е. любой класс в этой директории загружается автоматически при его использовании.» Объясните, пожалуйста почему в таком случае автоматически не заргужается Controller_Comon, который вы описывали здесь:http://kohanaframework.su/starting/base_controller.При обращении к mysite.ru/page/about или mysite.ru/page/contact возникает ошибка «класс Controller_Comon» не найден. А после того как я подключил файл с Controller_Comon все отлично заработало.

      Что значит не загружается ? Прекрасно он загружается. Мы его наследуем «extends Controller_Common» и Кохана его автоматически находит и загружает. Если у вас не работает, то вы что-то делаете не так.

      Да, действительно, извиняюсь. Просто я в файле common.php одну букву m не написал.

      Файлы Видов. Директория /views. В ней содержаться файлы представления нашего приложения. Работу с шаблонами из этой директории мы уже рассматривали в предыдущих уроках.
      // cодержатся без мягкого знака



      Оставить комментарий или два

      Пожалуйста, зарегистрируйтесь для комментирования.