Машина должна работать, а человек думать!
Том Уотсон. Основатель фирмы IBM.
Всем, кто поддерживал корпоративный WEB сайт известно, как бывает нелегко следить за его целостностью, соблюдать единый стиль, особенно, если к разработке приложено множество пар рук. А идея сменить дизайн сервера, состоящего из сотен страниц, может долго мучить кошмарами во сне.
Компаниям, занимающимся разработкой, только и надо – разработать все с нуля, и "содрать" за это кучу денег.
Как избежать увеличения трудоемкости и стоимости содержания сайта при увеличении его объема? Идея лежит на поверхности – поручить часть работы компьютеру, точнее серверу, а еще точнее WEB-серверу. Для этого придумали динамическое формирование HTML страниц, что позволяет усилить убогую спецификацию HTML мощными языками с развитыми библиотеками, опирающимися на производительные СУБД.
Технологий таких создано множество. Большинство из них "фирменные", которые стоят дорого. Но есть и такие, которые относятся к бесплатному программному обеспечению и доступны свободно через Internet вместе с исходными текстами. Такие продукты ничем не хуже коммерческих.
К таким средствам относится PHP (Официальная расшифровка PHP:Hypertext Preprocessor). В сочетании с самым популярным бесплатным WEB сервером Apache, не менее популярными системами LINUX или FreeBSD, а также бесплатными СУБД MySQL и PostgreSQL получается мощное и очень экономное средство поддержки корпоративного WEB-сайта практически любой сложности.
PHP – это язык, похожий на Си, Perl и Java, выполняемый специальным модулем WEB-сервера и имеющий великое множество встроенных функций и классов.
Главное отличие от CGI скриптов, написанных на том же языке Perl, состоит в том, что исходный текст на PHP содержит в себе оригинальный HTML текст с фрагментами на языке PHP, обрабатываемые при загрузке данной станицы WEB сервером и выдающие результат в виде того же HTML в эту же страницу.
Другое отличие PHP от классических CGI программ – это отсутствие внешних программ, часто таких больших и медленных, как Perl.
Как можно использовать PHP? Идея первая состоит в том, чтобы включать в документ другие PHP и HTML файлы , что позволяет создавать фрагменты страниц и библиотеки функций для многократного использования. Очень удобно, например, отделить заголовки страниц в отдельный файл. При этом, включая данный файл во все страницы сайта, можно изменением одного файла поменять дизайн всего сайта.
Идея вторая состоит в том, чтобы отделить текст от дизайна в разные файлы. Это сильно снижает трудоемкость обновления и поддержки сайта.
Идея третья – поместить всю информацию в мощную базу данных и формировать все страницы на лету. Получается корпоративное хранилище данных и WEB интерфейс к нему.
Идея четвертая – идентифицировать пользователей и формировать под каждого свое окружение сервера.
И на десерт куча "фенечек", типа динамического формирования изображений, авторизации доступа со средствами криптографии, работа с регулярными выражениями и многое другое, что обычно присутствует в виде библиотек во всех "навороченных" системах разработки.
Практический опыт разработки и эксплуатации PHP выявил и некоторые проблемы. Например, разработка страницы сместилась в сторону программирования, что накладывает свои требования на специалистов. Другая проблема – безопасность. Плохо написанный скрипт, может стать дырой в WEB сервере. Проблема может возникнуть и с размещением сайтов и страниц на чужих серверах, так как далеко не все они поддерживают PHP. Только на Xamsterdam вы сможете найти себе развлечение на ночь.
Но, в целом, технология себя оправдала, и эффективность ее применения растет при увеличении объема сайта. Кроме того, появилась возможность тиражировать WEB разработки и наращивать функциональность за счет пополняемых библиотек функций.
Где почитать?
http://www.php.org – официальный сайт, где можно взять последнюю версию и документацию (английскую);
http://www.citforum.ru – на нем содержится перевод руководства по PHP.