Содержание Введение РНР на предприятии Структура и организация книги Платформы и версии 15 16 20 Часть I. Методики реализации и разработки 21 Глава 1. Стили кодирования Выбор правильного стиля Форматирование и компоновка кода Именование Предотвращение запутанности кода Документация Дополнительная литература 23 24 24 32 39 41 47 Глава 2. Объектноориентированное программирование с использованием типовых проектов Введение в OO"программирование Краткое введение в типовые проекты Переопределение Дополнительная литература 50 55 69 82 Глава 3. Обработка ошибок Обработка ошибок Обработка внешних ошибок Исключения Когда использовать исключения Дополнительная литература Глава 4. Реализация средствами PHP: шаблоны и Web Smarty Создание собственного решения на базе шаблонов Дополнительная литература Глава 5. Реализация средствами PHP: автономные сценарии Введение в интерфейс командной строки PHP Обработка ввода"вывода (I/O) Разбор аргументов командной строки Создание и управление дочерними процессами 15 49 83 85 90 92 112 113 115 116 127 129 131 132 133 135 138 8 Содержание Написание демонов Объединение полученных знаний: службы мониторинга Дополнительная литература 145 148 156 Глава 6. Блочное тестирование Введение в блочное тестирование Написание блочных тестов внутри и вне кода программ Дополнительные функции в PHPUnit Разработка на основе тестов Блочное тестирование в Web"среде Дополнительная литература 159 160 163 168 174 184 186 Глава 7. Управление средой разработки Контроль изменений Управление пакетами Дополнительная литература 188 204 210 Глава 8. Проектирование APIинтерфейса Проектирование, обеспечивающее рефакторинг и расширяемость Безопасное программирование Дополнительная литература 212 217 220 Часть II. Кэширование 221 Глава 9. Поверхностная настройка производительности Варианты языковой настройки PHP"приложения с поддержкой кэш"памяти Сжатие содержимого страниц Дополнительная литература 223 Глава 10. Кэширование данных Проблемы кэширования Определение кэшируемых компонентов данных Выбор стратегии: созданные вручную, или серийные классы Буферизация вывода Кэширование в памяти DBM"кэширование Кэширование на основе общей памяти Кэширование на основе cookie"файлов Интеграция кэширования в код приложения Дополнительная литература Глава 11. Повторное использование вычислений Вводный пример: последовательности Фибоначчи Кэширование повторно используемых данных внутри запроса Кэширование повторно используемых данных между запросами Повторное использование вычислений внутри PHP Дополнительная литература 187 211 223 234 239 240 243 244 245 246 246 248 256 262 263 268 284 285 285 291 293 296 298 Содержание 9 Часть III. Распределенные приложения 299 Глава 12. Взаимодействие с базами данных Принципы действия баз данных и запросов Модели доступа к базам данных Настройка доступа к базе данных Дополнительная литература 302 308 318 323 301 Глава 13. Аутентификация пользователей и безопасность сеансов Простые схемы аутентификации Регистрация пользователей Поддержка аутентификации: персонификация пользователей Единая регистрация Дополнительная литература 325 Глава 14. Поддержка сеансов Клиентские сеансы Серверные сеансы 351 Глава 15. Создание распределенной среды Что такое кластер? Основы кластерных конструкций Кэширование в распределенной среде Масштабирование баз данных Дополнительная литература 371 326 329 333 341 348 352 356 371 374 380 387 395 Глава 16. RPC: взаимодействие с удаленными службами XML"RPC SOAP Сравнение SOAP и XML"RPC Дополнительная литература 398 406 416 416 Часть IV. Производительность 419 Глава 17. Оценка производительности: тестирование приложения в целом Пассивный поиск “бутылочных горлышек” Генераторы нагрузки Дополнительная литература Глава 18. Профилирование Необходимые свойства PHP"профайлера Многообразие профайлеров Установка и использование APD Пример трассировки Профилирование более крупного приложения Выявление общей неэффективности Удаление излишней функциональности Дополнительная литература 397 421 422 424 429 431 432 432 433 435 437 442 444 448 10 Содержание Глава 19. Сравнительное тестирование производительности: оценка блоков кода и функций Основы эталонного тестирования Создание эталонной тестовой нагрузки Примеры эталонных тестов 453 453 464 Часть V. Расширяемость 473 Глава 20. Устройство PHP и Zend Engine Как работает Zend Engine: коды операций и операционные массивы Переменные Функции Классы Жизненный цикл запроса в PHP Дополнительная литература 475 Глава 21. Расширение PHP: часть I Основы создания расширений Пример: клиентская оболочка для Spread"службы Дополнительная литература 451 476 482 485 487 491 500 501 502 533 543 Глава 22. Расширение PHP: часть II Реализация классов Написание нестандартных обработчиков сеансов API потоков Дополнительная литература 545 Глава 23. Написание SAPIинтерфейсов и расширение Zend Engine SAPI"интерфейсы Модификация и анализ Zend Engine Домашнее задание 575 575 591 601 Предметный указатель 603 545 559 563 573