что такое php что делает этот язык
Для чего используют PHP и почему его ненавидят
Для чего нужен PHP: какие возможности он дает разработчикам, что можно реализовать с его помощью и в чем главная боль PHP-разработчиков
PHP — один из самых распространенных языков web-разработки. Он применяется для создания сайтов и web-приложений любой сложности. от лендингов и блогов до интернет-магазинов и браузерных игр.
Его преимущества — в широких возможностях и защищенности благодаря закрытому исходному коду. К минусам можно отнести то, что без сервера с интерпретатором код работать не будет (исправлено в новых версиях языка).
Какие задачи можно решить на PHP
В PHP поддерживаются применение функций, математические вычисления, работа с переменными (как в примере выше) и массивами, прописывание условий «если — то», создание объектов и многое другое. Чаще всего это используется:
Теперь обо всем этом по порядку.
Формы
Если вы знакомы с html, то знаете, что с его помощью нельзя просто так получить информацию, введенную пользователем. То есть вы можете создать красивую форму, но без PHP или другого подобного языка все данные просто исчезнут, когда он нажмет кнопку «Отправить».
Для начала создается форма подобного вида:
На PHP вполне можно создать файловый менеджер или текстовый редактор.
Изображения
Используется, например, для реализации капчи, когда нужно, чтобы каждый раз выводилось уникальное число. Для этого создается файл captcha.php, а потом он указывается как ссылка на изображение.
В самом этом файле генерируется случайное число, а потом выводится на изображение. Или можно обрезать картинку, загруженную пользователем. Например, если необходимо подогнать все аватарки под один размер.
Если вы собираетесь использовать этот код, добавьте масштабирование и поработайте над соотношением сторон.
Парсинг
Парсинг — это сбор информации с других сайтов. Например, вы часто могли видеть поиск по сайту, который реализован с помощью Google или «Яндекса».
Так это реализуется с помощью библиотеки PHP Simple HTML DOM Parser. Но, как вы могли заметить, мы получили все ссылки на странице — то есть не только ведущие на найденные сайты, но и ведущие на другие проекты «Яндекса».
Почему программисты ненавидят PHP
Если вы были хоть на одном форуме для программистов, то могли увидеть множество негативных высказываний.
Одна из причин ненависти к PHP — переменные. Если в других языках их нужно объявить заранее, да еще и указав тип, то в PHP можно просто поставить знак «$» в любой части кода.
С одной стороны, это упрощает жизнь. С другой — в переменную можно поместить что угодно и когда угодно. У них нет какого-то типа, а это значит, что число запросто может стать строкой. Если вы этого не хотели, то вместо вычислений вы получите ошибку. Это и дар, и проклятие одновременно.
Следующая причина — смешанный код. PHP приходится использовать в файлах с версткой HTML. Это затрудняет работу с кодом, потому что не всегда можно легко найти нужный фрагмент или понять, где ты находишься сейчас.
Другие языки, вроде JavaScript, можно выносить в отдельный файл и оттуда взаимодействовать со страницей. В PHP же это будет выглядеть так:
То есть исходный код является смесью двух языков. Хотя этого можно избежать, если не писать код в этом же файле, а подключать другие, как это было в примере с подключением шапки и футера.
Еще PHP достаточно прост в изучении, поэтому на нем создано около 83% сайтов по всему интернету. Его простота стала причиной появления миллионов сайтов с кривым кодом. Поэтому можно сказать, что ненависть вызвана неопытными разработчиками.
Новички любят всё усложнять и пишут так:
Хотя можно написать так:
И хотя таких примеров много и в других языках, именно простота PHP послужила благоприятной средой для появления всего этого добра. Если на C# придется постараться, чтобы заставить кривой код работать, то PHP постарается за вас.
Также можно сказать, что определенная доля предвзятости будет всегда. В новых версиях языка исправлено очень много ошибок, но программисты все равно продолжают смеяться над ними, потому что сложилась такая традиция.
У PHP на самом деле много недостатков:
Многие ошибки исправляются, и с каждой версией их становится меньше, хотя PHP считают «мертвым» языком уже больше 20 лет.
Заключение
PHP — отличный язык, с помощью которого можно реализовать любой функционал. Хоть его и не любят многие разработчики, со своей задачей он справляется отлично. И неразумно игнорировать его просто потому, что так делают многие, — нужно просто подстроиться под несколько недостатков, чтобы воспользоваться огромным количеством преимуществ.
Пишет о программировании, в свободное время создает игры. Мечтает открыть свою студию и выпускать ламповые RPG.
Зачем изучать PHP: рейтинг, перспективы, сферы применения
В этой статье поговорим о PHP. Узнаем о перспективах и популярности этого языка в 2021 году, рассмотрим сферу применения, уровень зарплат и другие вопросы. Комментарии известных специалистов помогут развеять сомнения о целесообразности изучения PHP.
Краткая теория: что такое PHP и где он применяется
PHP (от англ. Hypertext Preprocessor) — язык программирования, который изначально создавался для разработки веб-приложений, но эволюционировал в язык общего назначения.
Справка: иногда русскоязычные специалисты произносят название так: «пхп». Конечно, это не совсем верно. Но такое произношение и написание закрепилось в профессиональном жаргоне. Поэтому не удивляйтесь, если услышите фразу «язык программирования пхп».
PHP входит в число языков с динамической типизацией. Это значит, что тип данных определяется не при объявлении переменной, а при присваивании значения. Подробнее о типизации можно узнать в курсе «Введение в программирование».
PHP — интерпретируемый язык. Написанные на нём программы интерпретируются в момент обращения с помощью специальных программ. Интерпретируемые языки не зависят от платформы, но уступают компилируемым языкам в скорости исполнения. Дополнительную информацию об интерпретируемых и компилируемых языках смотрите в курсе «Введение в программирование», ссылка выше.
Область применения PHP
Как отмечалось выше, PHP относится к языкам общего назначения. Тем не менее этот язык прежде всего применяется для разработки веб-приложений. Это серверный язык, то есть он исполняется на сервере. Написанные на PHP программы получают данные от пользователей сайта, обрабатывают их, взаимодействуют с базами данных, возвращают на сайт обработанную информацию.
Справка: сначала аббревиатура PHP обозначала Personal Home Page. Это отражает основное назначение языка — создание веб-страниц.
На PHP написаны популярные системы управления контентом (CMS), например, WordPress, Joomla!, Drupal. На одном только WordPress’е работает около трети от всех сайтов в интернете. Это подтверждает актуальность и популярность PHP. На этом языке написаны и популярные фреймворки для создания сайтов, например, Laravel, Yii2, Symfony. Наконец, такие масштабные и популярные проекты, как Facebook и «ВКонтакте», тоже созданы на PHP.
Промежуточный итог: PHP — интерпретируемый язык с динамической типизацией. Применяется преимущественно для разработки веб-приложений. На этом языке написаны популярные движки для сайтов и фреймворки.
Популярность и рейтинг PHP
Популярность и востребованность языка прямо влияет на перспективы трудоустройства специалиста. Чтобы оценить популярность PHP, воспользуйтесь специализированными рейтингами, изучите количество вакансий в своём городе или регионе.
По результатам мая 2021 года PHP входит в десятку самых популярных языков программирования в индексе TIOBE. Этот язык занимает девятое место, опережая Swift, Ruby, Objective-C, Go.
Справка: индекс TIOBE рассчитывается по количеству поисковых запросов с названием языка. То есть он отражает интерес пользователей интернета к конкретным языкам программирования.
В ежегодном отчёте GitHub есть рейтинг популярности языков программирования. PHP занимает в нём шестое место. По частоте использования на GitHub этот язык уступает только JavaScript, Java и Python, TypeScript и C#.
Справка: рейтинг GitHub Octoverse учитывает частоту применения языков пользователями GitHub. То есть он отражает востребованность конкретного языка в сообществе разработчиков.
Если вы живете и планируете работать в регионах, а не в Москве или в Санкт-Петербурге, при оценке популярности PHP учитывайте следующий момент. В регионах именно PHP — простой и быстрый способ влиться в разработку. Этот язык массово используют региональные веб-студии, которые делают сайты на заказ. Подробнее об этом смотрите в видео Кирилла Мокевнина.
Что будет с популярностью PHP в краткосрочной и долгосрочной перспективе
Достоверного ответа на этот вопрос не знает никто, поэтому придется довольствоваться предположениями и рассуждениями. В качестве гарантии востребованности этого языка можно рассматривать то, что на нём работает львиная доля сайтов.
Смотрите сами: по данным W3Tech, в начале июня 2021 года 64,9% всех сайтов в мире работают на платформе WordPress. При этом в августе 2020 года этот показатель составлял 63,5%, а в августе 2019 года — 61%, то есть популярность WordPress, который работает на PHP, растёт. Доля Joomla! и Drupal составляет 3,9% и 2,6%, соответственно. Эти CMS тоже написаны на PHP.
Важно: суммарная рыночная доля трёх указанных движков составляет 70%. К ней можно прибавить менее популярные CMS, написанные на PHP, а также сайты на фреймворках, например, Laravel или Yii2.
Системы управления контентом развиваются, работающие на них сайты массово не закроются. Поэтому востребованность PHP в обозримой перспективе будет высокой.
Промежуточный вывод: PHP входит в число самых востребованных языков программирования. Большая часть популярных CMS написана на этом языке. В регионах PHP — один из языков, которые обеспечивают быстрый вход в разработку.
Зарплата PHP-программиста: сколько платят
Уровень заработка PHP-разработчика зависит от региона, квалификации специалиста, режима трудоустройства (удалёнка или офис, штат или фриланс) и других факторов. Поэтому для определения уровня зарплат в вашем регионе придётся изучать информацию самостоятельно.
Например, по данным компании NewHR, в середине 2020 года средняя зарплата PHP-программиста уровня middle в Москве составила 150–190 тыс. рублей. Senior’ы зарабатывают в среднем 180–240 тыс. рублей. Зарплата ведущего программиста составляет от 240 тыс. рублей.
Самостоятельно изучить рынок труда в своём регионе можно с помощью специализированных карьерных сайтов. Например, по запросу «PHP-программист» на hh.ru в июне 2021 года есть около 2870 вакансий с зарплатной вилкой от 40 тыс. рублей до 305 тыс. рублей.
Промежуточный итог: уровень заработка PHP-разработчика зависит от ряда факторов, включая регион, квалификацию специалиста и форму занятости. Достоверную информацию по своему региону можно получить на сайтах по трудоустройству, а также во время реальных собеседований.
Сложно ли изучать PHP
Объективного ответа на этот вопрос нет, так как сложность относится к субъективным понятиям. Тем не менее PHP имеет репутацию языка с низким порогом вхождения. В данном случае речь идёт как об особенностях самого языка, так и о доступности информации: в интернете очень много литературы, платных и бесплатных курсов и упражнений по PHP. Подробнее об этом смотрите ниже в комментариях экспертов.
Важно отметить следующий момент. Новичкам стоит начинать обучение не с изучения языка, а с изучения программирования. Подробнее о важности этого тезиса рассказывается в нашем бесплатном курсе «Введение в программирование».
Тезис по итогам раздела: PHP имеет репутацию языка с низким порогом вхождения. Но новичкам надо сразу фокусироваться на изучении программирования, а не синтаксиса языков.
Начните изучать PHP на Хекслете бесплатно Первые курсы в профессии «PHP-программист» можно пройти бесплатно. Зарегистрируйтесь и начните учиться.
Перспективы PHP: мнения экспертов
Мы попросили известных в PHP-сообществе специалистов поделиться своими взглядами на перспективы языка и актуальность его изучения. Эксперты отвечали на следующие вопросы:
С ответами можно ознакомиться ниже.
Евгений Пуха: перспективы у PHP интересные
PHP – довольно хороший вариант для изучения как для новичков в сфере IT, так и для тех, кто работает с другими языками. Синтаксис языка входит в группу C-подобных, а это даёт возможность быстрее понять логику в коде приложений на Java, C#, C++ и так далее. Те же Python и Golang выглядят непривычно, но для тех, кто хочет изучить больше языков — это не преграда.
Если говорить о плюсах PHP, на котором мы делаем большинство проектов, стоит отнести:
С точки зрения новичка этот язык хорош ещё и тем, что использует динамическую типизацию и модель «отработал и умер». Это делает менее острой проблему утечек памяти и позволяет писать меньше строк кода, делая универсальные методы и функции, хоть в некоторых случаях и в ущерб архитектуре.
Перспективы у PHP также довольно интересные. С версии 5.3 язык начал очень активно развиваться и приобретать выразительные свойства (пространства имён, примеси, генераторы, опциональный тайп-хинтинг и другое), возможность работы в асинхронном режиме, а в будущих версиях ожидается JIT, FFI, поддержка предзагрузки, полноценная асинхронность.
Перспективы в трудоустройстве также довольно обширны. Достаточно много как старых проектов, так и только разрабатываемых, используют PHP. При этом сложность приложений также варьируется: начиная от небольших посадочных страниц и заканчивая сложными веб-приложениями, обрабатывающими большие объёмы данных внутри кластеров серверов.
Евгений Пуха, руководитель отдела PHP-разработки AGIMA.
Дмитрий Елисеев: PHP делает всего одну работу, но делает её идеально
Если рассматривать все языки с их разделением по областям применения, то есть языки общего назначения, на которых пишут софт разного типа, и есть специализированные, на которых чаще пишут что-то одно.
PHP в этом плане сильно специализированный, так как используется только для разработки сайтов. В такой специализации есть как плюс, так и минус.
Минус в том, что PHP приспособлен только к стандартному для него синхронному однопоточному выполнению в рамках веб-сервера, а остальное пока не очень умеет. Так что как только требуется сделать что-то для него нестандартное, то возникает необходимость эмулировать эти вещи или делать остальные части на других языках вроде серверного JavaScript для асинхронности или Go для многопоточности.
А плюс в том, что хоть он и делает всего одну работу, но делает её идеально. Разработчики самого языка не отвлекаются на посторонние задачи и совершенствуют его только в основном направлении, оптимизируя скорость и привнося только важные для него новшества из других языков. Поэтому в нише скриптовых интерпретируемых веб-языков PHP практически является самым быстрым. Быстрее него уже только языки компилируемые, но будущий PHP 8.0 с JIT-компиляцией, как нам обещает его разработчик Дмитрий Стогов в докладе, вскоре обгонит и их.
К тому же это язык с синтаксисом из семейства более продвинутых Java и C#, что позволяет PHP-программистам учиться у них и при необходимости легко перейти на любой язык этой группы. С Ruby или Python со своим обособленным синтаксисом это будет сделать проблематично.
В PHP переходят хорошие практики из других языков. Создаются и развиваются профессиональные фреймворки. Так что из языка для любительских сайтов он уверенно переходит в нишу быстрых профессиональных веб-проектов, авторам которых не хочется поднимать тяжелые серверы на Java. Учить PHP сейчас или нет? Каждый раз накатывает новая волна технологий и каждый раз снова и снова «хоронят» PHP фразами, что вот-вот очередные Ruby или NodeJS победят PHP. Но десятки лет проходят, а всё никто его не побеждает.
Помимо продвинутого программирования веб-приложений на фреймворках, PHP отличается наличием большого числа CMS для разработки стандартных сайтов. И они никуда исчезать не собираются. Для экзотических задач удобны экзотические языки. А для классических проектов успешно хватает классического PHP. Так что всегда можно сказать, что другие языки приходят и уходят, а PHP, С++ и Java скорее всего вечны. И работы на них всегда будет много.
Дмитрий Елисеев, предприниматель, автор проектов elisdn.ru и deworker.pro.
Александр Сербул: в веб-разработке у PHP нет достойной альтернативы
Я занимаюсь разработкой с нулевых годов. В работе использую преимущественно PHP, также пользуюсь JavaScript, Java, Python и другими языками. Могу сказать, что PHP очень специфичный язык. Он создан специально для веб-разработки, для решения конкретных задач в вебе. PHP решает связанные с веб-разработкой задачи максимально быстро, здесь не нужны тяжеловесные инструменты, как в других языках.
Когда-то PHP был очень простым и достаточно медленным языком. Затем он стал развиваться в сторону Java в плане синтаксиса и поддержки объектно-ориентированного программирования (ООП). Появилось движение в сторону сильной типизации. Разработчики стали понимать, что для больших серьёзных проектов слабая типизация — недостаток.
В плане перспектив языка нужно понимать ситуацию. PHP заточен под веб, а в вебе он конкурирует, например, с JavaScript и Python. Из-за этого есть тенденция снижения зарплат PHP-программистов. Но это временное явление.
Во фронтенд-разработке не хватает квалифицированных специалистов. Из-за этого общий уровень разработчиков на JavaScript недостаточно высокий. Да и сам язык JavaScript кошмарный с моей точки зрения. Это тоже давит на PHP-сообщество, в том числе на уровень зарплат.
Но тенденция, как я говорил, временная. PHP не умрёт, так как у него нет альтернатив в веб-разработке. Тот же Python не заточен под веб так, как заточен PHP.
Если говорить о перспективах, язык будет развиваться. В PHP появится сильная типизация, будет развиваться ООП. Так что у языка хорошие перспективы.
Александр Сербул, руководитель направления контроля качества интеграции и внедрений в 1С-Битрикс.
Стоит ли учить PHP: заключение
PHP в обозримой перспективе останется востребованным языком. Его используют в веб-разработке, на PHP написаны популярные движки для сайтов и фреймворки. Это целая инфраструктура, которая требует постоянного участия программистов. Поэтому специалисты по PHP останутся востребованными на рынке труда.
По словам экспертов, язык развивается в сторону ООП, в нем ожидается появление сильной типизации. Это упростит работу над серьёзными масштабными проектами. Поэтому разработчиков на PHP ждут интересные задачи. На Хекслете изучать PHP можно в рамках профессии. Азы можно изучать на нашем бесплатном ресурсе Code Basics.
Зачем нужен PHP
О PHP ходит много мифов — прочитайте о них у нас в блоге.
На PHP делают сайты и веб-приложения — блоги, интернет-магазины или социальные сети. Сегодня на PHP работает почти 38 миллионов сайтов — и среди них всемирно известные Facebook, Wikipedia и «ВКонтакте». Рассказываем, для чего ещё нужен PHP, и почему без него не обходится большинство современных сайтов.
PHP придумали в 1995 году, и тогда он ещё не был полноценным языком программирования. Это был набор скриптов для личной страницы одного программиста из Дании, но в итоге проект разросся так, что получил собственный синтаксис, поддержку дополнительных модулей, признание в среде разработчиков и превратился в один из самых популярных языков программирования в мире. Кстати, название PHP расшифровывается как Personal Home Page — и отсылает к тому, чем язык был изначально.
Не будем углубляться в историю и рассмотрим, для чего используется PHP.
Формирование страниц «на лету»
Предположим, у нас есть библиотека с тысячей книг, и мы хотим сделать для неё сайт. По задумке, на каждой странице нужна информация о книге: имя автора, описание и фотография обложки. Если бы книг было десять, то ничего страшного — можно вручную сделать страницу для каждой. Но для библиотеки из тысячи книг нужно создать тысячу разных статичных страниц.
«Всегда выбирай шаблон.»
Возможно, у нас есть достаточно времени, чтобы создать тысячу файлов с уникальным содержимым. Но если после создания последней страницы мы решим добавить везде каталожный номер книги или режим работы библиотеки, то придётся повторно отредактировать все файлы. Получается, любое изменение структуры или информации на страницах потребует изменений во всех созданных файлах.
PHP помогает решить эту задачу — мы можем создать одну страницу и показывать на ней информацию о той книге, которая нам нужна прямо сейчас. Такой способ называется динамическим формированием страниц на бэкенде.
Бэкенд (back-end) — это часть сайта, которая находится на сервере, получает запрос от браузера, выполняет запрошенные действия и отправляет информацию обратно. Такой подход применяется повсеместно в клиент-серверном программном обеспечении, и PHP тоже может решать такие задачи. Язык прекрасно справляется с ролью бэкенда для мобильных, десктопных или веб-приложений.
Как формируются страницы
PHP как раз нужен для динамического формирования страниц на основе информации из базы данных.
Представим, что информация о нашей тысяче книг хранится в базе данных. Тогда мы можем легко сформировать страницу конкретной книги (допустим, мы ищем «Тёмную башню» Стивена Кинга).
Для пользователя страница будет выглядеть как обычно, но с точки зрения PHP — это динамически сформированная страница на основе шаблона. Если нам потребуется что-нибудь поменять: добавить блок информации, изменить вёрстку или отобразить ещё что-то из информации о книге, нужно будет изменить не тысячу файлов, а один, с шаблоном страницы. И когда мы будем заходить на сайт, все изменения сразу будут видны на всех страницах.
Управление контентом на странице
Всю информацию в базе данных мы можем менять без изменения сайта — поэтому, например, созданием сайта может заниматься один человек, а наполнением — другой, даже без навыков программирования.
Поэтому PHP хорошо подходит для создания систем управления контентом (CMS), интернет-магазинов и всевозможных интернет-сервисов. В основе практически любого сервиса лежит принцип формирования динамических страниц: например, каталога товаров или статьи в блоге. Страница, которую вы сейчас читаете, тоже динамически сформирована с использованием PHP.
Чтобы быстро создать новый сайт на PHP, не нужно программировать его с нуля. Можно использовать одну из систем, которая основана на PHP, и позволяет легко редактировать содержимое без программирования. Например, проект WordPress помогает при создании блогов, персональных сайтов и даже небольших интернет-магазинов. Для всего перечисленного там уже есть готовые шаблоны, которые нужно только заполнить контентом. При этом WordPress — лишь один из немногих успешных инструментов.
Разработка сервисов
Если мы говорим о разработке, а не о наполнении контентом, стоит вспомнить и другие возможности PHP.
У PHP есть модули для лёгкой работы с базами данных, электронной почтой, службами каталогов и многими другими технологиями. Благодаря этому возможно создавать сервисы без привязки к вебу — например, для работы с данными внутри организации. Сервис, позволяющий получить информацию о сотрудниках из корпоративной базы данных — пустяковая задача для PHP.
Другая сильная сторона PHP — автоматизация действий. PHP работает на стороне сервера, и на нём можно разрабатывать различные сценарии для автоматизации: делать резервные копии информации, собирать и доставлять проекты на рабочий сервер, создавать и редактировать пользователей и т.д. Эти сценарии работают прямо из командной строки, без необходимости создавать графический интерфейс.
Почему именно PHP
Компания TIOBE регулярно формирует статистику популярности языков программирования. Больше двадцати лет PHP удерживается в десятке популярных языков программирования.
Популярность языков программирования по версии TIOBE в октябре 2019 года
PHP даёт большую свободу разработчикам — он одинаково хорошо работает на всех популярных системах, включая Windows, Linux и OS X. Разработчики могут выбрать удобный им веб-сервер и базу данных для работы с PHP. Такой широкий выбор возможен благодаря многолетней поддержке сообщества и наличию модулей для работы почти с любым набором программ.
Новые версии PHP выходят регулярно — в них улучшается производительность и добавляются новые возможности. Язык не сдаёт позиции и со временем становится только лучше. Сегодня, как и несколько лет назад, PHP может стать прекрасным выбором для нового веб-проекта или первым языком при обучении программированию.
Если вы хотите научиться создавать собственные сайты на PHP, пройдите интерактивный курс «Основы PHP» и прочитайте учебник — это станет хорошей базой для того, чтобы выучить язык и стать профессионалом.
Доказательство — в интерактивном курсе «Знакомство с PHP». Зарегиструйтесь и начните программировать уже сегодня — это бесплатно.
Нажатие на кнопку — согласие на обработку персональных данных