- •Оглавление
- •I. Инструментарий
- •II. Шаблоны проектирования
- •1. Простой
- •2. Шаблонная функция
- •3. Метод буферизации
- •III. Фрэймворк Kohana
- •1. Знакомство с Kohana
- •2. Роутинг
- •7. Взаимодействие модели, контроллера и шаблона
- •8. Создание новых классов и подключение сторонних библиотек
- •9. Конфигурирование
- •10. Языковые файлы
- •11. Системные сообщения
- •12. Хелперы
- •Мы можем использовать любые строковые функции php, добавляя к ним класс utf8
- •13. Этапы создания проекта
- •14. Виджеты
- •Сложные запросы
- •17. Модуль orm
- •Т.Е. Если мы вторым параметромне указываем идендификатор, мы добавляем запись, если указываем – мы обновляем строку с указанным идентификатором.
- •Но если мы попытаемся удалить запись, которой не существует, то увидим сообщение об ошибке. Чтобы избавиться от этой ошибки, есть специальный метод, который проверяет, возвращает ли запрос результат.
- •Если метод возвращает true, то происходит удаление записи.
- •Если таблица userimage связана стаблице user связью belongs_to, то таблица user связана с таблицей userimage связью has_many.
- •19. Использование orm в виджетах
- •20. Модуль Auth
- •21. Модуль Image
- •22. Совместное использование модуля Image и js-скриптов, об-рабатывающих изображения.
- •Далее в контроллер добавим функцию для работы с изображениями.
- •В контроллере произведем вставку изображений в папку и запись в таблицу.
- •Чтобы вывести постраничную навигацию, например, на страницу пользователей, нам сперва нужно узнать общее количество пользователей, которое впоследствии нужно передать в параметр total_items.
- •А вот и сам экшн:
- •Как видно из листинга в шаблон мы передали переменную pagination, в которой будет находиться шаблон вывода ссылок на страницы. Осталось только вывести данную переменную в шаблоне.
- •Если в роуте используются параметры controller, action, directory либо id, то их необходимо передавать в класс pagination в метод route_params().
- •24. Операции crud. Разработка системы администрирования.
- •25. Модуль кэширования
- •В kohana также имеется отдельный модуль cache. Для его подключения необходимо раскомментировать нужную строку в файле bootstrap.Php
- •После подключения модуля необходимо скопировать из папки с модулем конфигурационный файл и переместить его в папку config/ в конфигурационном файле cache.Php имеется несколько групп настроек.
- •Каждая группа настроек работает со своим драйвером для кэширования. В зависимости от выбранного типа настроек, закэшированные файлы будут храниться либо в памяти компьютера, либо в других файлах.
- •28. Многоуровневые комментарии. Алгоритм NestedSets. Модуль orm-mptt
- •29. Модальное окно на ajax
- •30. Парсинг
- •31. Отладка
- •32. Профилирование
- •33. Документация kohana, модуль Userguide
- •34. Модуль Codebench
- •36. Другие модули Kohana
- •37. Состояние проекта
- •38. Дополнительное конфигурирование
- •39. Уязвимость Kohana
- •Установка yii
- •2. Структура yii
- •3. Конфигурирование yii, файл config/main.Php
- •4. Маршрутизация
- •7.Подключение шаблонов
- •8. Полезное.
- •9. Модель. Работа с базой данных.
- •11. Валидация
- •1. Определение класса модели
- •2. Определение правил проверки
- •4. Стандартные правила валидации
- •12. Конструктор форм
- •13. Хелперы форм
- •14. Обработка изображений
- •15. Постраничная навигация и cActiveDataProvider
- •16. Виджеты
- •17. Создание виджета круговой диограммы
- •18. Виджет cMenu
- •19. Хлебные крошки. Виджет cBreadcrumbs
- •20. Виджет cDetailView
- •21. Виджет chml, хелперы html
- •22. Виджет cListView
- •23. Виджет cGridView, таблица администратора
- •25. Модули
- •26. Авторизация
- •27. Контроль доступа на основе ролей
- •V. Краткий обзор и сравнение фрэймворков yii и Kohana
- •VI. Система контроля версий
- •Синхронизация локальных файлов с репозиторием
- •Открытие проекта Mercurial в среде ide
- •Получение файлов из репозитория
- •Импорт файлов в репозиторий
- •Изменение файлов исходного кода
- •Просмотр изменений в редакторе исходного кода
- •Просмотр информации о состоянии файла
- •Метки и условные цвета
- •Ярлыки состояния файлов
- •Окно контроля версий
- •Сравнение редакций файлов
- •Внесение изменений в локальную рабочую копию
- •Переходы между различиями в сравниваемых файлах
- •Изменение критериев просмотра
- •Слияние редакций файлов
- •Фиксация исходных файлов в репозитории
- •Обновление локальных копий
- •Выполнение фиксации
- •Обновление проблем
- •Выгрузка локальных изменений в общий репозиторий
- •Клонирование репозитория Git из GitHub с использованием протокола ssh
- •VI. Обзор рынка
- •VII. Программа курса php для продвинутых
- •Обзор рынка.
- •Php для продвинутых
36. Другие модули Kohana
Существует большое количество дополнительных модулей. С большинством из них можно ознакомиться на сайте http://kohana-modules.com
Все модули описывать бессмысленно, хотя бы потому, что любые задачи, которые позволяют решить модули, можно решить и без знания этих модулей.
37. Состояние проекта
В процессе разработки приложения может потребоваться, чтобы некоторые функции были доступны только в момент разработки, а другие – в процессе пользования проектом. Например, выводить ошибки на экран нужно только в процессе разработки проекта, но пользователи не должны видеть системных ошибок.
В kohana существует несколько состояний проекта:
Kohana::PRODUCTION – готовый проект Kohana::STAGING – подготовка к релизу Kohana::TESTING – тестирование Kohana::DEVELOPMENT – разработка (по умолчанию).
Данная настройка устанавливается в переменной Kohana::$environment.
Настройка окрущающей среды для разработки. Листинг 37.1 |
Kohana::$environment = Kohana::DEVELOPMENT; |
Настройка окрущающей среды для пользователей. Листинг 37.2 |
Kohana::$environment = Kohana::PRODUCTION; |
В файле bootstrap.php сразу после комментария “Configuration and Initialization” можно прописать следующее:
Настройка общей окружающей среды. Листинг 37.3 |
if (strpos($_SERVER['HTTP_HOST'], 'myproject.com') !== FALSE) { // Мы в интернете! Kohana::$environment = Kohana::PRODUCTION;
// Отключаем вывод ошибок и уведомлений error_reporting(E_ALL ^ E_NOTICE ^ E_STRICT); } |
Состояние проекта мы можем определять в файле .htaccess, создав серверную переменную $_SERVER['KOHANA_ENV'].
Создание серверной переменной $_SERVER[‘KOHANA_ENV’] в файле .htaccess. Листинг 37.4 |
SetEnv KOHANA_ENV production |
В bootstrap.php есть конструкция, которая проверяет на существование данной серверной переменной.
Использование $_SERVER[‘KOHANA_ENV’]. Листинг 37.5 |
if (isset($_SERVER['KOHANA_ENV'])) { Kohana::$environment = constant('Kohana::'.strtoupper($_SERVER['KOHANA_ENV'])); } |
38. Дополнительное конфигурирование
Часовой пояс
Часовой пояс мы можем указать в файле bootstrap.php
Давайте откроем данный файл, найдем строку
date_default_timezone_set('America/Chicago'), где America/Chicago необходимо заменить на Europe/Minsk.
Установка часового пояса. Листинг 38.1 |
date_default_timezone_set('Europe/Minsk); |
По адресу http://kohanaframework.org/guide/using.configuration либо http://php.net/timezones можно ознакомиться с дополнительными параметрами функции date_default_timezone_set().
Язык по умолчанию
По умолчанию установлена локаль en_US. В файле bootstrap.php мы можем поменять локаль по умолчанию.
Установка русской локали. Листинг 38.2 |
setlocale(LC_ALL, 'ru_RU.utf-8'); |
$this->auto_render = FALSE; - отключение вывода HTML-кода
Еще несколько вариантов редиректа
Редирект. Листинг 38.3 |
Request::initial()->redirect(‘’); $this->redirect(‘’); |
Включение short_open_tag в файле .htaccess
Файл .htaccess, включение short_open_tag. Листинг 38.4 |
php_flag short_open_tag On |
