PHP: объекты, шаблоны и методики программирования — Четвертое издание книги было пересмотрено и дополнено новым материалом. Книга начинается с обзора объектно-ориентированных возможностей PHP, в который включены важные темы, такие как определение классов, наследование, инкапсуляция, рефлексия и многое другое. Этот материал закладывает основы объектно-ориентированного проектирования и программирования на PHP. Вы изучите также некоторые основополагающие принципы проектирования. В этом издании книги также описаны возможности, появившиеся в PHP версии 5.4, такие как трейты, дополнительные расширения на основе рефлексии, уточнения типов параметров методов, улучшенная обработка исключений и много других мелких расширений языка. Следующая часть книги посвящена шаблонам проектирования, которые органически дополняют тему ООП и являются описанием элегантных решений распространенных проблем, возникающих при проектировании программного обеспечения. В ней описываются концепции шаблонов проектирования и показаны способы реализации нескольких важных шаблонов в приложениях на PHP. В этой же части приведен материал, посвященный шаблонам корпоративных приложений и баз данных. В последней части книги описывается несколько важных утилит и методик, помогающих осуществить успешный проект на основе разрозненных кусков кода. В этой части книги описано, как управлять работой нескольких программистов с помощью Git, как выполнить построение и развертывание проекта с помощью Phing и PEAR.
Название: PHP: объекты, шаблоны и методики программирования Автор: Мэтт Зандстра Издательство: И.Д. Вильяме Год: 2015 Страниц: 576 Формат: PDF Размер: 22,32 МБ ISBN: 978-5-8459-1922-9 Качество: отличное Язык: русский
Содержание:
Об авторе О техническом рецензенте Благодарности Предисловие От издательства Часть I. Введение Глава 1. РНР: проектирование и сопровождение систем Проблема РНР и другие языки Об этой книге Объекты Шаблоны Практика Что нового в 4-м издании Резюме Часть II. Объекты Глава 2. РНР и объекты Неожиданный успех РНР-объектов Вначале был РНР/FI Изменение синтаксиса в РНР РНР 4 и тихая революция Изменения приняты: РНР Взгляд в будущее Сторонники и противники: дебаты об объектах Резюме Глава 3. Основные сведения об объектах Классы и объекты Первый класс Первые несколько объектов Определение свойств в классе Работа с методам и Создание метода конструктора Аргументы и типы Элементарные типы Уточнения типов объектов Наследование Проблема наследования Работа с наследованием PuЬl ic, Private и Protected: управление доступом к классам Методы как средство доступа к свойствам Семейство классов ShopProduct Резюме Глава 4. Расширенные средства Статические методы и свойства Постоянные свойства Абстрактные классы Интерфейсы Трейты Проблемы, которые можно решить с помощью трейтов Определение и использование трейтов Использование нескольких трейтов Совместное использование трейтов и интерфейсов Устранение конфликтов имен с помощью ключевого слова insteadof Псевдонимы для переопределенных методов трейта Использование статических методов в трейте Доступ к свойствам базового класса Определение абстрактных методов в трейтах Изменение прав дос'I}'Па к методам трейта Позднее статическое связывание: ключевое слово static Обработка ошибок Исключения Завершенные классы и методы Работа с методами-перехватчиками Определение методов деструктора Копирование объектов с помощью метода_ clone () Определение строковых значений для объектов Функции обратного вызова, анонимны е функции и механизм замыканий Резюме Глава 5. Средства для работы с объектами РНР и пакеты Пакеты и пространства имен в РНР Пути включения файлов Автозагрузка Функции для исследования классов и объектов Поиск классов Получение информации об объекте или классе Получение полностью определенной строковой ссылки на класс Получение информации о методах Получение информации о свойствах Получение информации о наследовании Вызов метода Интерфейс Reflection AP I Основные сведения Время закатать рукава Исследование класса Исследование методов Исследование аргументов методов Использование интерфейса Reflection APl Резюме Глава 6. Объекты и методолоrия проектирования Определение программного проекта Объектно-ориентированное и процедурное программирование Ответственность Связность Тесная связь Ортогональность Выбор классов Полиморфизм Инкапсуляция Забудьте, как это делается Четыре столпа Дублирование кода Класс. который слишком много знал На все руки мастер Условные операторы UML Диаграммы классов Диаграмма последовательности Резюме Часть III. Шаблоны Глава 7. Что такое проектные шаблоны и зачем они нужны Что такое проектные шаблоны Обзор проектных шаблонов Имя Формулировка задачи Решение Выводы Формат «Банды четырех» Зачем используются проектные шаблоны Шаблоны определяют задачи Шаблоны определяют решения Шаблоны не зависят от языка программирования Шаблоны определяют словарь Шаблоны проверяются и тестируются Шаблоны предназначены для совместной работы Шаблоны способствуют хорошим проектам Шаблоны используются в популярных каркасах РНР и проектные шаблоны Резюме Глава 8. Некоторые принципы шаблонов Открытие шаблонов Композиция и наследование Проблема Использование композиции Разделение Проблема Ослабление связи Программируйте на основе интерфейса, а не его реализации Меняющаяся концепция Проблемы применения шаблонов Шаблоны Шаблоны для генерации объектов Шаблоны для организации объектов и классов Шаблоны, ориентированные на задачи Промышленные шаблоны Шаблоны баз данных Резюме Глава 9. Генерация объектов Генерация объектов: задачи и решения Шаблон Singleton Проблема Реализация Выводы Шаблон Factory Method Проблема Реализация Выводы Шаблон AЬstract Factory Проблема Реализация Выводы Шаблон Prototype Проблема Реализация Но это обман! Резюме Глава 10. Шаблоны для программирования гибких объектов Как структурировать классы, чтобы достичь гибкости Шаблон Composite Проблема Реализация Промежу точные выводы Выводы о шаблоне Composite Шаблон Decorator Проблема Реализация Выводы Шаблон Facade Проблема Реализация Выводы Резюме Глава 11. Выполнение задач и представление результатов Шаблон Interpreter Проблема Реализация Проблемы шаблона Interpreter Шаблон Strategy Проблема Реализация Шаблон Observer Реализация Шаблон Visitor Проблема Реализация Проблемы шаблона Visitor Шаблон Command Проблема Реализация Резюме Глава 12. Шаблоны корпоративных приложений Обзор архитектуры Шаблоны Приложения и уровни Небольшое отступление перед началом Шаблон Registry Уровень представления данных Шаблон Front Controller Шаблон Application Controller Шаблон Page Controller Шаблоны Th mplate View и View Helper Уровень логики приложения Шаблон Тr ansaction Script Шаблон Domain Model Резюме Глава 13. Шаблоны баз данных Уровень хранения данных Шаблон Data Mapper Проблема Реализация Результаты Шаблон Identity Мар Проблема Реализация Результаты Шаблон Unit ofWork Проблема Реализация Результаты Шаблон Lazy Load Проблема Реализация Результаты Шаблон Domain Object Factory Проблема Реализация Результаты Шаблон Identity Object Проблема Реализация Результаты Шаблоны Selection Fa ctory и Update Fa ctory Проблема Реализация Результаты Что теперь осталось от Data Mapper Резюме Часть IV. Практика Глава 14. Хорошие и плохие методы работы Что осталось за рамками кода Изобретаем велосипед Хорошая игра Как дать коду крылья Документирование Тестирование Непрерывная интеграция Резюме Глава 15. Введение в PEAR и Pyrus Что такое PEAR Знакомьтесь: Pyrus Инсталляция пакетов Каналы PEAR Использование пакета PEAR Обработка ошибок PEAR Создание собственного пакета PEAR Файл package.xml Элементы пакета Элемент contents Зависимости Настройка инсталляции с помощью phprelease Подготовка пакета к выпуску Настройка собственного канала Определение канала с помощью Pirum Размещение пакета в канале Резюме Глава 16. Генерация документации с помощью phpDocumentor Зачем нужно что-то документировать Инсталляция Генерация документации Комментарии DocBlock Документирование классов Документация на уровне файла Документирование свойств Документирование методов Поддержка пространств имен Создание ссылок в документации Резюме Глава 17. Контроль версий с помощью Git Для чего нужен контроль версий Установка Git Конфигурирование сервера Git Создание сетевого хранилища Подготовка хранилища для локальных пользователей Предоставление доступа для пользователей Закрытие доступа к системной оболочке для пользователя git Начало проекта Клонирование хранили ща Обновление и фиксация изменений Добавление и удаление файлов и каталогов Добавление файла Удаление файла Добавление каталога Удаление каталогов Маркировка готовой версии продукта Разветвление проекта Резюме Глава 18. Тестирование с помощью PHPUnit Функциональные тесты и модульное тестирование Тестирование вручную Знакомство с PHPUnit Создание контрольного примера Методы с утверждениями Тестирование посредством исключений Запуск наборов тестов Огранич ения Имитации и заглушки Тесты, заканчивающиеся неудачей и достигающие цели Написание тестов веб-приложений Рефакторинг веб-приложения для выполнения тестов Простые веб-тесты Знакомство с Seleniurn Получение и установка Seleniurn PHPUnit и Selenium Общие сведения о веб-драйвере для РНР Создание тестового каркаса Подключение к серверу Selenium Написание теста Несколько преду преждений Резюме Глава 19. Автоматическое построение с помощью Phing Что такое Phing Получение и инсталляция Phing Создание документа построения Задания Свойства Условное присвоение значений свойств с помощью задачи condition Типы Задачи Резюме Глава 20. Непрерывная интеграция Что же такое непрерывная интеграция Подготовка проекта для непрерывной интеграции Непрерывная интеграция и контроль версий Phing Модульное тестирование Документация Покрытие кода Стандарты кодирования Построение пакета Сервер НИ Jenki ns Установка сервера Jenkins Установка дополнительных моду лей сервера Jenkins Установка открытого ключа Git Создание и настройка проекта Запуск первого построения проекта Настройка отчетов Автоматический запуск тестов Неудачное тестирование Резюме Часть V. Заключение Глава 21. Объекты, шаблоны, практика Объекты Выбор Инкапсуляция и делегирование Разделение Повторное использование Эстетика Шаблоны Преимущества шаблонов Шаблоны и принципы проектирования Практика Тестирование Документация Контроль версий Автоматическое построение Непрерывная интеграция Что я упустил Резюме Часть VI. Приложения Приложение А. Дополнительные источники информации Книги Статьи в Интернете Сайты Приложение Б. Простой синтаксический анализатор Сканер Объект Parser Предметный указатель