Зачем нужен PHP
На PHP делают сайты и веб-приложения — блоги, интернет-магазины или социальные сети. Сегодня на PHP работает почти 38 миллионов сайтов — и среди них всемирно известные Facebook, Wikipedia и «ВКонтакте». Рассказываем, для чего ещё нужен PHP, и почему без него не обходится большинство современных сайтов.
PHP придумали в 1995 году, и тогда он ещё не был полноценным языком программирования. Это был набор скриптов для личной страницы одного программиста из Дании, но в итоге проект разросся так, что получил собственный синтаксис, поддержку дополнительных модулей, признание в среде разработчиков и превратился в один из самых популярных языков программирования в мире. Кстати, название PHP расшифровывается как Personal Home Page — и отсылает к тому, чем язык был изначально.
Не будем углубляться в историю и рассмотрим, для чего используется PHP.
Формирование страниц «на лету»
Предположим, у нас есть библиотека с тысячей книг, и мы хотим сделать для неё сайт. По задумке, на каждой странице нужна информация о книге: имя автора, описание и фотография обложки. Если бы книг было десять, то ничего страшного — можно вручную сделать страницу для каждой. Но для библиотеки из тысячи книг нужно создать тысячу разных статичных страниц.
Возможно, у нас есть достаточно времени, чтобы создать тысячу файлов с уникальным содержимым. Но если после создания последней страницы мы решим добавить везде каталожный номер книги или режим работы библиотеки, то придётся повторно отредактировать все файлы. Получается, любое изменение структуры или информации на страницах потребует изменений во всех созданных файлах.
PHP помогает решить эту задачу — мы можем создать одну страницу и показывать на ней информацию о той книге, которая нам нужна прямо сейчас. Такой способ называется динамическим формированием страниц на бэкенде.
Бэкенд (back-end) — это часть сайта, которая находится на сервере, получает запрос от браузера, выполняет запрошенные действия и отправляет информацию обратно. Такой подход применяется повсеместно в клиент-серверном программном обеспечении, и PHP тоже может решать такие задачи. Язык прекрасно справляется с ролью бэкенда для мобильных, десктопных или веб-приложений.
Как формируются страницы
PHP как раз нужен для динамического формирования страниц на основе информации из базы данных.
Представим, что информация о нашей тысяче книг хранится в базе данных. Тогда мы можем легко сформировать страницу конкретной книги (допустим, мы ищем «Тёмную башню» Стивена Кинга).
- Мы пишем в поиске на сайте «Тёмная башня» и отправляем запрос на сервер. PHP получает запрос, соединяется с базой данных и находит нужную информацию.
- Полученную информацию PHP может обработать до нужного формата. Например, добавить теги или преобразовать в другой вид.
- PHP вставляет обложку, автора и описание книги в заранее подготовленный шаблон страницы. Шаблон — это почти полностью готовая страница или часть страницы, на которой не хватает только данных из базы. После того, как информация добавлена в шаблон, у нас есть полностью готовый код страниц.
- Этот код отправляется в браузер, и пользователь видит страницу с информацией о «Тёмной башне».
Для пользователя страница будет выглядеть как обычно, но с точки зрения PHP — это динамически сформированная страница на основе шаблона. Если нам потребуется что-нибудь поменять: добавить блок информации, изменить вёрстку или отобразить ещё что-то из информации о книге, нужно будет изменить не тысячу файлов, а один, с шаблоном страницы. И когда мы будем заходить на сайт, все изменения сразу будут видны на всех страницах.
Управление контентом на странице
Всю информацию в базе данных мы можем менять без изменения сайта — поэтому, например, созданием сайта может заниматься один человек, а наполнением — другой, даже без навыков программирования.
Поэтому PHP хорошо подходит для создания систем управления контентом (CMS), интернет-магазинов и всевозможных интернет-сервисов. В основе практически любого сервиса лежит принцип формирования динамических страниц: например, каталога товаров или статьи в блоге. Страница, которую вы сейчас читаете, тоже динамически сформирована с использованием PHP.
Чтобы быстро создать новый сайт на PHP, не нужно программировать его с нуля. Можно использовать одну из систем, которая основана на PHP, и позволяет легко редактировать содержимое без программирования. Например, проект WordPress помогает при создании блогов, персональных сайтов и даже небольших интернет-магазинов. Для всего перечисленного там уже есть готовые шаблоны, которые нужно только заполнить контентом. При этом WordPress — лишь один из немногих успешных инструментов.
Разработка сервисов
Если мы говорим о разработке, а не о наполнении контентом, стоит вспомнить и другие возможности PHP.
У PHP есть модули для лёгкой работы с базами данных, электронной почтой, службами каталогов и многими другими технологиями. Благодаря этому возможно создавать сервисы без привязки к вебу — например, для работы с данными внутри организации. Сервис, позволяющий получить информацию о сотрудниках из корпоративной базы данных — пустяковая задача для PHP.
Другая сильная сторона PHP — автоматизация действий. PHP работает на стороне сервера, и на нём можно разрабатывать различные сценарии для автоматизации: делать резервные копии информации, собирать и доставлять проекты на рабочий сервер, создавать и редактировать пользователей и т. д. Эти сценарии работают прямо из командной строки, без необходимости создавать графический интерфейс.
Почему именно PHP
Компания TIOBE регулярно формирует статистику популярности языков программирования. Больше двадцати лет PHP удерживается в десятке популярных языков программирования.
PHP даёт большую свободу разработчикам — он одинаково хорошо работает на всех популярных системах, включая Windows, Linux и OS X. Разработчики могут выбрать удобный им веб-сервер и базу данных для работы с PHP. Такой широкий выбор возможен благодаря многолетней поддержке сообщества и наличию модулей для работы почти с любым набором программ.
Новые версии PHP выходят регулярно — в них улучшается производительность и добавляются новые возможности. Язык не сдаёт позиции и со временем становится только лучше. Сегодня, как и несколько лет назад, PHP может стать прекрасным выбором для нового веб-проекта или первым языком при обучении программированию.
Если вы хотите научиться создавать собственные сайты на PHP, пройдите тренажёр «Основы PHP» и прочитайте учебник — это станет хорошей базой для того, чтобы выучить язык и стать профессионалом.
«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.
Зачем нужен PHP
PHP — это серверный скриптовый язык программирования, предназначенный для создания сайтов и веб-приложений.
Серверный. PHP скрипты выполняются на сервере. Этим язык PHP отличается от HTML, CSS и JavaScript, код которых выполняется браузером.
Мы не можем просто открыть PHP файл в браузере, как привыкли делать это с HTML файлами. Для работы PHP скриптов необходима специальная программа — веб-сервер.
Скриптовый. Когда вы запускаете программы вроде Excel или Photoshop, предполагается, что они могут работать без временных ограничений, ожидая от вас всё новые и новые команды.
PHP устроен иначе. PHP скрипты предназначены для единовременного выполнения набора команд. Скрипт запустился, выполнил свою задачу и «умер». И так при каждом запуске.
Зачем нужен PHP
Язык PHP нужен для написания программ, которые работают на сервере и выполняют различные серверные задачи, такие как отправка почты, взаимодействие с базой данных и т.д.
Разберём подробней на примерах.
Пример 1: обработка форм
Практически на любом сайте можно встретить форму вроде этой:
Формы имеют самое разное назначение: регистрация и авторизация, оформление заказа, оплата чего-либо, комментарии на форуме и множество других функций.
Так вот. С помощью HTML и CSS мы можем определить внешний вид формы. С помощью Javascript мы можем добавить красивые анимационные эффекты.
Но мы не можем обработать данные, которые содержатся в этой форме. Нельзя сохранить информацию о клиенте в единой базе данных, авторизовать пользователя, отправить письмо ему на E-mail и т.д.
Для решения подобных задач нам необходим специальный язык программирования, который может работать на сервере. Одним из таких языков и является PHP.
Пример 2: генерация HTML
PHP также используется для автоматической генерации HTML страниц.
Крупные интернет-магазины могут иметь тысячи наименований товаров. Мы, конечно, могли бы создать для каждого товара отдельную html-страницу, но представьте, сколько времени уйдёт на создание этих страниц.
Благодаря связке PHP и любой современной СУБД (системы управления базами данных) мы можем создать всего один html-шаблон, а PHP уже будет подставлять в него товары из базы данных.
Для чего подходит PHP
Язык PHP идеально подходит для создания сайтов и веб-приложений любой сложности. Блоги, интернет-магазины, лендинги (одностраничные сайты), API и прочие веб-сервисы — всё это можно сделать на PHP.
Также PHP подходит для написания консольных скриптов. Запускать их можно как разово, так и с определённой периодичностью.
Что касается десктопных приложений, здесь у PHP достаточно скудный инструментарий, поэтому на практике PHP не подходит для написания настольных и мобильных приложений.
Почему PHP?
- Огромная популярность. Любая проблема, с которой может столкнуться новичок, скорее всего уже встречалась у других людей, а значит решение будет нетрудно найти в интернете.
- Поддержка хостинг-провайдерами. Практически любой хостинг-провайдер может предоставить хостинг или виртуальный сервер с уже установленным и настроенным PHP. Некоторые другие языки нуждаются в ручной установке.
- Большое сообщество. На форумах обитает море PHP-разработчиков, готовых помочь в решении особо трудных проблем.
- Низкий порог входа. С PHP несложно начать работать, у него достаточно простой синтаксис.
- Документация. Подробная, с примерами, на русском языке.
Зачем нужен php сервер
Веб-сервер предназначен для помощи в разработке приложений. Он также может быть полезным в тестовых целях или для демонстрации приложения, запускаемого в полностью контролируемом окружении. Он не выполняет функции полноценного веб-сервера и не должен использоваться в общедоступных сетях.
Модуль CLI SAPI содержит встроенный веб-сервер.
Веб-сервер выполняет только один однопоточный процесс, поэтому приложения PHP будут останавливаться, если запрос заблокирован.
URI запросы обслуживаются из текущей директории, в которой был запущен PHP, если не используется опция -t для явного указания корневого документа. Если URI запроса не указывает на определённый файл, то будет возвращён index.php или index.html в указанной директории. Если ни один из файлов не существует, то поиск этих файлов будет продолжен в родительской директории и так далее до тех пор, пока они не будут найдены или был достигнут корень документа. Если найден index.php или index.html, он возвращается, а в $_SERVER[‘PATH_INFO’] будет находится последняя часть URL. В противном случае возвращается 404 код ответа.
Если PHP-файл указывается в командной строке, когда запускается веб-сервер, то он рассматривается как скрипт «маршрутизации» (router). Скрипт выполняется в самом начале каждого HTTP-запроса. Если этот скрипт возвращает false , то запрашиваемый ресурс возвращается как есть. В противном случае браузеру будет возвращён вывод этого скрипта.
Стандартные MIME-типы возвращаются для файлов со следующими расширениями: .3gp, .apk, .avi, .bmp, .css, .csv, .doc, .docx, .flac, .gif, .gz, .gzip, .htm, .html, .ics, .jpe, .jpeg, .jpg, .js, .kml, .kmz, .m4a, .mov, .mp3, .mp4, .mpeg, .mpg, .odp, .ods, .odt, .oga, .ogg, .ogv, .pdf, .pdf, .png, .pps, .pptx, .qt, .svg, .swf, .tar, .text, .tif, .txt, .wav, .webm, .wmv, .xls, .xlsx, .xml, .xsl, .xsd и .zip.
Версия | Описание |
---|---|
5.5.12 | .xml, .xsl, и .xsd |
5.5.7 | .3gp, .apk, .avi, .bmp, .csv, .doc, .docx, .flac, .gz, .gzip, .ics, .kml, .kmz, .m4a, .mp3, .mp4, .mpg, .mpeg, .mov, .odp, .ods, .odt, .oga, .pdf, .pptx, .pps, .qt, .swf, .tar, .text, .tif, .wav, .wmv, .xls, .xlsx и .zip |
5.5.5 | |
5.4.11 | .ogg, .ogv, и .webm |
5.4.4 | .htm и .svg |
Версия | Описание |
---|---|
7.4.0 | Вы можете настроить встроенный веб-сервер так, чтобы он выполнял разветвление нескольких воркеров для проверки кода, который требует нескольких одновременных запросов к встроенному веб-серверу. Задайте в переменной окружения PHP_CLI_SERVER_WORKERS количество требуемых воркеров перед запуском сервера. Не поддерживается в Windows. Эта экспериментальная функция не предназначена для продакшен использования. Обычно встроенный веб-сервер не предназначен для продакшен использования. Пример #1 Запуск веб-сервера $ cd ~/public_html $ php -S localhost:8000 |