Главная » 2012»Октябрь»14 » PHP: объекты, шаблоны и методики программирования, 3-е изд.
09:25
PHP: объекты, шаблоны и методики программирования, 3-е изд.
За последние десять лет PHP буквально охватила объектно-ориентированная революция, причем это относится как к самим средствам языка, так и к разработчикам, использующим эти средства, и к приложениям, которые они создают. Теперь основной акцент делается на объектах и объектно-ориентированном подходе к проектированию. Существует еще один момент, связанный с этим и также прочно укоренившийся в современные методики разработки объектно-ориентированных приложений. Речь идет об использовании средств и методик, благодаря которым достигается успешное выполнение проекта, осуществляется эффективное управление группами разработчиков и повышается качество кода. Книга начинается с обзора объектно-ориентированных возможностей PHP, в который включены важные темы, наподобие определения класса, создания объектов, наследовании, инкапсуляции методов и свойств. Вы изучите также и дополнительные темы, такие как статические методы и свойства, абстрактные классы, обработка исключений, клонирование объектов, пространства имен, механизм замыканий и многое другое.
Об авторе О техническом рецензенте Благодарности Предисловие к третьему изданию От издательства Часть I. Введение Глава 1. РНР: проектирование и сопровождение систем Проблема РНР и другие языки Об этой книге Объекты Шаблоны Практика Что нового в третьем издании Резюме Часть II. Объекты Глава 2. РНР и объекты Неожиданный успех РНР-объектов Вначале - PHP/FI Изменение синтаксиса: РНР 3 РНР 4 и тихая революция Изменения приняты: РНР 5 Взгляд в будущее Сторонники и противники: дебаты об объектах Резюме Глава 3. Основные сведения об объектах Классы и объекты Первый класс Первые несколько объектов Определение свойств в классе Работа с методами Создание метода конструктора Аргументы и типы Элементарные типы Уточнения типов объектов Наследование Проблема наследования Работа с наследованием Public, Private и Protected: управление доступом к классам Резюме Глава 4. Дополнительные возможности Статические методы и свойства Постоянные свойства Абстрактные классы Интерфейсы Позднее статическое связывание: ключевое слово static Обработка ошибок Исключения Завершенные классы и методы Работа с методами-перехватчиками Определение методов деструктора Копирование объектов с помощью метода _clone () Определение строковых значений для объектов Функции обратного вызова, анонимные функции и механизм замыканий Резюме Глава 5. Средства для работы с объектами РНР и пакеты Пакеты и пространства имен в РНР Пути включения файлов Автозагрузка Функции для работы с классами и объектами Поиск классов Получение информации об объекте или классе Получение информации о методах Получение информации о свойствах Получение информации о наследовании Вызов метода Интерфейс Reflection API Основные сведения Время закатать рукава Исследование класса Исследование методов Исследование аргументов методов Использование интерфейса Reflection API Резюме Глава 6. Объекты и методология проектирования Определение программного проекта Объектно-ориентированное и процедурное программирование Ответственность Связность Тесная связь Ортогональность Выбор классов Полиморфизм Инкапсуляция Забудьте, как это делается Четыре столпа Дублирование кода Класс, который слишком много "знал" На все руки мастер Условные операторы UML Диаграммы классов Диаграмма последовательности Резюме Часть III. Шаблоны Глава 7. Что такое шаблоны проектирования и зачем они нужны Что такое шаблоны проектирования Обзор шаблонов проектирования Имя Формулировка задачи Решение Результаты Формат "Банды четырех" Зачем используются шаблоны проектирования f Шаблоны определяют задачи Шаблоны определяют решения Шаблоны не зависят от языка программирования Шаблоны определяют словарь Шаблоны проверяются и тестируются Шаблоны предназначены для совместной работы Шаблоны способствуют хорошим проектам РНР и шаблоны проектирования Резюме Глава 8. Некоторые принципы шаблонов Открытие шаблонов Композиция и наследование Проблема Использование композиции Разделение Проблема Ослабление связи Программируйте на основе интерфейса, а не его реализации Меняющаяся концепция Проблемы применения шаблонов Шаблоны Шаблоны для генерации объектов Шаблоны для организации объектов и классов Шаблоны, ориентированные на задачи Промышленные шаблоны Шаблоны баз данных Резюме Глава 9. Генерация объектов Генерация объектов: задачи и решения Шаблон Singleton Проблема Реализация Выводы Шаблон Factory Method Проблема Реализация Выводы Шаблон Abstract Factory Проблема Реализация Выводы Шаблон Prototype Проблема Реализация Но это обман! Резюме Глава 10. Шаблоны для программирования гибких объектов Как структурировать классы, чтобы достичь гибкости Шаблон Composite Проблема Реализация Результаты Выводы о шаблоне Composite Шаблон Decorator Проблема Реализация Результаты Шаблон Facade Проблема Реализация Результаты Резюме Глава 11. Выполнение задач и представление результатов Шаблон Interpreter Проблема Реализация Проблемы шаблона Interpreter Шаблон Strategy Проблема Реализация Шаблон Observer Реализация Шаблон Visitor Проблема Реализация Проблемы шаблона Visitor Шаблон Command Проблема Реализация Резюме Глава 12. Шаблоны корпоративных приложений Обзор архитектуры Шаблоны Приложения и уровни Небольшое отступление перед началом Шаблон Registry Уровень представления данных Шаблон Front Controller Шаблон Application Controller Шаблон Page Controller Шаблоны Template View и View Helper Уровень логики приложения Шаблон Transaction Script Шаблон Domain Model Резюме Глава 13. Шаблоны баз данных Уровень данных Шаблон Data Mapper Проблема Реализация Результаты Шаблон Identity Map Проблема Реализация Результаты Шаблон Unit of Work Проблема Реализация Результаты Шаблон Lazy Load Проблема Реализация Результаты Шаблон Domain Object Factory Проблема Реализация Результаты Шаблон Identity Object Проблема Реализация Результаты Шаблоны Selection Factory и Update Factory Проблема Реализация Результаты Что теперь осталось от Data Mapper Резюме Часть IV. Практика Глава 14. Хорошие и плохие методы работы Что осталось за рамками кода Изобретаем велосипед Хорошая игра Как дать коду крылья Документирование Тестирование Непрерывная интеграция Резюме Глава 15. Введение в PEAR и Pyrus Что такое PEAR Знакомьтесь - Pyrus Инсталляция пакета с помощью PEAR Каналы PEAR Использование пакета PEAR Обработка ошибок PEAR Создание собственного пакета PEAR Файл package.xml Элементы пакета Элемент contents Зависимости Настройка инсталляции с помощью phprelease Подготовка пакета к выпуску Настройка собственного канала Определение канала с помощью PEAR2_SimpleChannelServer Управление PEAR-каналом с помощью PEAR2_SimpleChannelFrontend Обслуживание пакетов Резюме Глава 16. Генерация документации с помощью phpDocumentor Зачем нужно что-то документировать Инсталляция Генерация документации Комментарии DocBlock Документирование классов Документация на уровне файла Документирование свойств Документирование методов Создание ссылок в документации Резюме Глава 17. Контроль версий с помощью Subversion Для чего нужен контроль версий Установка Subversion Конфигурирование хранилища Subversion Создание хранилища Начало проекта Обновление и фиксация изменений Добавление и удаление файлов и каталогов Добавление файла Удаление файла Добавление каталога Удаление каталогов Разметка и экспортирование выпуска Тегирование проекта Экспортирование проекта Разветвление проекта Резюме Глава 18. Тестирование с помощью PHPUnit Функциональные тесты и модульное тестирование Ручное тестирование Знакомство с PHPUnit Создание контрольного примера Методы с утверждениями Тестирование посредством исключений Запуск наборов тестов Ограничения Имитации и заглушки Тесты, заканчивающиеся неудачей и достигающие цели Написание тестов веб-приложений Рефакторинг веб-приложения для выполнения тестов Простые веб-тссты Знакомство с Selenium Получение и установка Selenium Создание теста Несколько предупреждений Резюме Глава 19. Автоматическое построение с помощью Phing Что такое Phing Получение и инсталляция Phing Создание документа построения Задания Свойства Типы Задачи Резюме Глава 20. Непрерывная интеграция Что же такое непрерывная интеграция Подготовка проекта для непрерывной интеграции Непрерывная интеграция и контроль версий Модульное тестирование Документация Покрытие кода Стандарты кодирования Браузер РНР-кода Построение CruiseControl и phpUndcrControl Инсталляция CruiseControl Инсталляция phpUndcrControl Инсталляция вашего проекта Запуск phpUnderControl/CruiseControl Неудачное тестирование Уведомление об отказах Добавление собственных заданий построения Резюме Часть V. Заключение Глава 21. Объекты, шаблоны, практика Объекты Выбор Инкапсуляция и делегирование Разделение Повторное использование Эстетика Шаблоны Преимущества шаблонов Шаблоны и принципы проектирования Практика Тестирование Документация Контроль версий Автоматическое построение Непрерывная интеграция Что я упустил Резюме Часть VI. Приложения Приложение А. Дополнительные источники информации Книги Статьи в Интернете Сайты Приложение Б. Простой синтаксический анализатор Сканер Объект Parser Предметный указатель