- •Оглавление
- •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 для продвинутых
ЗАО "БелХард Групп"
Центр обучающих технологий
Михалькевич А.В.
PHP для продвинутых
Анализ современных web-технологий
2-ое издание
Минск 2014
УДК 004.415.53
ББК 32.973.2-018.2я7
Рецензент:
Об авторе:
Михалькевич Александр Викторович, программист, преподаватель учебных курсов по PHP.
А.В.Михалькевич
PHP для продвинутых. Kohana. Yii. Анализ современных web-технологий
А.В.Михалькевич, Закрытое акционерное общество «БелХард Групп» - Мн., 2014. – 269с.
ISBN
Рассматриваются общие принципы ООП, MVC и HMVC, применение данных технологий на практике. Подробное описание двух самых популярных на сегодняшний день PHP-фрэймвороков: Kohana и YII.
Пособие рекомендовано к использованию слушателям курсов ЦОТ ЗАО "БелХард Групп".
УДК 004.415.53
ББК 32.973.2-018.2я7
© МихалькевичА.В., 2014
© Закрытое акционерное общество
ISBN «БелХард Групп», 2014
Оглавление
I. Инструментарий------------------------------------------------------------------------5
II. Шаблоны проектирования------------------------------------------------------------5
1. Простой----------------------------------------------------------------------------------5
2. Шаблонная функция------------------------------------------------------------------6
3. Метод буферизации---------------------------------------------------------------------7
4. MVC и HMVC--------------------------------------------------------------------------8
III. Фрэймворк Kohana------------------------------------------------------------------11
1. Знакомство с Kohana-----------------------------------------------------------------11
2. Роутинг---------------------------------------------------------------------------------14
3. Controller-------------------------------------------------------------------------------18
4. View-------------------------------------------------------------------------------------19
5. Request и Response-------------------------------------------------------------------20
6. Model-----------------------------------------------------------------------------------23
7. Взаимодействие модели, контроллера и шаблона------------------------------23
8. Создание новых классов и подключение сторонних библиотек------------24
9. Конфигурирование-------------------------------------------------------------------25
10. Языковые файлы--------------------------------------------------------------------27
11. Системные сообщения--------------------------------------------------------------27
12. Хелперы--------------------------------------------------------------------------------28
13. Этапы создания проекта-----------------------------------------------------------35
14. Виджеты------------------------------------------------------------------------------41
15. Модуль Database--------------------------------------------------------------------43
16. QueryBuilder-------------------------------------------------------------------------45
17. Модуль ORM------------------------------------------------------------------------47
18. Модуль Validation-------------------------------------------------------------------55
19. Использование ORM в виджетах-------------------------------------------------66
20. Модуль Auth--------------------------------------------------------------------------69
21. Модуль Image------------------------------------------------------------------------82
22. Совместное использование модуля Image и js-скриптов, об-рабатывающих изображения-----------------------------------------------------------84
23. Постраничная навигация. Модуль Pagination----------------------------------87
24. Операции CRUD. Разработка системы администрирования.---------------90
25. Модуль кэширования---------------------------------------------------------------94
26. Cookies------------------------------------------------------------------------------100
27. Session-------------------------------------------------------------------------------101
28. Многоуровневые комментарии. Алгоритм NestedSets. Модуль ORM-MPTT-------------------------------------------------------------------------------------103
29. Модальное окно на ajax----------------------------------------------------------111
30. Парсинг-----------------------------------------------------------------------------120
31. Отладка------------------------------------------------------------------------------128
32. Профилирование--------------------------------------------------------------------129
33. Документация kohana, модуль Userguide-------------------------------------132
34. Модуль Codebench----------------------------------------------------------------133
35. ProfilerToolbar-----------------------------------------------------------------------135
36. Другие модули Kohana-----------------------------------------------------------140
37. Состояние проекта----------------------------------------------------------------140
38 Дополнительное конфигурирование------------------------------------------142
39. Уязвимость Kohana----------------------------------------------------------------142
IV. Фрэймворк YII---------------------------------------------------------------------145
1. Установка YII-----------------------------------------------------------------------145
2. Структура YII-----------------------------------------------------------------------147
3. Конфигурирование YII, файл confiп/main.php--------------------------------149
4. Маршрутизация---------------------------------------------------------------------150
5. GII-------------------------------------------------------------------------------------152
6. CRUD---------------------------------------------------------------------------------153
7. Подключение шаблонов-----------------------------------------------------------157
8. Полезное-----------------------------------------------------------------------------159
9. Модель. Работа с базой данных.-------------------------------------------------160
10. Контроллер-------------------------------------------------------------------------168
11. Валидация--------------------------------------------------------------------------170
12. Конструктор форм----------------------------------------------------------------176
13. Хелперы форм---------------------------------------------------------------------180
14. Обработка изображений---------------------------------------------------------183
15. Постраничная навигация и CactiveDataProvider-----------------------------185
16. Виджеты----------------------------------------------------------------------------187
17. Создание виджета круговой диограммы--------------------------------------188
18. Виджет Cmenu----------------------------------------------------------------------189
19. Хлебные крошки. Виджет CBreadcrumbs.-------------------------------------191
20. Виджет CdetailView---------------------------------------------------------------192
21. Виджет CHML, хелперы HTML------------------------------------------------194
22. Виджет ClistView------------------------------------------------------------------197
23. Виджет CGridView, таблица администратора--------------------------------198
24. ORM----------------------------------------------------------------------------------200
25. Модули------------------------------------------------------------------------------201
26. Авторизация------------------------------------------------------------------------203
27. Контроль доступа на основе ролей--------------------------------------------204
28. Ckeditor и Ckfinder----------------------------------------------------------------207
V. Краткий обзор и сравнение фрэймвороков-------------------------------------208
VI. Системы контроля версий--------------------------------------------------------209
1. Mercurial-------------------------------------------------------------------------------210
2. Git--------------------------------------------------------------------------------------252
VI. Обзор рынка-------------------------------------------------------------------------267
VII. Программа курса PHP для продвинутых--------------------------------------268
