8 фактов и мифов о PHP
- 19 сентября 2019
PHP — это популярный язык программирования с довольно богатой историей. Начинающие программисты при выборе языка ориентируются на существующие стереотипы или просто расхожие мнения, которых с избытком бывает вокруг любых языков программирования или технологий. Но случай с PHP особенный, потому что долгая история этого языка породила и большое количество мифов. Некоторые из них были актуальны в древних версиях PHP, но в 2019 году пора раз и навсегда разобраться, что из этого правда, а где небылицы.
В этой статье мы разберём четыре факта и четыре мифа про PHP. Надеемся, это поможет вам сложить верное мнение об этом языке программирования и начать писать код.
Факты о PHP
1. У PHP низкий порог входа
Порогом входа называют кривую обучения. Низкий порог входа означает, что при изучении нового языка программирования можно быстро и без больших усилий добиться значительных результатов.
Справедливо считается, что в PHP низкий порог входа. Начать создавать простые приложения на PHP просто, но, чтобы выйти на профессиональный уровень, придётся приложить значительные усилия. И вот тут уже отличий от других языков не будет. В этом PHP похож на аркадные игры: начать играть и получать удовольствие легко, но, чтобы побить все рекорды, придётся набить сотни часов практики.
Так и с программированием — качество вашего кода будет зависеть от времени, которое вы потратите на изучение языка и практику.
2. PHP вообще везде
Здесь речь не о сфере применения языка, а о том, насколько легко запустить и протестировать ваш код в различных окружениях.
PHP — серверный язык. Для локальной разработки нужно подготовить окружение: установить интерпретатор, веб-сервер, базу данных и настроить это всё на совместную работу. Но когда работа над проектом будет закончена, настанет очередь публикации сайта в интернете. Здесь потребуются услуги виртуального хостинга. В отличие от других языков программирования, PHP и всё необходимое окружение уже присутствует у любой компании, которая предоставляет услуги хостинга. В большинстве случаев, чтобы ваш код заработал на хостинге, нужно просто его туда залить.
С локальной разработкой тоже всё просто — есть много хороших бесплатных решений, например OpenServer, в котором даже ничего настраивать не придётся, и PHP работает «из коробки».
3. У PHP развитая экосистема
Сравнивая различные языки программирования, следует брать в расчёт не только их синтаксис или предлагаемые фичи, но и экосистему.
Этим словом называют библиотеки, инструменты, технологии и фреймворки, которые используют какой-нибудь язык программирования или упрощают жизнь разработчику. С точки зрения богатства экосистемы PHP уступает, пожалуй, лишь JavaScript, который развивается ещё быстрее.
Выбор огромен: начиная от библиотек на все случаи жизни, и заканчивая зрелыми и продвинутыми фреймворками, на которых пишут код в больших компаниях.
Разработчик на PHP работает в супер-продвинутой IDE с максимальной поддержкой языка, отлаживает и автоматизирует тестирование кода, устанавливает библиотеки через пакетный менеджер. Все эти решения имеют подробную документация и проверены временем.
Получается, что можно просто сфокусироваться на создании приложения и не думать о том, где бы достать инструменты — всё, что понадобится разработчику (в том числе и начинающему) уже придумано и хорошо работает.
Количество пакетов для PHP продолжает расти — на момент написания статьи их уже более двухсот тысяч.
Экосистема PHP развивается в нескольких направлениях. Кроме привычных фреймворков, популярность и поддержку сообщества разработчиков стали набирать фреймворки, ориентированные на асинхронные возможности PHP. Это проекты Swoole, ReactPHP и Amp.
4. PHP развивается
Некоторые ребята каждый год говорят, что PHP уже всё. Такие разговоры длятся лет десять. Тем не менее, PHP чувствует себя прекрасно: регулярно выходят новые версии языка, экосистема растёт, и в количестве вакансий недостатка тоже нет.
Обновляются как API расширений и синтаксис языка, так и внутренности интерпретатора. Последний пункт сильно влияет на общую производительность, которая возрастает от версии к версии. В PHP 7 разработчики частично переписали ядро и это положительно отразилось на его производительности: скорость работы увеличилась в два раза, а потребление памяти, наоборот, снизилось. Если не верите, можете посмотреть на замеры производительности PHP в сравнении с другими языками.
Мифы о PHP
Перейдём к мифам. Их, как и вокруг любой популярной технологии, скопилось немало, но мы остановимся на четырёх самых интересных.
1. PHP — решето
«Программы на PHP небезопасны» — распространённый повод для критики PHP.
Важно понимать, что безопасность приложения зависит от разработчика и его профессионального уровня, а плохой код можно написать на любом языке программирования. Но в примере с веб-приложениями некачественный код может привести не только к потере производительности, но и к проблемам с безопасностью.
Кстати, на курсе «PHP. Профессиональная веб-разработка» мы сразу объясняем студентам только «лучшие практики» разработки на PHP, в том числе подробно затрагиваем и вопросы безопасности.
Конечно, иногда уязвимости находят и на уровне ядра PHP, но с другими языками происходит то же самое. Исследователи и хакеры ищут, а авторы языка быстро реагируют на такие проблемы, оперативно исправляют ошибки и закрывают уязвимости.
2. PHP медленный
Вопрос производительности любой технологии всегда вызывает бурные дискуссии.
Facebook, Wikipedia и «ВКонтакте» строят на PHP приложения разного масштаба, а скорость их работы может легко оценить любой наш читатель. При этом повышение производительности всегда стоит среди приоритетных задач разработчиков. Например, при переходе с версии 5.6 на 7 производительность PHP выросла от 15 до 20%. В последних, минорных версиях языка, работа над повышением скорости исполнения кода продолжается.
3. Технология X скоро вытеснит PHP
Миф о серебряной пуле особенно любят муссировать в IT-сообществе: технология X скоро вытеснит Y, и тому подобное. Инструментов, с помощью которых можно выполнять те же самые задачи, что и на PHP, много: JavaScript, Ruby, Python, C#, да и мало ли что ещё.
У каждой технологии есть свои фанаты и хейтеры, с любой из них можно писать плохой код или делать шедевры. Вопрос в другом.
PHP популярен уже много лет, и на нём работают продукты многих больших компаний. Это хорошее доказательство того, что язык востребован и будет востребован ещё долгое время. Здесь, конечно, меньше ажиотажа, чем в JavaScript-фреймворках, но PHP находится в зрелой стадии своего развития: эволюция вместо революции. Регулярно выходят новые версии, фреймворки развиваются, и вся экосистема в целом растёт.
А серебряной пули вообще не существует. Мы советуем своим читателям более прагматично относиться к выбору языка разработки: не слепо следовать моде, а здраво оценивать все плюсы и минусы.
4. На PHP пишут плохой код
Плохой код можно написать на любом языке программирования, и PHP здесь не исключение. Странно скрывать, что на нём действительно написано много плохого кода.
Начать программировать на PHP очень просто. Начинающий программист может легко решить многие задачи, но код будет с нюансами и вообще так себе. Помните — качество кода в первую очередь зависит от разработчика, его опыта и навыков. Чем он опытней, тем более качественный код напишет.
Вторая причина, почему о коде на PHP говорят гадости: этот язык был пионером среди инструментов для массового создания веб-приложений. Задачи, которые решались с помощью PHP, опережали развитие языка, и это тоже приводило к появлению грязных хаков и не очень хорошего кода.
К счастью всех нас, те времена давно прошли, и появилась культура написания хорошего кода. Теперь у нас есть руководства по стилю, стандарты кодирования, линтеры и другие вещи, которые помогают писать хорошо.
Выводы
PHP — это удобный язык программирования высокого уровня.
Несмотря на возможность применения PHP в различных отраслях разработки, его специализация, всё-таки, это бэкенд. Хороший программист умеет подбирать правильные инструменты исходя из задачи, а ориентированность PHP на веб-разработку делает его отличным выбором для создания сайтов или веб-сервисов.
Но не забывайте: язык программирования — это просто форма выражения, а содержание — это качество кода. И содержание в этом случае зависит не от языка, а от вашего опыта и навыков.
«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.
Читать дальше
Как работает протокол HTTP
HTTP был разработан в 1990-х годах для создания первого интерактивного текстового веб-браузера. За эти годы протокол менялся и совершенствовался, становился более гибким и постепенно превратился в современный интернет. В статье рассмотрим принцип работы протокола и что важно знать о нём разработчику.
- 8 февраля 2023
10 популярных функций в MYSQL, которые вам нужно знать
Без лишних слов принесли вам некоторые популярные функции MySQL, без которых вы точно не обойдётесь в работе.
- 17 января 2023
Подключение файлов в PHP. Метод require()
Способность вызывать сценарий из отдельного файла по его имени называется в PHP подключением файлов. Подключают PHP-сценарии, любые текстовые файлы или HTML-страницы.
- 21 ноября 2022
Массивы в PHP
Массив — это ещё один тип данных, вроде числа или строки. Главное отличие массива от остальных типов данных заключается в его способности хранить в переменной больше одного значения. В предыдущих примерах имя переменной всегда ассоциировалось только с одним значением:
$name = "Иннокентий"
$age = 42
А если мы хотим узнать не только пол, имя и возраст пользователя, но и, допустим, любимые сериалы? Очень непросто назвать один самый любимый сериал, а вот вспомнить несколько — намного легче. Сохранение в переменную-массив нескольких значений выглядит так:
$fav_shows = ["game of thrones", "american horror story", "walking dead"];
В этом примере мы сохранили в переменной $fav_shows
сразу три значения. Но сохранить эти данные — это только половина дела. Как с ними потом работать? Уже знакомый вам способ вывода переменной на экран не будет работать с массивами:
<?php
print("Мои любимые сериалы: " . $fav_shows);
Так увидеть список любимых сериалов не получится. Дело в том, что массив — это не обычная переменная. Массив хранит не простые типы, вроде текста или чисел (их ещё называют «скалярными типами»), а более сложную структуру данных, поэтому здесь нужен особый подход.
Внутри массива у каждого значения есть адрес, по которому к нему можно обратиться. Такой адрес называется индексом. Индекс — это просто порядковый номер значения внутри массива. Индексация начинается с нуля, так что первый элемент получает индекс — 0
, второй — 1
, и так далее.
Чтобы получить определенный элемент массива, необходимо знать его индекс (ключ). Напечатаем названия всех сериалов из массива через запятую:
<?php
print("Мои любимые сериалы: " . $fav_shows[0] . ", " . $fav_shows[1] . ", " . $fav_shows[2]);?>
Теперь можно дать определение массива: Массив — это совокупность множества элементов вида «ключ: значение».
Массивы позволяют перезаписывать существующие значения и добавлять новые. Добавить новое значение в массив можно так:
$fav_shows[] = "the big bang theory";
Новый элемент автоматически получит индекс равный максимальному индексу из существующих + 1. «Теория большого взрыва» сохранится в массиве под индексом 3
.
Если нам перестал нравиться один из сериалов, так как новый сезон оказался очень плох или появился новый фаворит, значения в массиве можно заменить. Чтобы вычеркнуть старое значение и заменить его новым, нужно присвоить новое значение любому из существующих в массиве индексов:
$fav_shows[4] = "fargo";
Для полного удаления (без замены на другое) значения по его индексу существует функция unset
:
unset($fav_shows[4]);
- 10 ноября 2022
Синтаксис PHP
Разберёмся, из чего состоит любой язык программирования.
У каждого языка есть правила и конструкции, следуя которым мы выражаем мысли и делаем их понятными для другого человека. В программировании всё точно так же. Но вместо человеческого языка мы используем язык программирования PHP, а в роли нашего собеседника выступает PHP-интерпретатор. Поэтому, чтобы выразить свою мысль, мы должны сделать её понятной для интерпретатора.
- 27 октября 2022
Массивы $_POST и $_GET в PHP. Обработка форм
Формы — это часть языка HTML. Формы нужны для передачи данных от клиента на сервер. Чаще всего формы используются для регистрации пользователей, заполнения анкет, оформления заказа в интернет магазине, и так далее.
Через формы можно отправлять как простую текстовую информацию, так и файлы.
Большую часть времени программирования на PHP вы будете так или иначе работать с формами и данными из них.
HTML описывает то, из каких элементов состоит форма, и как она выглядит. Но без принимающей стороны, то есть сервера, который принимает эти данные и обрабатывает их нужным образом, создавать формы нет никакого смысла.
PHP содержит множество средств для работы с формами. Это позволяет очень просто решать типичные задачи, которые часто возникают в веб-программировании:
- Регистрация и аутентификация пользователя;
- Отправка комментариев на форумах и социальных сетях;
- Оформление заказов.
Практически любой современный сайт содержит как минимум несколько разных HTML-форм.
- 20 октября 2022
Учебник по PHP
- Знакомство с языком
- Шаблонизация и подключение файлов
- Протокол HTTP и формы
- Идентификация пользователя на сайте
- Базы данных
- Объекты и использование библиотек
- 10 сентября 2022
Защита от SQL-инъекций
Внедрение SQL-кода (SQL инъекция) — один из распространённых способов взлома сайтов, работающих с базами данных. Способ основан на внедрении в запрос произвольного SQL-кода. Внедрение SQL позволяет хакеру выполнить произвольный запрос к базе данных (прочитать содержимое любых таблиц, удалить, изменить или добавить данные).
Атака этого типа возможна, когда недостаточно фильтруются входные данные при использовании в SQL-запросах.
- 10 сентября 2022
Объекты и классы в PHP
Объекты в PHP — это просто ещё один тип данных. Объект позволяет хранить в переменной набор из свойств и их значений, а также встроенные функции. Это делает объекты похожими по своей структуре на ассоциативные массивы. Но отличие от массивов всё-таки есть, и при этом достаточно важное — объекты могут иметь внутреннее состояние.
- 10 сентября 2022
Циклы в PHP. Краткое руководство
Цикл — это конструкция языка, которая выполняет блок кода больше одного раза.
Мы привыкли, что сценарии выполняются линейно: сверху вниз, строчка за строчкой. Но что делать, если надо повторить какую-нибудь инструкцию несколько раз? Например, как вывести на экран натуральные числа от 1 до 9?
Есть очевидный способ:
<?php
print(1);
print(2);
print(3);
// и так далее...
Но он заставляет писать много кода. И что если требуется вывести последовательность из миллиона чисел? Ещё бывают ситуации, когда заранее неизвестно сколько раз нужно выполнить определённую инструкцию.
Использование циклов значительно упрощает и укорачивает код. Циклы незаменимы в ситуациях, когда заранее неизвестно сколько раз должен выполниться блок кода. Такое число зависит от множества условий и вычисляется в момент выполнения сценария.
Так выглядит цикл в PHP:
<?php
while (<условие цикла>) {
<тело цикла>
}
- 10 сентября 2022