За последние десять лет РНР буквально охватила объектно-ориентированная революция, причем это относится как к самим средствам языка, так и к разработчикам, использующим эти средства, и к приложениям, которые они создают. Теперь основной акцент делается на объектах и объектно-ориентированном подходе к проектированию. Существует еще один момент, связанный с этим и также прочно укоренившийся в современных методиках разработки объектно-ориентированных приложений. Речь идет об использовании средств и методик, благодаря которым достигается успешное выполнение проекта, осуществляется эффективное управление группами разработчиков и повышается качество кода. Книга начинается с обзора объектно-ориентированных возможностей РНР, в который включены важные темы: определение класса, создание объектов, наследование, инкапсуляция методов и свойств. Вы изучите также и дополнительные темы, такие как статические методы и свойства, абстрактные классы, обработка исключений, клонирование объектов, пространства имен, механизм замыканий и многое другое. Кроме того, довольно подробно будут описаны также лучшие практические решения в области объектно-ориентированного проектирования. Следующая часть книги посвящена шаблонам проектирования, которые органически дополняют тему ООП и являются описанием элегантных решений распространенных проблем, возникающих при проектировании программного обеспечения. В ней описываются концепции шаблонов проектирования и показаны способы реализации нескольких важных шаблонов в приложениях на РНР. В этой же части приведен материал, посвященный шаблонам корпоративных приложений и баз данных. В последней части книги описывается несколько важных утилит, облегчающих процесс создания технической документации, управления работой групп программистов, тестирования кода и развертывания PHP-приложений: Phing, PHPUnit, phpDocumentor, PEAR и Subversion. Вы также ознакомитесь с непрерывной интеграцией — системой, которая позволяет объединить все эти средства «под одной крышей» и автоматизировать процессы построения, развертывания и тестирования приложений.