Что такое PHP
PHP - это популярный язык программирования, предназначенный для создания веб-приложений.
На PHP написано около 77% всех сайтов в интернете. Такие гиганты, как ВКонтакте, Facebook, Baidu, Википедия и Tumblr были созданы на PHP.
Помимо сайтов, на PHP можно создавать телеграм-ботов, парсеры, различные API и серверную часть мобильных и десктопных приложений.
Зачем нужен PHP
Каждый сайт состоит из фронтенда и бэкенда.
Фронтенд - это внешняя часть сайта, которую мы видим при заходе на сайт через браузер. Обычно здесь используются следующие языки:
- HTML определяет, какие элементы есть в интерфейсе: кнопки, формы, таблицы.
- CSS отвечает за внешний вид: цвет кнопки, толщину рамки, отступы между элементами.
- JavaScript добавляет сайту интерактивность, динамически меняя HTML и CSS. Сюда относятся всплывающие окна, слайдеры, подсветка ошибок при заполнении формы.
Бэкенд - это скрытая от пользователя серверная часть сайта. Здесь решаются совсем другие задачи: отправить E-mail сообщение, создать пользователя, сгенерировать экселевский файл.
Разберём этот момент подробней на примерах.
Пример 1: обработка форм
Наверняка вы встречали подобные формы в сети: вход в личный кабинет, оформление заказа, добавление комментария к видеоролику.
Так вот, с помощью HTML, CSS и JavaScript можно сделать форму красивой и интерактивной, но нельзя обработать данные, которые содержатся в этой форме. Нельзя сохранить информацию о клиенте в единой базе данных, авторизовать пользователя, отправить письмо на E-mail и т.д.
Для решения подобных задач необходим специальный язык программирования, который может работать на сервере. Одним из таких языков и является PHP.
Пример 2: генерация HTML
Хоть PHP и является серверным языком, он может на лету сгенерировать HTML код страницы и отдать его браузеру.
Представим, что у нас есть интернет-магазин, в котором нужно разместить 300 000 товаров.
И что же, будем создавать для каждого товара отдельную HTML страницу? Конечно нет.
Обычно все товары сохраняются в базу данных. А на PHP пишется всего 1 шаблон, в который динамически подставляется информация о каждом товаре.
Как выглядит программа на PHP
Программы на PHP представляют собой текстовый файл с расширением .php. Этот файл может содержать как команды на языке PHP, так и обычный HTML код. Например:
<?php
$name = 'Вася';
?>
<h1>
Привет, <?= $name ?>
</h1>
Этот код выводит на экран фразу Привет, Вася внутри тега <h1>.
Файлы с расширением .php называются скриптами. Принцип работы у них такой: скрипт запускается, выполняет необходимые действия и завершает работу. И так при каждом запуске.
Этим скрипты отличаются от, к примеру, приложений вроде Word и Photoshop, которые могут работать беспрерывно и ждать от вас всё новые команды. Скрипты не предназначены для беспрерывной работы. Запустился - выполнил команды - завершил работу.
Как начать работать с PHP
Для разработки сайтов необходимы 3 программы:
- Веб-сервер - программа для управления сайтами. Веб-сервер принимает http-запросы от браузера и передаёт их PHP. Обычно выбирают Nginx или Apache.
- PHP интерпретатор - программа для запуска PHP скриптов.
- Система управления базами данных - чаще всего MySQL или PostgreSQL.
Настройка этой троицы может занять приличное время, поэтому лучшим вариантом будет начать с готовой сборки - OpenServer.
В OpenServer уже входят вышеперечисленные программы; при этом он очень прост в настройке: в пару кликов можно создать сайт или изменить версию PHP. В нём есть всё необходимое для старта.
Настраивать OpenServer будем в следующем уроке.
Какой редактор кода выбрать
Существуют обычные редакторы и IDE - продвинутые редакторы с кучей всяких наворотов. Например, IDE может подсвечивать ошибки в коде или рекомендовать аналоги для неоптимально написанных участков кода.
Среди IDE безусловный лидер - PHPStorm. Он платный, и оплата в России недоступна из-за санкций. Но есть 30 дневный пробный период, который легко продлевается по инструкциям в сети.
Из бесплатных IDE есть VSCode и NetBeans, из обычных редакторов - Notepad++, SublimeText, Brackets.
Если не знаете, что выбрать - ставьте PHPStorm.