PHP. Объекты, шаблоны и методики программирования
Мэтт Зандстра
За последние десять лет PHP буквально охватила объектно-ориентированная революция, причем это относится как к самим средствам языка, так и к разработчикам, использующим эти средства, и к приложениям, которые они создают. Теперь основной акцент делается на объектах и объектно-ориентированном подходе к проектированию. Существует еще один момент, связанный с этим и также прочно укоренившийся в современные методики разработки объектно-ориентированных приложений. Речь идет об использовании средств и методик, благодаря которым достигается успешное выполнение проекта, осуществляется эффективное управление группами разработчиков и повышается качество кода.
Книга начинается с обзора объектно-ориентированных возможностей PHP, в который включены важные темы, наподобие
- определения класса,
- создания объектов,
- наследовании,
- инкапсуляции методов и свойств.
Вы изучите также и дополнительные темы, такие как
- статические методы и свойства,
- абстрактные классы,
- обработка исключений,
- клонирование объектов,
- пространства имен,
- механизм замыканий и многое другое.
Издательство: Вильямс, 2011 г.
ISBN 978-5-8459-1689-1, 978-1-43-022925-4
Количество страниц: 560.
Содержание книги «PHP. Объекты, шаблоны и методики программирования»:
- 16 Об авторе
- 17 О техническом рецензенте
- 18 Благодарности
- 19 Предисловие к третьему изданию
- 20 От издательства
- 21 Часть I. Введение
- 23 Глава 1. PHP: проектирование и сопровождение систем
- 23 Проблема
- 25 PHP и другие языки
- 27 Об этой книге
- 27 Объекты
- 27 Шаблоны
- 28 Практика
- 29 Что нового в третьем издании
- 29 Резюме
- 31 Часть II. Объекты
- 33 Глава 2. PHP и объекты
- 33 Неожиданный успех PHP-объектов
- 33 Вначале — PHP/FI
- 34 Изменение синтаксиса: PHP 3
- 34 PHP 4 и тихая революция
- 36 Изменения приняты: PHP 5
- 36 Взгляд в будущее
- 37 Сторонники и противники: дебаты об объектах
- 38 Резюме
- 33 Неожиданный успех PHP-объектов
- 39 Глава 3. Основные сведения об объектах
- 39 Классы и объекты
- 39 Первый класс
- 40 Первые несколько объектов
- 41 Определение свойств в классе
- 43 Работа с методами
- 45 Создание метода конструктора
- 46 Аргументы и типы
- 47 Элементарные типы
- 50 Уточнения типов объектов
- 52 Наследование
- 52 Проблема наследования
- 56 Работа с наследованием
- 61 Public, Private и Protected: управление доступом к классам
- 65 Резюме
- 39 Классы и объекты
- 67 Глава 4. Дополнительные возможности
- 67 Статические методы и свойства
- 71 Постоянные свойства
- 71 Абстрактные классы
- 73 Интерфейсы
- 75 Позднее статическое связывание: ключевое слово static
- 78 Обработка ошибок
- 80 Исключения
- 84 Завершенные классы и методы
- 86 Работа с методами-перехватчиками
- 90 Определение методов деструктора
- 91 Копирование объектов с помощью метода __clone()
- 94 Определение строковых значений для объектов
- 95 Функции обратного вызова, анонимные функции и механизм замыканий
- 99 Резюме
- 101 Глава 5. Средства для работы с объектами
- 101 PHP и пакеты
- 102 Пакеты и пространства имен в PHP
- 109 Пути включения файлов
- 110 Автозагрузка
- 112 Функции для работы с классами и объектами
- 113 Поиск классов
- 114 Получение информации об объекте или классе
- 115 Получение информации о методах
- 116 Получение информации о свойствах
- 116 Получение информации о наследовании
- 117 Вызов метода
- 118 Интерфейс Reflection API
- 118 Основные сведения
- 119 Время закатать рукава
- 122 Исследование класса
- 123 Исследование методов
- 125 Исследование аргументов методов
- 126 Использование интерфейса Reflection API
- 130 Резюме
- 101 PHP и пакеты
- 131 Глава 6. Объекты и методология проектирования
- 131 Определение программного проекта
- 132 Объектно-ориентированное и процедурное программирование
- 136 Ответственность
- 136 Связность
- 136 Тесная связь
- 137 Ортогональность
- 137 Выбор классов
- 138 Полиморфизм
- 140 Инкапсуляция
- 141 Забудьте, как это делается
- 142 Четыре столпа
- 142 Дублирование кода
- 142 Класс, который слишком много «знал»
- 143 На все руки мастер
- 143 Условные операторы
- 143 UML
- 144 Диаграммы классов
- 149 Диаграмма последовательности
- 151 Резюме
- 153 Часть III. Шаблоны
- 155 Глава 7. Что такое шаблоны проектирования и зачем они нужны
- 155 Что такое шаблоны проектирования
- 158 Обзор шаблонов проектирования
- 158 Имя
- 158 Формулировка задачи
- 158 Решение
- 159 Результаты
- 159 Формат «Банды четырех»
- 160 Зачем используются шаблоны проектирования
- 160 Шаблоны определяют задачи
- 160 Шаблоны определяют решения
- 160 Шаблоны не зависят от языка программирования
- 160 Шаблоны определяют словарь
- 161 Шаблоны проверяются и тестируются
- 161 Шаблоны предназначены для совместной работы
- 162 Шаблоны способствуют хорошим проектам
- 162 PHP и шаблоны проектирования
- 162 Резюме
- 163 Глава 8. Некоторые принципы шаблонов
- 163 Открытие шаблонов
- 164 Композиция и наследование
- 164 Проблема
- 167 Использование композиции
- 169 Разделение
- 170 Проблема
- 171 Ослабление связи
- 173 Программируйте на основе интерфейса, а не его реализации
- 174 Меняющаяся концепция
- 175 Проблемы применения шаблонов
- 176 Шаблоны
- 176 Шаблоны для генерации объектов
- 176 Шаблоны для организации объектов и классов
- 176 Шаблоны, ориентированные на задачи
- 176 Промышленные шаблоны
- 176 Шаблоны баз данных
- 177 Резюме
- 179 Глава 9. Генерация объектов
- 179 Генерация объектов: задачи и решения
- 183 Шаблон Singleton
- 184 Проблема
- 184 Реализация
- 186 Выводы
- 187 Шаблон Factory Method
- 187 Проблема
- 190 Реализация
- 191 Выводы
- 192 Шаблон Abstract Factory
- 192 Проблема
- 194 Реализация
- 195 Выводы
- 197 Шаблон Prototype
- 198 Проблема
- 198 Реализация
- 201 Но это обман!
- 203 Резюме
- 205 Глава 10. Шаблоны для программирования гибких объектов
- 205 Как структурировать классы, чтобы достичь гибкости
- 206 Шаблон Composite
- 206 Проблема
- 208 Реализация
- 212 Результаты
- 215 Выводы о шаблоне Composite
- 216 Шаблон Decorator
- 216 Проблема
- 217 Реализация
- 221 Результаты
- 222 Шаблон Facade
- 222 Проблема
- 223 Реализация
- 224 Результаты
- 225 Резюме
- 227 Глава 11. Выполнение задач и представление результатов
- 227 Шаблон Interpreter
- 227 Проблема
- 229 Реализация
- 236 Проблемы шаблона Interpreter
- 236 Шаблон Strategy
- 237 Проблема
- 237 Реализация
- 241 Шаблон Observer
- 243 Реализация
- 248 Шаблон Visitor
- 249 Проблема
- 250 Реализация
- 254 Проблемы шаблона Visitor
- 255 Шаблон Command
- 255 Проблема
- 255 Реализация
- 260 Резюме
- 227 Шаблон Interpreter
- 261 Глава 12. Шаблоны корпоративных приложений
- 261 Обзор архитектуры
- 262 Шаблоны
- 262 Приложения и уровни
- 265 Небольшое отступление перед началом
- 265 Шаблон Registry
- 275 Уровень представления данных
- 276 Шаблон Front Controller
- 286 Шаблон Application Controller
- 298 Шаблон Page Controller
- 303 Шаблоны Template View и View Helper
- 306 Уровень логики приложения
- 306 Шаблон Transaction Script
- 311 Шаблон Domain Model
- 315 Резюме
- 261 Обзор архитектуры
- 317 Глава 13. Шаблоны баз данных
- 317 Уровень данных
- 318 Шаблон Data Mapper
- 318 Проблема
- 318 Реализация
- 331 Результаты
- 332 Шаблон Identity Map
- 332 Проблема
- 333 Реализация
- 335 Результаты
- 336 Шаблон Unit of Work
- 336 Проблема
- 336 Реализация
- 340 Результаты
- 340 Шаблон Lazy Load
- 340 Проблема
- 341 Реализация
- 343 Результаты
- 343 Шаблон Domain Object Factory
- 343 Проблема
- 343 Реализация
- 344 Результаты
- 345 Шаблон Identity Object
- 346 Проблема
- 347 Реализация
- 352 Результаты
- 352 Шаблоны Selection Factory и Update Factory
- 352 Проблема
- 352 Реализация
- 356 Результаты
- 356 Что теперь осталось от Data Mapper
- 358 Резюме
- 361 Часть IV. Практика
- 363 Глава 14. Хорошие и плохие методы работы
- 363 Что осталось за рамками кода
- 364 Изобретаем велосипед
- 366 Хорошая игра
- 366 Как дать коду крылья
- 368 Документирование
- 369 Тестирование
- 370 Непрерывная интеграция
- 371 Резюме
- 373 Глава 15. Введение в PEAR и Pyrus
- 374 Что такое PEAR
- 375 Знакомьтесь — Pyrus
- 376 Инсталляция пакета с помощью PEAR
- 377 Каналы PEAR
- 379 Использование пакета PEAR
- 381 Обработка ошибок PEAR
- 384 Создание собственного пакета PEAR
- 384 Файл package.xml
- 384 Элементы пакета
- 386 Элемент contents
- 389 Зависимости
- 390 Настройка инсталляции с помощью phprelease
- 391 Подготовка пакета к выпуску
- 392 Настройка собственного канала
- 392 Определение канала с помощью PEAR2_SimpleChannelServer
- Управление PEAR-каналом
- 393 с помощью PEAR2_SimpleChannelFrontend
- 395 Обслуживание пакетов
- 397 Резюме
- 399 Глава 16. Генерация документации с помощью phpDocumentor
- 399 Зачем нужно что-то документировать
- 400 Инсталляция
- 401 Генерация документации
- 403 Комментарии DocBlock
- 404 Документирование классов
- 405 Документация на уровне файла
- 406 Документирование свойств
- 407 Документирование методов
- 409 Создание ссылок в документации
- 411 Резюме
- 413 Глава 17. Контроль версий с помощью Subversion
- 413 Для чего нужен контроль версий
- 414 Установка Subversion
- 415 Конфигурирование хранилища Subversion
- 415 Создание хранилища
- 417 Начало проекта
- 421 Обновление и фиксация изменений
- 425 Добавление и удаление файлов и каталогов
- 425 Добавление файла
- 425 Удаление файла
- 425 Добавление каталога
- 426 Удаление каталогов
- 426 Разметка и экспортирование выпуска
- 426 Тегирование проекта
- 427 Экспортирование проекта
- 427 Разветвление проекта
- 431 Резюме
- 433 Глава 18. Тестирование с помощью PHPUnit
- 434 Функциональные тесты и модульное тестирование
- 434 Ручное тестирование
- 436 Знакомство с PHPUnit
- 437 Создание контрольного примера
- 438 Методы с утверждениями
- 439 Тестирование посредством исключений
- 440 Запуск наборов тестов
- 441 Ограничения
- 443 Имитации и заглушки
- 446 Тесты, заканчивающиеся неудачей и достигающие цели
- 448 Написание тестов веб-приложений
- 449 Рефакторинг веб-приложения для выполнения тестов
- 452 Простые веб-тесты
- 454 Знакомство с Selenium
- 454 Получение и установка Selenium
- 455 Создание теста
- 459 Несколько предупреждений
- 461 Резюме
- 463 Глава 19. Автоматическое построение с помощью Phing
- 464 Что такое Phing
- 465 Получение и инсталляция Phing
- 465 Создание документа построения
- 466 Задания
- 468 Свойства
- 473 Типы
- 477 Задачи
- 481 Резюме
- 483 Глава 20. Непрерывная интеграция
- 483 Что же такое непрерывная интеграция
- 485 Подготовка проекта для непрерывной интеграции
- 486 Непрерывная интеграция и контроль версий
- 487 Модульное тестирование
- 488 Документация
- 488 Покрытие кода
- 489 Стандарты кодирования
- 490 Браузер PHP-кода
- 491 Построение
- 492 CruiseControl и phpUnderControl
- 493 Инсталляция CruiseControl
- 494 Инсталляция phpUnderControl
- 496 Инсталляция вашего проекта
- 499 Запуск phpUnderControl/CruiseControl
- 500 Неудачное тестирование
- 502 Уведомление об отказах
- 503 Добавление собственных заданий построения
- 506 Резюме
- 483 Что же такое непрерывная интеграция
- 509 Часть V. Заключение
- 511 Глава 21. Объекты, шаблоны, практика
- 511 Объекты
- 512 Выбор
- 512 Инкапсуляция и делегирование
- 512 Разделение
- 513 Повторное использование
- 514 Эстетика
- 514 Шаблоны
- 515 Преимущества шаблонов
- 516 Шаблоны и принципы проектирования
- 517 Практика
- 518 Тестирование
- 518 Документация
- 518 Контроль версий
- 519 Автоматическое построение
- 519 Непрерывная интеграция
- 520 Что я упустил
- 521 Резюме
- 511 Объекты
- 523 Часть VI. Приложения
- 525 Приложение А. Дополнительные источники информации
- 525 Книги
- 526 Статьи в Интернете
- 526 Сайты
- 529 Приложение Б. Простой синтаксический анализатор
- 529 Сканер
- 537 Объект Parser
- 551 Предметный указатель
Инструкция как скачать книгу Мэтт Зандстра: PHP. Объекты, шаблоны и методики программирования в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.