Бегун.Рекомендую - рекламодателю
Здесь может быть ваша реклама
|

 Обзор РНР

Обзор РНР

Предполагается, что читатель достаточно хорошо представляет себе, что такое РНР, однако для полноты картины напомним: РНР (это рекурсивный акроним - РНР: Hypertext Preprocessor) представляет собой язык с открытым исходным кодом (open source) для выполнения на сервере сценариев, создающих динамические веб-страницы. Помимо независимости от броузеров он предлагает простое и универсальное, независимое от платформы решение для электронной коммерции и сложных веб-приложений, в том числе управляемых базами данных.

Почему РНР?

Для РНР характерны:

Низкая и плавная кривая обучения.

•    Развитая функциональность для работы с базами данных,строками, сетевыми соединениями, поддержка операций с файловыми системами, Java, COM, XML, CORBA, WDDX и Macromedia Flash.

Совместимость с платформами: UNIX (любые разновидности), Win32 (NT/95/98/2000), QNX, MacOS (WebTen), OSX, OS/2 и BeOS.

Совместимость с серверами: модулем Apache (UNIX, Win32), CGI/Fast-CGI, thttpd, fhttpd, phttpd, ISAPI (IIS, Zeus), NSAPI (Netscape iPlanet), механизмом сервлетов Java, AOLServer и модулем Roxen/Caudium.

•    Короткий цикл разработки. Новые версии с исправлением найденных ошибок, дополнительными функциями и прочими усовершенствованиями выпускаются каждые несколько месяцев.

•    Энергичное и доброжелательное сообщество разработчиков. Изобилие программных примеров и бесплатного кода. Группа разработчиков РНР отлично справляется с обеспечением новичков ресурсами и поддержкой.

Простота расширения. Можно легко создавать собственные расширения языка. • Простой синтаксис, напоминающий С. Опытные программисты С, C++, Perl и командных сценариев легко осваивают РНР.

Добавьте к этому открытость кода и бесплатность.

Эволюция РНР

Для новичков в РНР предлагается краткий обзор его происхождения, текущего состояния и направлений дальнейшего развития.

РНР в прошлом

Мы изложим историю РНР лишь кратко, а читателям, интересующимся подробностями, рекомендуем обратиться к ознакомительным материалам по РНР на http://conf.php.netцли прочесть раздел Brief History (краткая история) руководства по PHP/FI 2 на http://php.net/docs.php.

Замысел РНР возник у Расмуса Лердорфа (Rasmus Lerdorf) осенью 1994 года. Версия 1 этого языка появилась в начале 1995 года и была положительно воспринята небольшой группой пользователей. Позднее в том же году вышла версия 2, за которой последовали версии 3 и 4 в 1997 и 2000 годах, соответственно.

РНР в настоящее время

Во время написания этой книги рост популярности РНР составлял 15% в месяц, и он использовался по меньшей мере в семи миллионах доменов (источник - Netcraft Survey), то есть 20% всех зарегистрированных на тот момент доменов. А это существенная часть рынка, если еще учесть, что в это число не входят многочисленные установки в корпоративных сетях и закрытых серверах разработчиков.

РНР может работать на 7 основных платформах (стабильно), с 10 интерфейсами серверов (стабильно), поддерживает 40 стабильных расширений (и примерно столько же экспериментальных), предлагает поддержку свыше 20 баз данных. Эти цифры подтверждают, что своей нынешней популярности РНР достиг благодаря мощи и простоте использования.

РНР на арене

Прежде чем бегло изложить преимущества РНР4 над РНРЗ, хотелось бы поблагодарить тысячи читателей, тепло принявших книгу «Professional РНР Programming» издательства Wrox (ISBN 1-861002-96-3), вышедшую зимой 1999 года.1 Мы искренне надеемся, что данная книга станет дополнитель-

-1 КастаньеттоДж., ХаришР., ШуманС, СколлоК., Велиаф Д. «Профессиональное РНР программирование». -СПб: Символ-Плюс, 2001 .

РНР в сравнении сдругими языками сценариев

ным чтением для профессионалов, отражая все изменения, происшедшие с тех пор в мире РНР.

В РНРЗ синтаксический анализ и компиляция кода РНР происходили одновременно, благодаря чему сокращалось базовое время запуска до начала выполнения. Это было основной причиной быстрого выполнения простых сценариев. К сожалению, при необходимости обработки сложных сценариев возникала избыточность, связанная с повторяющимся синтаксическим анализом участков кода, например при обработке циклов и многократных вызовах функций. Виновато было основное ядро, и стало очевидно, что именно на нем надо сосредоточить усилия, направленные на повышение производительности, - это и стало побудительным мотивом к разработке РНР4.

Здесь нельзя не упомянуть о большом вкладе фирмы Zend в разработку РНР. Настоятельно рекомендуем посетить http://www.zend.com/zend/whats-new.phpи узнать подробности о новых возможностях, появившихся в РНР4.

Перспективы РНР

Машина сценариев РНР4 представляет собой переработанную машину сценариев РНРЗ, предоставляет более ясную инфраструктуру и сервисы для функциональных модулей и реализует синтаксис языка. Эта пересмотренная версия в значительной мере основана на тех же правилах синтаксического анализа, что и машина сценариев РНРЗ, что обеспечивает хорошую обратную совместимость и переход от РНРЗ к РНР4. Однако у этой медали есть и оборотная сторона — ограниченность усовершенствований языка в сравнении с РНРЗ.

При поддержке многочисленных разработчиков РНР фирма Zend Technologies Ltd начала переработку машины Zend Engine, в которой будут содержаться новые функции, усовершенствованы имеющиеся и решены некоторые из самых значительных проблем, с которыми сталкиваются сегодня разработчики РНР. Если вы пристально следите за развитием РНР, советуем поместить http://www.zend.com/zend/future.pkpcBouсписок избранных ссыпок, а также подписаться на еженедельный бюллетень новостей Zend 2.0 на http://www.zend.com/zend/zengine/.

РНРвсравнении

с другими языками сценариев

Для тех, кто перешел на РНР с других языков сценариев, мы включили этот раздел, в котором объясняется, почему они сделали правильный выбор.

РНР и ASP

ASP (Active Server Pages) является фирменным «языком» сценариев Microsoft. Вообще говоря, ASP - это не язык, а расширение Visual Basic для создания сценариев. По этой причине всякому, кто знаком с Visual Basic, относительно легко освоить ASP.

Каковы недостатки? Во-первых, ASP обычно работает медленнее, чем РНР. Фундамент ASP образует архитектура, основанная на СОМ. Поэтому когда программа ASP обращается к базе данных или осуществляет вывод данных для клиента, это происходит при посредстве СОМ-объектов других сервисов NT или уровней операционной системы. Эти связанные с СОМ накладные расходы могут накапливаться и приводить к тому, что во всех случаях, кроме выдачи простых страниц при среднем трафике, производительность оказывается невысокой. Во-вторых, ASP не вполне годится для переноса на другие платформы и интеграции со средствами GNU, а также средами и серверами open source.

Будучи фирменной системой Microsoft, ASP в основном применяется с ее же Internet Information Server (IIS), из-за чего ASP обычно выбирают ограниченно -для 32-разрядных систем Windows, поскольку для большинства серверов эта технология служит бесплатным приложением. Существуют версии ASP для UNIX (например, ChilliSoft ASP) и ряд интерпретаторов ASP для других систем и веб-серверов, однако для них стоимость системы с учетом ее производительности может оказаться неоправданно высокой. Решением данной проблемы может оказаться использование программы asp2php (http://asp2php.naken.cc/которая преобразует ASP в РНР.

Однако технология ASP.NETвесьма отличается. В будущем ASP может существенно поднять свою производительность и возможность масштабирования. Это будет достигнуто дальнейшим усилением архитектуры .NET/COM и управляющей среды. Однако реальных преимуществ можно достичь лишь при условии значительных затрат на различные сопутствующие серверы.

РНР и Cold Fusion

РНР работает практически на всех платформах, а версии Cold Fusion есть только для Win32, Solaris, Linux и HP/TJX. РНР требует больших начальных навыков программирования, в отличие от Cold Fusion с совершенной интегрированной средой разработки (IDE) и более простыми языковыми конструкциями. РНР менее требователен к ресурсам.

РНР и Perl

Будучи разработанным специально для Интернета, РНР имеет в этой области преимущества над Perl, поскольку Perl разрабатывался для бесчисленных применений (что отразилось на его виде). Форма и синтаксис Perl могут осложнить чтение сценариев Perl и их модификацию, когда она требуется.

Хотя Perl в ходу достаточно долго (он был разработан в конце 1980-х) и широко поддерживается, он превратился в сложную конструкцию из дополнений и расширений и часто просто избыточен. Формат РНР легче для восприятия при сохранении гибкости. РНР проще интегрируется с уже имеющимся HTML и предлагает функциональность, аналогичную Perl, но со значительно большим изяществом.

IPHP и Java

PHP проще использовать, чем Java, с его помощью легче строить веб-приложения, обладающие такими же преимуществами гибкости и масштабируемости. Работая с РНР, не обязательно обладать 5-летним опытом разработки программного обеспечения, чтобы создавать простые динамические страницы - для этого достаточно быть сообразительным, даже при небольшом опыте программирования.

Кроме того, Java часто обходится дороже, поскольку в большинстве компаний в конечном счете устанавливают отдельную машину для Java Enterprise и используют Oracle или другое дорогостоящее ПО. При всем этом РНР требует дальнейшего развития, поскольку не обладает такой же переносимостью и некоторыми удобными возможностями, такими как пул объектов или отображение баз данных, которые есть в Java. Эти вопросы учтены при проектировании машины сценариев Zend 2.0.

ЛицензированиеРНР

Ранее РНР выпускался как с лицензией GPL (General Public License), так и со своей собственной, и отдельные пользователи могли выбрать из них предпочтительную для себя. В настоящее время программа в целом выходит со своей крайне неограничительной лицензией РНР4 (http://download.php.net/ license/2J) 2.txt).

В период написания книги продукция Zend выпускалась под лицензией QPL (Q Public License). Подробности можно найти на http://www.zend.com/license/ ZendLicense/. Кроме того, в пресс-релизе компании говорилось о переходе на лицензию типа BSD, чтобы обеспечить совместимость с лицензией РНР и предоставить больше свободы для дальнейшего развития.

Список ресурсов

Даже количество ресурсов РНР ошеломляет. Вот некоторые достаточно важные ресурсы, которые часто упускают:

Официальный сайт РНР (http://php.net/)

Веб-сайт РНР известен всем. Однако на нем можно найти массу информации. Часто имеет смысл покопаться на php.net, прежде чем двигаться куда-то еще. Иногда нужную информацию найти на этом сайте оказывается нелегко, но она стоит потраченных усилий.

Архивы презентаций на конференциях РНР (http://conf.php.net/)

В архиве этого сайта хранится множество презентаций, сделанных ведущими членами сообщества РНР.

PHP4WIN (http://www.php4win.com/)

PHP4Win - отличный источник ресурсов для разработчиков программ РНР под Windows.

•      Архивы почтового списка рассылки РНР (http://php.net/support.php)

Архивы почтового списка рассылки РНР содержат массу информации. Многие почтовые списки непрерывно архивировались в течение нескольких лет. В архивах хранятся ответы на многие вопросы.

•      Последние сборки дистрибутивов РНР (http://snaps.php.net/)

Для РНР характерен очень быстрый цикл разработки. Добавление функций и исправление ошибок происходят ежедневно. Если требуется получить последнюю версию РНР, чтобы воспользоваться новой возможностью или исправлением ошибки, можно загрузить с этого сайта версию РНР, давность которой составляет несколько часов или дней.

•    Веб-интерфейсы к хранилищу исходного кода РНР

Есть три разных средства для on-line просмотра репозитория CVS. CVS -это программное средство контроля версий, с помощью которого разработчики РНР справляются со многими сотнями файлов, образующих проект РНР. Дополнительные сведения о CVS можно получить на http://www.cvshome.org/.

Эти интерфейсы можно найти по следующим адресам:

http://cvs.php.net/предоставляетпростой интерфейс к CVS-хранилищу для РНР

http://bonsai.php.net/

http://lxr.php.netПредоставляет мощные функции поиска и индексации, превосходящие те, которые обеспечивает http://cvs.php.net/

•        PHPBuilder (http://www.phpbuilder.com/)

PHPBuilder - это обширный сайт, куда помещают информацию о совместном использовании РНР и практически любых других продуктов. Здесь находится большое количество вспомогательной информации и документации.

•       Проект Apache (http://www.apache.org/)

Официальный сайт самого популярного веб-сервера в мире. На этом сайте есть документация по установке, настройке и решению проблем веб-сервера Apache, а также полезные сведения о создании для него собственных модулей.

•       Официальный сайт MySQL (http://www.mysql.com/)

MySQL является предпочтительной базой данных для многих программистов РНР. Она выпускается под открытой лицензией MySQL Free Public License. Дополнительные сведения об этой лицензии можно найти на официальном сайте MySQL.

•       Официальный сайт PostgreSQL (http://www.postgreSQL.org/)

Здесь можно познакомиться с историей PostgreSQL, загрузить экземпляр PostgreSQL, просмотреть официальную документацию и узнать многое другое, в том числе, как правильно произносить «PostgreSQL».

 
MKPortal©2003-2008 mkportal.it
MultiBoard ©2007-2009 RusMKPortal