- •Оглавление
- •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 для продвинутых
III. Фрэймворк Kohana
1. Знакомство с Kohana
Очевидные премущества:
Высокая скорость работы
Безопасность
Использование возможностей PHP5
Большое количество встроенных инструментов
Простота понимания
Использование концепции HMVC
Маршрутизация запросов
Полная совместимость с UTF-8
Kohana распространяется по лицензии свободного программного обеспечения (open source)
http://kohanaframework.org/ - официальный сайт kohana, где можно бесплатно скачать последнюю версию данного фрэймворка.
После скачивания архива необходимо его разархивировать в директорию htdocs на сервере (если у вас XAMPP), создав при этом папку для проекта (например, kohana). В архив входят следующие папки:
application
modules
system
А также файлы: example.htaccess, index.php и install.php.
После того как в браузере мы запустим проект (набрать в браузере 127.0.0.1/kohana/), мы должны увидеть сообщение об успешной установке фрэймворка:
После чего нужно:
Удалить файл install.php;
В файле application/bootstrap.php инициализировать элемент массива base_url, значением которого необходимо сделать имя корневой папки проекта.
Инициализация base_url. Листинг 1.1 |
Kohana::init(array( ‘base_url’ =>‘/kohana/’, )); |
Второй шаг необходим, если мы работаем на локальном сервере. Это связано с тем, что корневой каталог сервера– это htdocs/, а на удаленном сервере такого понятия, как корневой каталог сервера, не существует. Корнем является тот каталог, в которо расположен индексный файл проекта, поэтому значение base_url необходимо оставить без изменений.
Итак, буквально за несколько действий мы установили фрэймворк. Сейчас, если мы обновим страницу в браузере, мы получим сообщение “hello, world!”.
Объявить переменную Cookie::$salt в файле bootstrap.php. Значением может быть любой набор символов. Данных шаг необходим для шифрования Cookie.
Объявление Cookie::$salt. Листинг 1.2
Cookie::$salt = '1234567890987654321';
Включаем файл example.htaccess. Для этого необходимо удалить имя файла, оставить одно расширение. Получим файл .htaccess. Внимание! Обычным проводником этого сделать нельзя. Удалить имя можно либо через TotalComander, либо с помощью любого блокнота, пересохранив (Save as) содержимое example.htaccess в новый файл без имени.
В файле .htaccess меняем параметр RewriteBase. Значением должно быть имя рабочей папки проекта. Данное значение должно совпадать с значением base_url массива Kohana::init.
RewriteBase файла .htaccess. Листинг 1.3 |
RewriteBase /kohana/ |
На этом настройка фрэймворка закончена. Можем протестировать проект. Для этого необходимо в браузере набрать localhost/kohana/. Если рабочая папка проекта у вас другая, то, вместо kohana, набираем имя рабочей папки.
Если мы все сделали правильно, то одну и ту же надпись “hello, world!” можно вызвать следующими запросами:
http://127.0.0.1/kohana/index.php
http://127.0.0.1/kohana/
http://127.0.0.1/kohana/welcome/
http://127.0.0.1/kohana/welcome/index/
http://127.0.0.1/kohana/welcome/index/12 (или любой другой параметр, состоящий из одного слова латинскими буквами или числа)
Любой другой запрос должен выдать ошибку.
Избавляемся от необходимости вызывать файл index.php в адресной строке
Для этого файл .htaccess должен быть включен (заменить example.htaccess на .htaccess). Тогда включится директива RewriteRule .* index.php/$0 [PT], которая будет скрывать файл index.php.
После чего в файле bootstrap.php пропишем следующее:
Обнуление параметраindex_file. Листинг 1.4 |
Kohana::init(array( 'base_url' => '/kohana/', 'index_file' => false, )); |
Папки фрэймворка
Application – это наша рабочая папка. Здесь мы пишем контролеры, модули и шаблоны представления. Другие папки – системные, и в документации сказано, что модификация файлов в папках modules и system – не желательно. Это упрощает переход уже готового проекта на новую версию фрэймворка. Так, для того, чтобы обновить версию фрэймворка, достаточно поменять директорию system, либо добавить модули в modules.
Файл bootstrap.php является файлом настроек. Все необходимые контролеры подключаются именно из этого файла, в том числе и тот контроллер, который вызывает надпись “hello, world!”.
