О PHP ходит много мифов — прочитайте о них у нас в блоге

О PHP ходит много мифов — прочитайте о них у нас в блоге

На PHP делают сайты и веб-приложения — блоги, интернет-магазины или социальные сети. Сегодня на PHP работает почти 38 миллионов сайтов — и среди них всемирно известные Facebook, Wikipedia и «ВКонтакте». Рассказываем, для чего ещё нужен PHP, и почему без него не обходится большинство современных сайтов.

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

Не будем углубляться в историю и рассмотрим, для чего используется PHP.

Формирование страниц «на лету»

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

«Всегда выбирай шаблон»
«Всегда выбирай шаблон»

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

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

Бэкенд (back-end) — это часть сайта, которая находится на сервере, получает запрос от браузера, выполняет запрошенные действия и отправляет информацию обратно. Такой подход применяется повсеместно в клиент-серверном программном обеспечении, и PHP тоже может решать такие задачи. Язык прекрасно справляется с ролью бэкенда для мобильных, десктопных или веб-приложений.

Как формируются страницы

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

Представим, что информация о нашей тысяче книг хранится в базе данных. Тогда мы можем легко сформировать страницу конкретной книги (допустим, мы ищем «Тёмную башню» Стивена Кинга).

  1. Мы пишем в поиске на сайте «Тёмная башня» и отправляем запрос на сервер. PHP получает запрос, соединяется с базой данных и находит нужную информацию.
  2. Полученную информацию PHP может обработать до нужного формата. Например, добавить теги или преобразовать в другой вид.
  3. PHP вставляет обложку, автора и описание книги в заранее подготовленный шаблон страницы. Шаблон — это почти полностью готовая страница или часть страницы, на которой не хватает только данных из базы. После того, как информация добавлена в шаблон, у нас есть полностью готовый код страниц.
  4. Этот код отправляется в браузер, и пользователь видит страницу с информацией о «Тёмной башне».
«Сервер всегда даст то, что нужно»
«Сервер всегда даст то, что нужно»

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

Управление контентом на странице

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

Поэтому PHP хорошо подходит для создания систем управления контентом (CMS), интернет-магазинов и всевозможных интернет-сервисов. В основе практически любого сервиса лежит принцип формирования динамических страниц: например, каталога товаров или статьи в блоге. Страница, которую вы сейчас читаете, тоже динамически сформирована с использованием PHP.

Чтобы быстро создать новый сайт на PHP, не нужно программировать его с нуля. Можно использовать одну из систем, которая основана на PHP, и позволяет легко редактировать содержимое без программирования. Например, проект Wordpress помогает при создании блогов, персональных сайтов и даже небольших интернет-магазинов. Для всего перечисленного там уже есть готовые шаблоны, которые нужно только заполнить контентом. При этом Wordpress — лишь один из немногих успешных инструментов.

Разработка сервисов

Если мы говорим о разработке, а не о наполнении контентом, стоит вспомнить и другие возможности PHP.

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

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

Почему именно PHP

Компания TIOBE регулярно формирует статистику популярности языков программирования. Больше двадцати лет PHP удерживается в десятке популярных языков программирования.

Популярность языков программирования по версии TIOBE в октябре 2019 года
Популярность языков программирования по версии TIOBE в октябре 2019 года

PHP даёт большую свободу разработчикам — он одинаково хорошо работает на всех популярных системах, включая Windows, Linux и OS X. Разработчики могут выбрать удобный им веб-сервер и базу данных для работы с PHP. Такой широкий выбор возможен благодаря многолетней поддержке сообщества и наличию модулей для работы почти с любым набором программ.

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

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

PHP жив!


«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.

ТелеграмПодкастБесплатные учебники

Читать дальше

Как работает протокол HTTP

Как работает протокол HTTP

HTTP был разработан в 1990-х годах для создания первого интерактивного текстового веб-браузера. За эти годы протокол менялся и совершенствовался, становился более гибким и постепенно превратился в современный интернет. В статье рассмотрим принцип работы протокола и что важно знать о нём разработчику.

Читать дальше
  • 8 февраля 2023
Массивы в PHP

Массивы в 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, а в роли нашего собеседника выступает PHP-интерпретатор. Поэтому, чтобы выразить свою мысль, мы должны сделать её понятной для интерпретатора.

Читать дальше
  • 27 октября 2022
Массивы $_POST и $_GET в PHP. Обработка форм

Массивы $_POST и $_GET в PHP. Обработка форм

Формы — это часть языка HTML. Формы нужны для передачи данных от клиента на сервер. Чаще всего формы используются для регистрации пользователей, заполнения анкет, оформления заказа в интернет магазине, и так далее.

Через формы можно отправлять как простую текстовую информацию, так и файлы.

Большую часть времени программирования на PHP вы будете так или иначе работать с формами и данными из них.

HTML описывает то, из каких элементов состоит форма, и как она выглядит. Но без принимающей стороны, то есть сервера, который принимает эти данные и обрабатывает их нужным образом, создавать формы нет никакого смысла.

PHP содержит множество средств для работы с формами. Это позволяет очень просто решать типичные задачи, которые часто возникают в веб-программировании:

  • Регистрация и аутентификация пользователя;
  • Отправка комментариев на форумах и социальных сетях;
  • Оформление заказов.

Практически любой современный сайт содержит как минимум несколько разных HTML-форм.

Читать дальше
  • 20 октября 2022
Учебник по PHP

Учебник по PHP

  1. Знакомство с языком
  2. Шаблонизация и подключение файлов
  3. Протокол HTTP и формы
  4. Идентификация пользователя на сайте
  5. Базы данных
  6. Объекты и использование библиотек
  • 10 сентября 2022
Протокол HTTP и работа с заголовками

Протокол HTTP и работа с заголовками

Весь современный веб построен на модели взаимодействия клиента и сервера. Как она работает:

  • браузер пользователя (клиент) отправляет на сервер запрос с адресом сайта (URL);
  • сервер получает запрос и отдаёт клиенту запрошенный контент.

Для реализации процесса используется универсальный протокол HTTP.

Читать дальше
  • 10 сентября 2022
Защита от SQL-инъекций

Защита от SQL-инъекций

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

Атака этого типа возможна, когда недостаточно фильтруются входные данные при использовании в SQL-запросах.

Читать дальше
  • 10 сентября 2022
Объекты и классы в PHP

Объекты и классы в PHP

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

Читать дальше
  • 10 сентября 2022