Телеграм-канал основателя Checkroi — Вани Буявца

Посмотреть →
Агрегатор онлайн-курсов Checkroi.ru Блог Разработка на PHP Применение PHP: почему рано хоронить язык и кому стоит его изучать

Применение PHP: почему рано хоронить язык и кому стоит его изучать

от Мария Грищенко
Опубликовано: Страница обновлена: 1877 просмотров Время прочтения: 21 минута

PHP — самый «живучий» язык программирования. Который год ему пророчат скорую гибель, но он по-прежнему один из самых популярных. В 2020 году в индексе TIOBE язык PHP занял 8 место, опережая Swift, Ruby и Objective-C.

И раз PHP ещё рано списывать со счетов, разберёмся — где его используют, зачем нужен PHP и что это вообще такое. 

Особенности языка PHP

Эти особенности определяют то, как PHP выполняет задачи, общается с сайтами и приложениями и кто его может менять (спойлер — все).

PHP — скриптовый (сценарный) язык. На таких языках пишут сценарии или скрипты — программы, которые автоматизируют небольшие рутинные задачи. Иначе их попросту пришлось бы выполнять вручную.

YouTube video player

Как работает PHP, объясняют на канале сообщества веб-разработчиков WebShakeRU

Зачем нужны скрипты 

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

Выполнение сценария также называют его интерпретацией, а сам PHP — интерпретатором.

Аналогия, которая поможет лучше представить работу интерпретатора:

Есть файл, где половина текста на русском, а половина — на английском. Задача — перевести весь текст на русский. Точно так же и обработчик смотрит .php файл, который состоит из HTML (русский) и php-кода (английский, его надо обрабатывать, «переводить»)

PHP — интерпретируемый язык. Раз PHP — интерпретатор, это даёт много плюсов:

  • не нужно освобождать выделенную память или закрывать файлы по окончании работы с ними — всю рутинную работу сделает интерпретатор;
  • отладка программ и обнаружение ошибок упрощаются — интерпретатор полностью контролирует этот процесс;
  • сервер не «зависает» при неправильной работе приложения.

PHP — серверный язык. Всё работа происходит на удалённом веб-сервере. Открываете сайт — на сервер посылается запрос, выполняет заданные действия, отдаёт результат и завершается.

Что такое веб-сервер

Веб-сервер — это и про железо, и про программное обеспечение.

  • с точки зрения железа, это компьютер, который хранит ресурсы сайта (HTML-документы, CSS-стили, JavaScript-файлы) и доставляет их на устройство (браузер) пользователя. Обычно он подключен к интернету и доступен через доменное имя.
    Mozilla.org, youtube.com, shop.reg.ru — всё это доменные имена.
  • с точки зрения ПО, это HTTP-сервер — та часть ПО, которая понимает урлы (веб-адреса) и HTTP — протокол, который использует ваш браузер для просмотра веб-страниц.

Когда браузеру нужен файл, размещённый на веб-сервере, он запрашивает его через HTTP. Когда запрос достигает веб-сервера (железо), сервер HTTP (ПО) передает запрашиваемый документ обратно, тоже через HTTP. HTTP-ответ, как правило, содержит в себе HTML-страницу, изображение или обычный файл любого формата.

Это значит то, что на устройстве язык может быть вообще не установлен. Компьютер, ноутбук, смартфон могут PHP не понимать и быть c ним совершенно не знакомы. А сайт или приложение при этом запускается и стабильно работает.

Браузер тоже значения не имеет — программа на PHP успешно функционирует с любого.

Схема работы веб-сервера от сайта Lectureswww.readthedocs.io

Схема работы веб-сервера от сайта Lectureswww.readthedocs.io

PHP — язык с динамической типизацией. Это значит, что типы переменных определяются во время выполнения программы, разные типы можно использовать вместе, а неявные преобразования выполняются автоматически.

Статистическая vs динамическая типизация 

Языки программирования бывают со статической и динамической типизацией. 

  • статическая — переменная определена жёстко и не может быть изменена. Переменная или параметр будут принимать, а функция — возвращать значения только этого типа и никак иначе.  
  • динамическая — переменная не определена и может быть одновременно числом, строкой, массивом, объектом — чем угодно. Одной переменной можно присвоить число, затем массив и объект — и язык программирования это разрешит.

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

Телеграм-канал Вани Буявца

Зачем придумали PHP

PHP изобрёл в 1994 году датский программист Расмус Лердорф. Тогда это был ещё не полноценный язык программирования, а всего лишь набор скриптов, который позволил Лердорфу сделать первое онлайн-резюме в виде HTML-страницы.

PHP расшифровывается как Personal Home Page — и отсылает к тому, чем язык был изначально — инструментом для разработки персональных веб-страниц

В то время создавать сайты можно было только так и не штудировать при этом тома по программированию.

Сейчас PHP поддерживает компания Zend Technologies: в 1997 году она выпустила третью версию языка и активно развивают его до сих пор.

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

Эволюция версий

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

PHP 1.0-2.0 — 1994. Ранние версии были «сырыми». Первая и вторая модификации обладали базовой функциональностью сегодняшнего PHP. Она включала в себя переменные в стиле Perl — языка для работы с текстом, который и лёг в основу PHP, автоматическую интерпретацию форм, когда по приходу формы язык автоматически создаёт переменные, и возможность встраиваться в HTML-код.

Синтаксис имел много общего с Perl, хотя и был намного проще.

Второй версией PHP, которая получила название PHP/FI 2.0, пользовались 50 тысяч доменов — около 1% всех доменов в интернете

PHP 3.0 — 1997. Третья версия, по сравнению с предыдущими, шагнула далеко вперёд, и определила облик PHP, сделав язык таким, каким мы его знаем.

Израильские программисты Зеев Сураски и Энди Гутманс, которые тогда присоединились к проекту, решили переписать код заново, потому что PHP/FI 2.0 был очень ограниченным.

Одна из сильнейших сторон PHP 3.0 — возможность расширения ядра, которая привлекла к языку много сторонних разработчиков, желающих добавить в PHP свои модули. Это и стало ключом к успеху.

К концу 1998 года количество пользователей PHP исчислялось десятками тысяч. Третья версия уже заняла заняла 10% веб-серверов интернета, включая тех, что находились под управлением Windows 95, 98, NT и Macintosh. Её установили уже на семи тысячах доменов

PHP 4.0 — 1998. Переработка ядра — основная задача, которую поставили перед собой разработчики после выхода PHP 3.0. Эффективность приложений, написанных на PHP, была далека от идеала — нужно было что-то с этим делать. Новый движок Zend Engine решил проблему и значительно увеличил производительность PHP.

PHP 5.0 — 2004. Пятая версия получила обновлённое ядро — Zend Engine 2 и переработанные функции объектно-ориентированного программирования, которые стали во многом схожи с моделью, используемой в Java. А скорость кода повысилась на 10–20%.

PHP 6.0 — 2006. Шестую версию пропустили. В неё хотели встроить поддержку Unicode — стандарта кодирования, включающего в себя знаки почти всех письменных языков мира. Но релиз так и не состоялся. Вот почему:

«PHP 6 был амбициозным, но отстойным. Вот почему мы занялись PHP 7, в процессе пропустив шестую версию»

Vilson Duka, один из разработчиков

PHP 7.0 — 2015. Самая быстрая версия языка, работающая без статической типизации — она есть только в параметрах функции. Добавили новые операторы, возможность указывать тип возвращаемых из функции данных и контроль передаваемых типов для данных.

YouTube video player

Как развивался PHP с момента возникновения: основные вехи. Видео от Питера Кокота

PHP продолжает развиваться. Сейчас тестируют восьмую версию, которую планирую выпустить в 2021-2022 годах.

Словарик

Модуль — законченный фрагмент программы, оформленный в виде отдельного файла с исходным кодом.

Оператор — элемент языка, задающий полное описание действия, которое необходимо выполнить. По сути, это последовательность «инструкций», которая помогает программе совершать команду или набор команд.

Объектно-ориентированное программирование (ООП) — методология программирования, она основана на представлении программы в виде совокупности объектов, каждый из которых — экземпляр определённого класса, а классы в свою очередь образуют иерархию наследования.

Чем хорош PHP

Вот основные преимущества PHP, благодаря которым он имеет армию поклонников по всему миру и по-прежнему живёт и процветает.

Простой синтаксис. По своей структуре PHP подобен С. Некоторые элементы перекочевали из Perl. А чтобы написать простейший скрипт, не понадобятся переменные и модули — достаточно операторов PHP.

Пример кода от онлайн-школы Skillbox

Пример кода от онлайн-школы Skillbox, выводящего надпись «Hello, World» на PHP, вставленного в HTML  

Богатая экосистема. PHP поддерживает много библиотек, фреймворков и баз данных.

YII, Laravel, Symfony, CodeIgniter, Phalcon, Slim, ZendFramework, CakePHP, Aura, Fat-free — далеко не полный список фреймворков, с которыми работает PHP

PHP поддерживает все известные базы данных — MySQL, PostgreSQL, SQLite, MS SQL, Oracle, dBase и др.

Список библиотек, которые поддерживают PHP

Список библиотек, которые поддерживают PHP

Лёгкость освоения. Не нужно устанавливать специальные компиляторы — хватит простейшего хостинга, даже бесплатного, и блокнота. Даже новички смогут освоить язык за одну-две недели.

Подробная документация и много форумов, где можно найти решение определённых задач.

Если вы начинающий разработчик, вам подойдёт курс «PHP-разработчик. Базовый уровень» от SkillBox, на котором вы изучите основы, синтаксис PHP и сможете сразу использовать полученные знания на практике

За что ругают PHP

Но не лишён PHP и существенных недостатков, за которые его принято критиковать.

Много багов. У гибкости и простоты языка есть и обратная сторона: написать чистый и качественный код сложно, допустить ошибку легко, а найти её почти нереально — это можно сделать только после запуска программы. Из-за этого у PHP очень много багов — намного больше, чем у остальных. Отсюда же и многочисленные уязвимости, через которые можно залезть в базы данных пользователей или что-то поломать на сайте.

Смешанный код. Исходный код — это смесь из двух языков, самого PHP и HTML, в который он встраивается. Это не проблема для маленьких отдельных фрагментов, но если речь идёт о большом многостраничном сайте, то разобраться, где вы сейчас находитесь, или отыскать необходимый кусок кода, довольно затруднительно.

Любые переменные в любом месте. В PHP можно просто поставить знак «$» в любой части кода. Конечно, это упрощает жизнь — берёте переменную и делаете с ней что хотите. Но потом проблемы неизбежны. Присвоили переменной не тот тип — и всё пошло не так. При этом всё работает, но неправильно. Можно голову сломать, думая, что не так, но так и не выяснить, в чём же дело. Другие языки, Java или C#, таких вольностей попросту не допускают и дают за них по рукам, требуя переменную объявлять заранее и сразу указывать тип.

Не работает в одиночку. От самого по себе PHP толку мало — чтобы пользоваться языком, нужно знать как минимум HTML, а лучше ещё и CSS. JavaScript тоже не помешает.

Отсутствие единообразия. Нет чёткой системы в названиях функций стандартной библиотеки.

В некоторых есть сокращения, в некоторых нет (call_user_func vs. create_function)

В некоторых есть подчёркивание, в некоторых нет (isset vs. is_null)

Обозначение str иногда бывает в названиях функций для работы со строками, иногда нет

Низкая скорость. PHP — не самый производительный язык. Его конкурент Javascript — быстрее.

Для чего нужен PHP

Веб-разработка — это единственное назначение PHP. На нём нельзя написать приложения, язык не используют в мобильной разработке — только веб. Но эта область огромна.

Вот что можно сделать на PHP:

  • Отдельные модули. PHP-код можно встраивать в HTML-страницы, а можно сохранить отдельным файлом. В этом случае мы получаем мини-модули, каждый из которых отвечает за что-то одно.

Этими модулями могут быть шапка сайта, подвал, меню или блок с отзывами о товаре.

страницы портала Yahoo

Многие страницы портала Yahoo! созданы на PHP

  • CMS и движки сайтов. Модульные возможности PHP способствовали тому, что большинство современных систем управления контентом на сайтах написаны на PHP.

WordPress, Drupal, Joomla, MediaWiki, OpenCart, phpMyAdmin написаны на PHP

  • Форму для сбора данных и системы авторизации. Достаточно сообщить языку, что взять, из какого поля и по какому адресу отправить, а всё остальное интерпретатор сделает самостоятельно.
  • Динамические страницы. PHP-скрипт, который в зависимости от URL показывает разный контент.
  • Сессии и куки. Они нужны, чтобы хранить данные о пользователях при переходе между страницами. И это тоже механизм PHP, который можно реализовать через функции session_start().

 

Освойте PHP c нуля и станьте экспертом в нём на курсе «PHP-разработчик с нуля до PRO» от Skillbox. Вы научитесь создавать сайты и программы и работать с базами данных

Будущее PHP: что говорят эксперты

Вот что говорят о PHP программисты со стажем.

Илья Харченко, главный редактор The MASCC

«Есть умирающие языки, типа COBOL и FORTRAN. Есть традиционные языки, на которых работает, например, Microsoft — C# и JavaScript. Есть современные языки, пик возможностей которых ещё только ожидается Kotlin, Crystal, Rust и Swift.

PHP сложно отнести к какому-то конкретному виду. Он точно не умирает, его нельзя назвать молодым, а из-за постоянного совершенствования его возможности и функционал только растут, из-за чего он будет популярен на протяжении ближайших лет десяти. Сложно предсказать, что будет с ним ещё через десять лет. Даже если он вдруг по каким-то причинам потеряет популярность, то к тому моменту на нём будут написаны миллиарды строк кода, требующих обслуживания»

Максим Жук, инженер-программист практики фронтенд компании «Рексофт»

«PHP остаётся одним из самых востребованных языков разработки серверной части веб-приложений. Хотя последние годы его начали теснить Node Js и Python, а со стороны решений для больших компаний пальма первенства у Java и .Net, но даже суммарно они занимают меньший рынок, чем PHP»

Эдуард Козлов, сооснователь BrainForce

«PHP продолжает находиться в топе языков, то немного опускаясь вниз, то опять поднимаясь вверх. Это классический язык, но он постоянно развивается: выходят новые версии языка, новые фреймворки и библиотеки. Если учесть распространение проектов на PHP в интернете, он будет развиваться и использоваться ещё много лет.

Рынок труда в 2020 году глобально изменился. Если раньше главным критерием наличия рабочего места был офис, то теперь из-за мировой пандемии даже компании с мировым именем стали использовать удалённую работу. Это открывает огромный потенциал для начинающих PHP-разработчиков. Если посмотреть вакансии на hh.ru, то они по-прежнему остаются в тренде!»

Подробнее о профессии PHP-программиста — читайте в этой статье

Стоит ли изучать PHP в 2021 году

Определённо стоит. PHP — популярный, простой в освоении язык для бэкенда, открывающий при этом большие возможности.

Будут ли веб-разработчики массово переходить на другие технологии — вопрос открытый. Сейчас, если вы приобретаете виртуальный хостинг, вам сразу включают интерпретатор PHP, потому что все его используют. А другие технологии типа Python или Node.js — нет, их нужно устанавливать отдельно.

Но ведь и веб — это не навсегда. Ещё лет 20, и понятие веб-сайта может устареть, потому что люди будут сидеть в приложениях и соцсетях.

Но ближайшие лет 5–10 спрос на язык точно будет. Он эволюционирует, скоро выйдет восьмая версия, да и отказаться от него не так-то просто — на PHP написано 80% интернета.

Так что можно спокойно изучать PHP и быть уверенным, что полученные навыки пригодятся. Особенно если вы хотите работать с «Вордпрессом», «Друпалом», «Джумлой» и другими известными системами управления сайтами. Они написаны на PHP, и все надстройки и дополнения — тоже.

Коротко о главном

Чтобы всё уложить в голове, держите шпаргалку:

  1. Что такое PHP — серверный сценарный язык с открытым исходным кодом.
  2. Зачем создали PHP — чтобы делать простые персональные страницы, а затем и полноценные сайты.
  3. Версии PHP — первая и вторая обладали базовой функциональностью PHP. Третья определила облик языка, в ней же появилась возможность расширения ядра, которая принесла PHP успех. Пятая прославилась за счёт обновлённого ядра и объектно-ориентированной модели, шестая не вышла, а седьмая — самая быстрая из предшествующих.
  4. Преимущества PHP — интерпретируемость, простой синтаксис, обширная экосистема, низкий порог входа.
  5. Недостатки PHP — грязный код, низкая скорость, проблемы с безопасностью, нестабильность системы.
  6. Что пишут на PHP — динамические страницы, сессии и куки, CMS и движки сайтов, формы авторизации и обратной связи, мини-модули, капчу, файловые менеджеры и текстовые редакторы.

YouTube video player

Основатель образовательной платформы «Хекслет» (практические курсы по веб-разработке), программист Кирилл Мокевнин рекомендует изучать PHP в том случае, если вы хотите быстро войти в IT или устроиться в диджитал-студию

Если вас привлекает веб-разработка, PHP — ваш вариант: работая с PHP, вы освоите ещё HTML и CSS и попробуете себя в объектно-ориентированном программировании. А если не хотите ограничиваться веб-разработкой, присмотритесь к JavaScript или Python.

Телеграм-канал Вани Буявца, только внизу
0 Коментариев
13

Почитаем еще?

Оставьте комментарий

Мы иногда используем cookie-файлы, чтобы получше узнать вас и персонализировать контент :) Замечательно!