Урок 1. Подготовка к работе
функции для работы с БД
Урок 1. Бонус. PDO (PHP Data Objects)
Что такое PDO
Преимущества PDO
Как подключить функциональность PDO
Создание объектов PDO
Подключение к БД через PDO
Выполнение запросов средствами PDO
Обработка выборок из БД средствами PDO
Работа с объектами PDO
Перехват ошибок PDO
Выполнение SQL-команд INSERT, UPDATE средствами PDO
Урок 2. Архитектура MVC
Что такое архитектура ПО
Что такое хороший код
Шаблоны проектирования
Как работает приложение
Общее описание схемы MVC
MVC в PHP
Пример небольшого сайта, реализованного в рамках MVC
Структура папок такого сайта
Файл начальной загрузки и настроек
Комментирование шаблонов
Альтернативный синтаксис PHP для использования в шаблонах
Урок 2. Бонус про реляционные БД
Реляционная БД
Таблицы реляционной БД
Индексы и принцип их работы
Три нормальные формы и правила нормализации
Оптимизация БД
Обратная связь по уроку 2
SQL-инъекции и способы их предотвращения
Правильное выделение абстракции модели
Опасность изменений данных при переходе по ссылке
Распараллеливание работы программиста и верстальщика
Урок 3. Базовый шаблон
Вложенность шаблонов
Резка шаблона
Шаблонная функция
Буферизированный вывод в PHP
Шаблон на основе буферизированного вывода
Урок 4. Концепция ООП
Что такое ООП
Преимущества ООП
Что такое Класс
Что такое Объект
Пример определения класса
Пример объявления объекта
Свойства и методы классов, примеры
Преимущества использования классов
Конструкторы класса, примеры
Три важнейшие парадигмы ООП
Инкапсуляция
Наследование
Полиморфизм
Примеры использования возможностей ООП
Урок 5. Особенности ООП в 5-ой версии PHP
Главное отличие реализации ООП в PHP5 от PHP4
Модификаторы доступа
Конструкторы
Деструкторы
Клонирование
Константы классов
Ключевое слово self
Статические методы классов
Статические поля классов
Абстрактные классы
Абстрактные методы классов
Работа с классами как к массивам
Функция __autoload()
Исключения
Перегрузка свойств класса, сеттеры, геттеры
Перегрузка вызова методов класса
Использование интерфейсов
Оператор instanceof
Ключевое слово final
Урок 6. MVC с помощью ООП
Пример реализации объектной модели MVC в PHP
Модель
Представление
Контроллер
Точка входа
Иерархия контроллеров
Цикл обработки запроса
Определение размера всех любой страницы сайта
Определение времени генерации любой страницы сайта
Обратная связь по уроку 6
Правильное и неправильное проектирование контроллеров
Избегание "паразитного" кода
Принцип стремления к простоте
Фреймворк
Отделение ядра сайта
Ослабление зависимостей между классами
Автоматическая загрузка классов
RewriteEngine в htaccess
Ошибки именования классов, функций и файлов
Советы по проектированию модели
Урок 7. Шаблонизатор Smarty
Что такое шаблонизатор Smarty
Установка Smarty
Подключение и создание экземпляра класса Smarty
Настройки для работы Smarty
Шаблоны для Smarty
Как работает шаблонизатор
Скомпилированные шаблоны Smarty
Работа с переменными в шаблоне
Организация циклов в шаблоне
Буферизация вывода в шаблоне
Подключение шаблонов
Передача переменных между шаблонами
Запрет на интерпретацию содержимого в шаблоне
Включение PHP-кода в шаблон
Использование конфигурационных переменных
Функция вывода на экран шаблона
Функция передачи переменных в шаблон
Проверка компиляции шаблона
Принудительная компиляция шаблона
Установка уровня вывода ошибок
Очистка переменных шаблона
Очистка скомпилированных шаблонов
Буферизация вывода шаблона
Получение переменных шаблона
Проверка наличия шаблона
Кэширование
Урок 8. Одиночка. Драйвер БД
Преобразование модели от процедурного подхода к ООП
Статический класс
Шаблон проектирования "Одиночка"
Драйвер работы с БД
Обратная связь по уроку 8
Способы подключения классов контроллеров и модели
Выбор способов автозагрузки
Как правильно называть классы
Вопросы проектирования контроллеров
Урок 9. Пользователи, роли, привилегии, сессии
Пользователь
Сессия
Привилегия
Роль
Механизм авторизации
Механизм контроля доступа
Гибкая схема разделения полномочий
Сокрытие страниц сайта
Особенности протокола HTTP
Использование cookies
Использование сессий PHP
Шифрование паролей
md5
Генерация случайных строковых последовательностей
Определение online пользователей
Схема БД для реализации всего механизма
Создание законченного программного модуля, реализующего весь механизм
Оптимизация программного модуля, кэширование
Механизм авторизации и MVC
Обратная связь по уроку 9
Базовый шаблон и авторизация
Проверка привилегий в шаблоне
Безопасный контроллер
Безопасная модель
SQL: соединение таблиц с помощью JOIN
Комментарии для ролей и привилегий в БД
Базовый шаблон и главное меню
Ошибка смешивания ролей и привилегий
Стократная оптимизация вывода списка пользователей online
Урок 10. Введение в Kohana
Загрузка ПО
Документация
Фреймворк
Основные особенности Kohana
Стиль программирования
Установка Kohana
Структура каталогов
Правила именования классов и их расположения
Ядро, модули и приложение
Последовательность и приоритеты загрузки файлов
Точка входа
Цикл обработки запроса
Маршрутизация и сегменты URL
Избавляемся от index.php в URL
Урок 11. Маршрутизация в Kohana
Определение URL-маршрутов
Формирование шаблона маршрута
Значения по умолчанию в шаблоне маршрута
Согласование архитектуры каталогов с URL-маршрутизацией
Ограничение параметров маршрута
Организация коротких адресов
Получение параметров маршрута в контроллере
Урок 11. Работа с Базой Данных в Kohana
Настройка подключения к БД
Получение экземпляра объекта для работы с БД
Получение таблиц БД
Получение колонок выбранной таблицы
Разрыв соединения с БД
Формирование запроса к БД
Кэширование результатов запросов к БД
Работа с результатами запросов к БД как с объектами
Параметризация запросов
Работа с конструктором запросов
Формирование сложных запросов через конструктор
Использование дополнительных возможностей конструктора запросов
Использование агрегирующих функций в запросах
Выполнение модифицирующих запросов к БД
Урок 12. Работа с Kohana. Модуль ORM
Класс ORM
Связь именования классов с таблицами БД
переопределение ресурсной таблицы, базы данных, первичного ключа
Получение объектов из БД средствами ORM
Определение параметров запроса в БД средствами ORM
Запись объектов в БД
Определения правил для ORM-модели
Формализация связей один-ко-многим для ORM
Формализация связей много-ко-многим для ORM
Урок 12. Работа с Kohana. Модуль авторизации
Настройка модуля авторизации
Табличная архитектура модуля авторизации
Регистрация пользователей
Вход пользователя на сайт
Проверка статуса пользователя
Выход пользователя с сайта
Автоматический заход на сайт
Принудительный заход на сайт
Дополнительный урок. Точки над i
Переход от структурного программирования к объектно-ориентированному
Понимание концепции ООП
Когда нужны конструктор и деструктор
Порядок вызова конструкторов и деструкторов при наследовании
Шаблон проектирования "Одиночка"
Статический методы
Частые ошибки при вызове методов объектов
Внутренние методы PHP, используемые внутри класса
Драйвер БД и PDO
Абстрактный класс и интерфейс
MVC: иерархия контроллеров
Передача информации между запросами
5 правил проектирования объектной модели
Разработка сайта от и до: 5 шагов
Готовое решение для создания сайта (пакет-сборка и правила расширения)