Языки программирования

Характеристики PHP

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

Традиционность:

Язык РНР кажется знакомым программистам, работающим в разных областях. Многие конструкции языка позаимствованы из Си Perl, а нередко код РНР практически неотличим от того, что встречается в типичных программах С или Pascal. Это заметно снижает начальные усилия при изучении РНР.

Простота:

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

Эффективность:

Эффективность является исключительно важным фактором при программировании для многопользовательских сред, к числу которых относится и WWW. В РНР 4.0 был реализован механизм выделения ресурсов и обеспечена улучшенная поддержка объектно-ориентированного программирования, а также средства управления сеансом.

Безопасность:

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

Гибкость:

Поскольку РНР является встраиваемым языком, он отличается исключительной гибкостью по отношению к потребностям разработчика. Хотя РНР обычно рекомендуется использовать в сочетании с HTML, он с таким же успехом интегрируется и в JavaScript, WML, XML и другие языки.
Кроме того, хорошо структурированные приложения РНР легко расширяются по мере необходимости. В сущности, сценарии РНР могут передаваться любым устройствам с браузерами, включая сотовые телефоны, электронные записные книжки, пейджеры и портативные компьютеры. Программисты, занимающиеся вспомогательными утилитами, могут запускать РНР в режиме командной строки.
РНР не содержит кода, ориентированного на конкретный web-сервер, пользователи не ограничиваются определенными серверами. Apache, Microsoft IIS, Netscape Enterprise Server, Stronghold и Zeus — РНР работает на всех серверах.
Поскольку эти серверы работают на разных платформах, РНР в целом является платформенно независимым языком и существует на таких платформах, как UNIX, Solaris, FreeBSD и Windows.

Немного о преимуществах и недостатках:

Преимущества
  • является свободным программным обеспечением, распространяемым под особой лицензией (PHP license);
  • легок в освоении на всех этапах;
  • поддерживается большим сообществом пользователей и разработчиков;
  • имеет развитую поддержку баз данных;
  • имеется огромное количество библиотек и расширений языка;
  • является довольно полной заменой проприетарной среды ASP (Active Server Pages) от Microsoft;
  • может быть развёрнут почти на любом сервере;
  • портирован под большое количество аппаратных платформ и операционных систем.
Недостатки
  • не подходит для создания десктопных приложений или системных компонентов;
  • имеет слабые средства для работы с исключениями;
  • глобальные параметры конфигурации влияют на базовый синтаксис языка, что затрудняет настройку сервера и разворачивание приложений;
  • веб-приложения, написанные на PHP, зачастую имеют проблемы с безопасностью.
Самоучитель по PHP