Статические методы и свойства
Постоянные свойства
Абстрактные классы
Интерфейсы
Трейты
Проблема, которую позволяют решить трейты
Определение и применение трейтов
Применение нескольких трейтов
Сочетание трейтов с интерфейсами
Устранение конфликтов имен методов спомощью ключевого слова insteadof
Назначение псевдонимов переопределенным
методам трейта
Применение статических методов в трейтах
Доступ к свойствам базового класса
Определение абстрактных методов в трейтах
Изменение прав доступа к методам трейта
Позднее статическое связывание: ключевое слово static
Обработка ошибок
Исключения
Завершенные классы и методы
Внутренний класс Error
Работа с методами-перехватчиками
Определение методов-деструкторов
Копирование объектов с помощью метода__ clone ()
Определение строковых значений для объектов
Функции обратного вызова, анонимные функции и механизм замыканий
Анонимные классы
Резюме
Глава 5. Средства для работы с объектами
РНР и пакеты
Пакеты и пространства имен в РНР
Пути включения файлов
Автозагрузка
Функции для исследования классов и объектов
Поиск классов
Получение сведений об объекте или классе
Получение полностью уточненной строковой ссылки на класс
Получение сведений о методах
Получение сведений о свойствах
Получение сведений о наследовании
Вызов методов
Интерфейс Reflection API
Краткое введение в Reflection API
Время засучить рукава
Исследование класса
Исследование методов
Исследование аргументов методов
Применение интерфейса Reflection API
Резюме
Определение программного проекта
Объектно-ориентированное и процедурное программирование
Ответственность
Связность
Тесная связь
Ортогональность
Выбор классов
Полиморфизм
Инкапсуляция
Забудьте, как это делается
Четыре явных признака недоброкачественного кода
Дублирование кода
Класс, который слишком много знал
На все руки мастер
Условные операторы
Язык UML
Диаграммы классов
Диаграмма последовательностей
Резюме
Что такое проектные шаблоны
Краткий обзор проектных шаблонов
Название
Постановка задачи
Решение
Последствия
Формат “Банды четырех”
Причины для применения проектных шаблонов
Шаблоны определяют задачи
Шаблоны определяют решения
Шаблоны не зависят от языка программирования
Шаблоны определяют словарь
Шаблоны проверяются и тестируются
Шаблоны предназначены для совместной работы
Шаблоны способствуют удачным проектам
Шаблоны применяются в распространенных каркасах
РНР и проектные шаблоны
Резюме
Глава 8. Некоторые принципы действия шаблонов
Открытие шаблонов
Композиция и наследование
Проблема
Применение композиции
Развязка
Проблема
Ослабление связанности
Программируйте на основе интерфейса, а не его реализации
235
235
236
236
240
243
243
245
247
Меняющаяся концепция
Проблемы применения шаблонов
Шаблоны
Шаблоны для формирования объектов
Шаблоны для организации объектов и классов
Шаблоны, ориентированные на задачи
Промышленные шаблоны
Шаблоны баз данных
Резюме
Формирование объектов: задачи и решения
Шаблон Singleton
Проблема
Реализация
Выводы
Шаблон Factory Method
Проблема
Реализация
Выводы
Шаблон Abstract Factory
Проблема
Реализация
Выводы
Шаблон Prototype
Проблема
Реализация
Доведение до крайности: шаблон Service Locator
Блестящее одиночество: шаблон Dependency injection
Проблема
Реализация
Выводы
Резюме
Глава 10. Шаблоны для программирования гибких объектов
Структурирование классов для повышения гибкости объектов
Шаблон Composite
Проблема
Реализация
Выводы
Краткие выводы по шаблону Composite
Шаблон Decorator
Проблема
Реализация
Выводы
Шаблон Facade
Проблема
Реализация
Выводы
Резюме
Глава 11. Выполнение задач и представление результатов
Последние комментарии
8 часов 23 минут назад
9 часов 55 минут назад
13 часов 49 минут назад
13 часов 53 минут назад
19 часов 14 минут назад
2 дней 6 часов назад