Геркен Т., Ратшиллер Т. PHP4. Разработка Web-приложений. Пер. с англ. СПб.: Питер, 2001.
Язык сценариев РНР был создан в 1994 г. как средство разработки несложных динамических Web-страниц (первоначально его название расшифровывалось как Pretty Home Page). К настоящему времени (в уходящем году была выпущена версия PHP 4.0) он превратился в полнофункциональное средство разработки сложных Web-приложений, успешно конкурируя с технологией Microsoft ASP и традиционным для Unix-систем языком сценариев Perl.
Книга Т. Ратшиллера и Т. Геркена “PHP4. Разработка Web-приложений”, русский перевод которой недавно вышел в издательстве “Питер”, адресована программистам, работающим над проектами средней и высокой сложности с использованием полного спектра современных Web-технологий. Ее авторы могут похвастаться не только большим опытом программирования, но и немалым стажем общения с командой разработчиков PHP - а значит, им известны многие секреты “внутренней жизни” пакета, которыми они щедро делятся с читателем. Книга будет полезна и тем, кто использует альтернативные средства, поскольку едва ли не большая часть ее объема посвящена вопросам идеологии разработки ПО, защите данных, работе с СУБД, XML и другим проблемам, с которыми встречается каждый Web-программист, вне зависимости от “вероисповедания”.
Первая часть книги, если судить по ее названию - “Усовершенствованный PHP”, посвящена отличиям версии 4.0 от предшествующих. Однако имея дело с рецензируемым изданием, чересчур доверять названиям не следует. Стиль общения авторов с читателем напоминает поучения восточных мудрецов - не запутанностью и многозначностью изречений, а тем, что они никогда не недооценивают своих учеников (а могут и переоценить!). На страницах книги вы не раз столкнетесь с фразами вроде “мы полагаем, что с описанием этой функции читатель в силах разобраться самостоятельно”. Следствием такого подхода является чрезвычайная концентрированность изложения. Поэтому в первой части, помимо новшеств PHP 4 (описанных не слишком подробно - “думаем, что читатель в силах...”), авторы успевают обсудить вопросы стиля выбора имен и написания комментариев, поговорить о сравнительных достоинствах процедурного и объектно-ориентированного подхода, особенностях реализации ассоциативных массивов и использовании самомодифицирующегося кода.
Наиболее объемной и универсальной по тематике является вторая часть - “Web-приложения”. Несмотря на то что все примеры в книге написаны на PHP, информации, специфичной для этого языка, в разделе немного. Зато обсуждаются стратегия коллективной разработки Web-приложений (особенно подробно - система контроля версий CVS, с помощью которой, кстати, была написана и сама книга), вопросы аутентификации и сохранения информации о сеансах работы, применение XML и WDDX. Исключение составляют сведения о свободно распространяемой библиотеке PHPLib - к ее средствам авторы обращаются при решении различных задач. Завершает раздел самая, на мой взгляд, бесполезная часть книги - набор непримечательных success stories о том, как компания N разработала приложение на PHP и на нем обскакала всех конкурентов. Впрочем, эти 15 страниц “читатель в силах оценить самостоятельно”.
Заключительный раздел посвящен расширению возможностей пакета PHP путем разработки дополнительных модулей. Здесь авторы отступают от привычной манеры изложения “читатель разберется” и расписывают необходимые действия буквально по шагам. Видимо, это оправданно, поскольку задача и впрямь непроста. Впрочем, учитывая наличие большого числа стандартных модулей в составе самого PHP, а также множества свободно распространяемых библиотек и сценариев, можно предположить, что большинству читателей книги вряд ли придется сталкиваться с необходимостью расширения функциональности PHP. Но уж если придется - все нужное под рукой.
Книга “PHP4. Разработка Web-приложений”, безусловно, не рассчитана на “чайников” в области Web-программирования. Однако для разработчиков со стажем, использующих языки сценариев, она станет чрезвычайно полезным и, учитывая, что число подобных книг пока крайне невелико, во многих случаях незаменимым пособием.