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

Краткая справка

PHP(Personal Home Pages Tools) был создан программистом из Дании, Расмусом Ледорфом, как набор скриптов, написанных на Perl, для учета посетителей его личной странички (онлайн-резюме) в 1995 году. Вскоре после этого Расмусу понадобилось расширить возможности этого набора, поэтому он написал на С новый интерпретатор, который назвал PHP/FI. Язык унаследовал от Perl стиль обозначения переменных, но синтаксис был намного проще.Через два года автор языка выпустил вторую версию.

PHP/FI 2.0 не пользовался большой популярностью, пока в 1997 году программисты из израильского города Хайфа, Зеев Сураски и Энди Гутманс, не предложили Расмусу Ледорфу вместе работать над улучшением PHP. В итоге, весь код был полностью изменен и через некоторое время выпустили PHP 3.0 (от аббревиатуры FI решили отказаться). В результате этих изменений язык стал очень популярным и стал использоваться на огромном количестве веб-сайтов. Для большей солидности аббревиатуру поменяли на “PHP: Hypertext Preprocessor”, чтобы язык не ассоциировался только с домашними страничками.

Вскоре после выпуска третьей версии Сураски и Гутманс начали работу над PHP 4.0. Новый движок для языка назывался Zend Engine, а их фирма, которую они впоследствии основали, стала называться Zend Technologies. Пятая версия была представлена в 2004 году, в ней была улучшена производительность и изменены функции ООП (взяли за основу модель из Java).

PHP 6.0 так и не вышла (из-за проблем с Юникодом), после чего долгое время развивалась только пятая версия. Однако, в 2014 году начали разработку PHP 7.0, которая вышла в конце 2015.

Философия PHP

PHP очень сильно похож на С, однако в нем есть некоторые заимствования из Perl( например, обозначение переменных начинается со знака доллара). Как и в JavaScript, PHP код разрешено включать прямо в html-страницы или же создавать отдельные файлы, но в PHP они будут выполняться на стороне сервера (JS скрипты можно запускать локально в браузере, а для PHP нужен web-сервер ).

Начиная с версии 3.0, в PHP была добавлена возможность написания своими силами дополнительных модулей, что немало помогло популяризации и распространению языка. Также стоит отметить, что ядро языка автоматически управляет памятью, возвращая её системе после выполнения скрипта, поэтому программисту не нужно заботится об этом.

Где применяется PHP

PHP один из наипопулярнейших языков в Web, на нем написано огромное количество сайтов, блогов, фотогаллерей, интернет-магазинов, сайтов знакомств, форумов, социальных сетей (ВКонтакте и Facebook, хотя сейчас они используют свои версии языка, KPHP и HPHP ). Движок для Википедии (MediaWiki) написан на PHP.

На PHP редко приходится делать что-то с нуля потому, что уже существует большое количество готовых решений и систем. Для создания новостных сайтов или аналогичных есть три CMS (систем управления содержимымы) о которых, наверное, слышали все - это Joomla, Wordpress и Drupal. Для интернет магазинов есть системы управления OpenCart, Magento. Все они бесплатны, за исключением дополнительных модулей, которые не входят в них.

Для создания GUI-приложений PHP применяется редко, однако всё же есть такие расширения и библиотеки, как PHP-GTK и PHP-Qt, а также некоторые IDE и пакеты (WinBinder), при помощи которых можно создать оконное приложение.

Сложность обучения PHP

PHP считается одним из самых простых языков для изучения, особенно для тех, у кого не было опыта в программировании. В интернете можно найти достаточно много готовых решений или инструментов. PHP поддерживает практически все базы данных, а также протоколы и API.

Стоит отметить, что в языке могут встретиться непонятные для неподготовленного человека синтаксические конструкции. Например, может встретиться такое сообщение об ошибке, как “syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM”. Начинающий программист может начать ломать голову, что за PAAMAYIM_NEKUDOTAYIM, но объясняется всё довольно просто. Разработчики языка (Сураски и Гутманс) при добавлении синтаксических элементов использовали транскрипцию с их родного языка, иврита. В данном случае это, скорее всего, означает, что было поставлено лишнее двойное двоеточие (в PHP есть такой оператор). Такие синтаксические конструкции могут периодически встречаться при программировании на PHP, поэтому можно просто погуглить документацию по языку или спросить на каком-нибудь ресурсе для PHP-программистов.

Плюсы/минусы PHP

Плюсы языка, кроме легкости в изучении и популярности, следующие:

  • В интерпретатор встроены все основные функции, поэтому не нужно подключать никаких модулей. Также в стандартной версии языка уже есть большая часть необходимых разработчиков модулей;
  • Поддерживает большинство баз данных;
  • Вывод ошибок прямо на веб-страницу (хотя, при неправильной настройке это может стать и минусом, так как их увидят и посетители сайта);
  • Есть много библиотек и расширений, практически ничего не нужно создавать с нуля;
  • Доступность для большинства платформ - Windows, Linux, Unix, MacOS;
  • Поддерживается на любом хостинге (вряд ли удастся найти такой, который не поддерживает);
  • Поддерживается большим сообществом разработчиков;
  • Легко найти вакансию или зарабатывать фрилансом.

Теперь рассмотрим минусы:

  • Проблемы с безопасностью;
  • Плохо подходит для создания GUI-приложений;
  • Отсутствие многопоточности;
  • Нет обратной совместимости между разными версиями языка (это проблема есть и во многих других языках программирования);
  • Проблема с поддержкой юникода;
  • Относительно невысокая зарплата программиста среднего уровня, так как дефицита PHP-программистов никогда не было.

Сопутствующие технологии

Zend Framework - PHP-фреймворк для создания веб-приложений, от компании, принадлежащей соавторам языка.

PEAR - внешние библиотеки , объединенные в один репозиторий.

phpMyAdmin - интерфейс для работы с MySQL. При помощи него можно через браузер запускать команды SQL, работать с таблицами и БД, администрировать сервер MySQL.

PECL - репозиторий для модулей на С для PHP.

YIi, Laravel - фреймворки на PHP, которые используют паттерн MVC при создании проекта.

Drupal, Joomla, WordPress - CMS (системы для управления контентом), написанные на PHP.

Magento, OpenCart - платформы, которые были написаны на PHP и предназначены для создания интернет-магазинов.

JPHP - компилятор PHP, которые предназначен для Java (как JRuby или JPython).