- Что такое PHP и почему его все ненавидят
- История языка
- PHP — это просто
- Для чего нужен PHP
- Почему все ненавидят PHP
- Стоит ли учить PHP?
- Что дальше
- 🐘 Самоучитель для начинающих: как освоить PHP с нуля за 30 минут?
- Редакторы кода
- Как запустить PHP в Atom
- 1. Синтаксис
- 2. Объявление переменной
- Комментарии
- 3. Типы данных
- 3.1. Строки
- Конкатенация строк
- 3.2. Числа
- Число с плавающей точкой
- Арифметические операторы
- Операторы сравнения
- Порядок операций
- 4. Условный оператор if-else
- 5. Тернарный оператор
- 6. Переключатель switch
- 7. Цикл while
- 8. Цикл do..while
- 9. Цикл for
- 10. Цикл foreach
- 11. Массивы
- 12. Функции
- Как объявить функцию
- Аргументы функций
- 13. Собираем HTML-страницу
- Запуск веб-сервера
- Встроенный в PHP веб-сервер
- XAMPP
- 14. Собираем страничку
- Литература
- Шпаргалки
- YouTube-каналы и курсы
- 7 июля 2018 г. PHP: 5 сфер применения
- 1. Вебсайты на PHP
- Шаблоны динамических сайтов
- Онлайн-сообщества
- Работа с изображениями
- 2. Приложения для электронной коммерции
- 3. Общеорганизационное программное обеспечение
- Системы управления контентом
- Системы управления информацией о клиентах
- Системы управления ресурсами
- 4. Использование PHP для создания баз данных
- 5. PHP для мобильных приложений
- Итак, что же может PHP?
Что такое PHP и почему его все ненавидят
Несмотря на то, что 83% сайтов в интернете работают на PHP.
История языка
Изначально PHP расшифровывался как Personal Home Page Tools — инструменты для создания персональных страниц. Дело в том, что раньше, чтобы сделать функциональный сайт, чаще всего использовали C, Perl и CGI-скрипты. Звучит сложно, на деле — тоже сложно. Единственным способом сделать что-то своё и не изучать при этом три тома по программированию был PHP.
Например, можно сделать так:
Привет! А вы знаете, что
В результате на странице получится строчка: «Привет! А вы знаете, что этот код написан на PHP?»
Ещё можно создавать целые PHP-файлы и писать весь код там, а потом просто подключать эти файлы в нужный момент. Получается, что с PHP можно работать в двух режимах: писать код прямо в коде страницы или выносить всё в отдельные файлы.
PHP — это просто
Именно простота этого языка принесла ему дурную славу: слишком много появилось плохого кода, который на первый взгляд работал хорошо. Посмотрите сами: начать писать на PHP действительно просто.
Комментарии и точка с запятой. Комментарии можно ставить в любом месте — достаточно написать два слеша подряд. А точка с запятой ставится после каждой команды — точно так же, как в С, Pascal, JavaScript и ещё в сотнях других языков.
Объявление переменных. Чтобы объявить переменную, нужно просто поставить знак доллара, после него написать название переменной и присвоить ей какое-то значение.
Вывод на экран. В HTML-коде достаточно вставить команду echo, которая помещает текст в то место, откуда вызвали команду. Например, этот код покажет заголовок первого уровня с текстом «Заголовок, собранный на PHP»:
И этот код сделает то же самое:
Ещё в PHP есть классы и объекты, автоматическое приведение типов (хотя мало кто понимает, как оно там работает в сложных примерах) и множество встроенных функций, которые упрощают разработку и помогают быстро писать код. А самое главное — PHP сам заставляет работать любой код, если он хоть как-то написан по правилам языка. Даже если внутри будет полная чушь, но похожая на PHP-код — интерпретатор его старательно выполнит, и, скорее всего, многое из этого будет даже работать.
Для чего нужен PHP
Собирать страницы из модулей. Если помните, PHP-код можно встраивать в HTML-страницы, а можно сохранять как отдельные файлы. В этом случае мы получаем мини-модули, каждый из которых отвечает за что-то одно. Например, в одном мы пишем, как будет выглядеть шапка сайта, в другом — меню, третий файл будет отвечать за подвал, четвёртый — за блок с отзывами о товарах.
Если у нас интернет-магазин и на каждой странице товара нужно показать шапку сайта и подвал, можно каждый раз прописывать это вручную, а можно собрать на PHP. Для этого достаточно в теле страницы написать что-то такое:
PHP возьмёт файл header.php, в котором мы написали, как должна выглядеть шапка сайта, и поставит её в начало страницы. То же самое сделает и с подвалом — файлом footer.php, и так будет на каждой странице товара. Получается, что нам не нужно писать один и тот же код шапки и подвала на каждой странице, достаточно сделать это в одном месте, а потом подключать одной строчкой.
Создавать CMS и движки для сайтов. Такие модульные возможности PHP привели к тому, что большинство современных систем управления контентом на сайтах написаны на PHP. Смотрите сами:
Если вы на бесплатном хостинге используете какой-то инструмент для создания или поддержки сайта, скорее всего, он тоже будет написан на PHP.
Работать с формами и данными на странице. HTML плохо умеет работать с формами и отправлять куда-то данные, которые вы вводите в поля регистрации. PHP справляется с этим гораздо лучше: вы говорите, из какого поля что нужно взять и по какому адресу отправить, а всё остальное интерпретатор делает за вас.
Запоминать пользователей и делать формы авторизации. Если вам нужно быстро написать свою форму регистрации на сайте или запоминать посетителей даже без регистрации, то PHP — самый простой вариант решения этой задачи. Единственное, что нужно знать — как работать с базами данных, где хранятся записи о пользователях, потому что PHP это тоже умеет.
Почему все ненавидят PHP
По старой памяти, когда ужасного кода было много. Простота вхождения в этот язык привела к тому, что невозможно было нормально поддерживать сайт, написанный кем-то на PHP. Этот язык позволял раньше (сейчас меньше, но тоже есть) много вольностей с типами данных, переменными, обращениями к базе данных, поэтому разобраться было почти нереально.
Кроме этого, раньше в PHP было много уязвимостей, через которые можно залезть в базы данных пользователей или что-то поломать на сайте. В новых версиях большинство дыр уже устранили, но тогда это стало реальной проблемой.
Смешанный код. Писать в одном файле на PHP и HTML можно, если у вас всего одна форма обратной связи. Но когда весь сложный код на PHP расползается по всей странице, то это сильно мешает разобраться, что же там происходит на самом деле.
Любые переменные в любом месте. Понадобилась новая переменная? Объявите её на любом участке кода и сразу берите в работу. Это удобно для первоначальной разработки, когда ты просто берёшь новую переменную там, где она понадобилась, и делаешь с ней что хочешь. Но когда проходит время или кто-то другой хочет разобраться в коде, то такой подход сильно затрудняет работу.
Например, можно написать так:
Когда новый программист захочет понять, за что отвечают переменные а и b, он найдёт место, где они объявляются, и посмотрит, какого они типа и для чего использовались вначале. Но разработчик мог в процессе передумать и начать использовать эти переменные для других целей с новыми типами данных. Чтобы это понять, нужно просмотреть весь код и разобраться в логике, а это долго и трудно.
Стоит ли учить PHP?
Зависит от задачи. Дело в том, что не менее 80% сайтов уже сейчас работают на PHP: это значит, что их нужно будет еще какое-то время поддерживать. Ещё лет 5–10 спрос на PHP точно будет.
Однозначно стоит учить PHP, если хотите работать с Вордпрессом, Друпалом, Джумлой и другими известными системами управления сайтами. Они написаны на PHP, и все надстройки и дополнения — тоже. Хороший разработчик WordPress сейчас на вес золота.
Будут ли веб-разработчики массово переходить на другие технологии — вопрос открытый. Сейчас, если вы покупаете виртуальный хостинг, вам сразу включают интерпретатор PHP, потому что все его используют. А другие технологии типа Python или Node.js — не включают, их нужно устанавливать отдельно.
Но ведь и веб — это не навсегда. Ещё лет 20, и понятие веб-сайта может безнадёжно устареть, потому что люди будут в приложениях, соцсетях или ещё где похуже.
Наверное, ответ на вопрос такой: если вам до 20 лет, то уже не надо учить PHP. А если ближе к 40–50 и вы хотите заниматься вебом — то определённо да.
Что дальше
В следующей серии попрактикуемся в PHP — напишем свой код для пользы дела или для развлечений.
🐘 Самоучитель для начинающих: как освоить PHP с нуля за 30 минут?
PHP (от англ. препроцессор гипертекста) – язык программирования общего назначения, широко используемый в веб-разработке. Сценарии PHP можно внедрять непосредственно в код HTML. В этой статье мы пройдемся по основам программирования на PHP: синтаксису, объявлению переменных, массивам, условным операторам, циклам и функциям. Также запустим двумя способами веб-сервер на локальной машине и соберем страничку из нескольких файлов PHP и фреймворка Bootstrap. В конце статьи приведем список литературы и бесплатные курсы по PHP для новичков.
Редакторы кода
Для удобного кодинга нам понадобится редактор кода (IDE). Популярные:
Как запустить PHP в Atom
Устанавливать PHP на компьютер и запускать веб-сервер мы будем в конце статьи в разделе «Собираем HTML-страницу». А пока для запуска PHP-сценариев достаточно добавить плагин Script в редакторе Atom.
Рис. 1. Запуск php-скрипта в редакторе Atom
1. Синтаксис
Выведем на экран строку Hello World (заключена в кавычки) с помощью команды echo :
через функцию print :
через функцию printf (выводит отформатированную строку):
2. Объявление переменной
Выведем на экран переменную animal :
Одно значение можно присвоить нескольким переменным:
Комментарии
3. Типы данных
3.1. Строки
Строка – набор символов, заключенный в одиночные » или двойные кавычки «» :
Конкатенация строк
3.2. Числа
Целое число (integer) не имеет дробной части:
Число с плавающей точкой
Число с плавающей точкой имеет дробную часть и задается следующий образом:
Арифметические операторы
Оператор | Операция |
+ | Сложение |
— | Вычитание |
* | Умножение |
/ | Деление |
% | Деление по модулю |
** | Возведение в степень |
Таблица 1. Арифметические операторы
Операторы сравнения
Чтобы сравнить значения используют операторы сравнения, которые возвращают true или false :
Если строка не содержит число, то интерпретатор PHP приводит значение строки к 0. Если в строке есть число и оно стоит после буквенных символов, то значение всей строки также приводится к 0. Е сли число стоит перед буквенными символами, то для сравнении берется только число.
Таблица 2. Операторы сравнения
Порядок операций
Сначала считается выражение в скобках:
4. Условный оператор if-else
Оператор if выполняет код, если выполняется условие. В противном случае выполняется код после else, который переводится, как «иначе», «в другом случае».
Синтаксис оператора if-else
Напишем несколько условий с оператором if и if-else :
для проверки дополнительных условий используется оператор elseif :
Таблица 3. Логические операторы
5. Тернарный оператор
Тернарный оператор сокращает запись проверяемого условия и имеет следующий синтаксис:
6. Переключатель switch
Синтаксис переключателя switch
Напишем конструкцию из переключателя switch и двух операторов case :
7. Цикл while
Оператор while выполняет код до тех пор, пока значение условия не станет ложным.
Синтаксис цикла while
while – обозначение цикла.
$m – условие, которое проверяется перед началом цикла.
$m++ – инкрементирование, то есть увеличение переменной на единицу.
Другой способ записи с помощью декремента в условии:
8. Цикл do..while
Синтаксис цикла do..while
Напишем цикл, выводящий на экран четыре раза слово Hello :
9. Цикл for
Цикл выполняется, до тех пор, пока условие истинно, то есть значение i не станет равным 4:
10. Цикл foreach
Цикл foreach последовательно перебирает элементы массива.
Синтаксис цикла foreach
На каждой итерации переменной присваивается значение текущего элемента последовательности. Переберем все элементы массива и умножим каждый элемент на 3:
11. Массивы
Массивы – упорядоченная коллекция элементов с доступом по индексу или ключу. Индексный массив создается двумя способами:
Через функцию array() :
и через квадратные скобки []:
Рекомендуется объявлять массив через квадратные скобки, так как эта запись компактнее.
Создадим пустой массив:
Добавим в него несколько элементов и выведем на экран его содержимое:
Для удаления элемента из массива воспользуемся функцией unset() :
unset($array[2]) – удаление третьего элемента массива.
В качестве индекса также используют строки:
В таком случае мы получаем что-то напоминающее словари в других языках программирования с ключами и значениями. В PHP такой массив называют ассоциативным.
Ассоциативный массив объявляется через символы => :
Создадим ассоциативный массив:
Для поиска ключа по значению используем функцию array_search():
Чтобы подсчитать количество элементов в массиве воспользуемся функцией count() :
Также можно создать многомерный массив:
12. Функции
Функция – подпрограмма, которая на входе принимает аргументы (бывают функции без входных аргументов), выполняет код и возвращает результат. Функциональное программирование упрощает жизнь программиста, так как не нужно копировать и вставлять фрагменты кода снова и снова. Достаточно обратиться к функции когда нужно и сколько угодно раз.
Как объявить функцию
function – мы говорим интерпретатору, что отсюда начинается функция.
аргументФункции – переменные, которые передаются функции для выполнения кода.
имяФункции – чтобы вызывать функцию, ей нужно присвоить имя.
return – выдает результат работы функции.
Аргументы функций
До этого мы рассматривали функции без аргументов – переменных, которые функция получает извне. Напишем функцию с аргументами, которая считает сумму трех чисел:
13. Собираем HTML-страницу
Чтобы просмотреть HTML-страницу, собранную из нескольких PHP-файлов, установим и запустим веб-сервер, разместим файлы в определенной папке и обратимся к файлу через браузер.
Запуск веб-сервера
Веб-сервер можно запустить несколькими способами:
Встроенный в PHP веб-сервер
Инструкция для Windows:
Инструкция для Ubuntu:
Чтобы проверить запущен ли сервер, перейдем по адресу http://localhost:8000/:
Рис. 6. Запуск встроенного в PHP веб-сервера
Если мы получили ошибку 404, значит сервер запущен.
XAMPP
Рис. 7. Запуск сервера с помощью XAMPP
Рис. 8. Запуск сервера с помощью XAMPP на Windows
14. Собираем страничку
Структура простого HTML-документа выглядит следующим образом:
Воспользуемся фреймворком Bootstrap, чтобы ускорить создание странички. Скачивать ничего не нужно, просто вставим ссылку на Bootstrap в тег :
Откроем файл header.php и вставим в него следующий код:
Рис. 9. HTML-страница, собранная из php-файлов
Литература
Шпаргалки
YouTube-каналы и курсы
Бесплатные курсы на русском языке:
7 июля 2018 г. PHP: 5 сфер применения
Созданный изначально для серверного скриптинга, PHP стал одним из наиболее широко применяемых языков программирования. Согласно WWW Technology Surveys, доля его использования превышает 80 %. Среди сторонников PHP — такие гиганты, как Slack, Wikipedia, WordPress, Pinterest, Nvidia, Tumblr и, в определенном роде, Facebook. Широкий спектр функций, которыми он обладает, позволяет применять этот язык практически во всех сферах ИТ-разработки. Поэтому к нему так часто отдают предпочтение при разработке самые различные компании, от стартапов до крупных предприятий. Предлагаем познакомиться с несколькими вдохновляющими примерами того, что можно создавать при помощи PHP.
1. Вебсайты на PHP
Будучи изначально разработанным для создания веб-страниц, PHP позволяет создавать веб-сайты с интуитивным и адаптивным дизайном быстро и легко. Поэтому неудивительно, что многие сайты созданы именно при помощи PHP. Среди них — Yahoo, Flickr, Digg и другие.
Мы рады, что можем добавить к этому обширному списку несколько сайтов, разработанных нашей компанией. Это сайты для профессионального сервиса фотографов KeepSnap, для немецкого пассажироперевозчика MeinFernbus, а также для большого украинского хостинг-провайдера Nic.Ua. Нам очень приятно, что в мае 2018 года Nic.Ua занял первое место во всеукраинском конкурсе веб-сайтов Web Awards UA.
Так что же делает PHP настолько подходящим для разработки сайтов? Ответ — его функционал, который был специально разработан под вебсайты. Сюда входит и интеграция с HTML, и хорошая совместимость с различными базами данных, и безопасность, и приятный пользовательский интерфейс.
Шаблоны динамических сайтов
В современной экосистеме каждая веб-страница требует высокого уровня кастомизации и должна обеспечивать высокую интерактивность пользовательского интерфейса. Поскольку скрипты PHP работают на сервере, страница с HTML кодом может создаваться в динамике. Посетители имеют дело с кастомизированными страницами, никак не соприкасаясь со скриптами.
Онлайн-сообщества
PHP позволяет легко создавать онлайн-сообщества при помощи таких инструментов, как PHP BB, vBulletin, Pun BB и др. Это позволяет сделать ваш сайт более интерактивным и привлекательным для пользователей.
Работа с изображениями
При помощи PHP вы можете работать с изображениями различных типов, например, используя набор консульных утилит ImageMagic. Таким образом, сайты на PHP могут быть настолько яркими и красочными, насколько вы сами того пожелаете.
2. Приложения для электронной коммерции
Электронная коммерция — это еще одна обширная сфера, в которой PHP предлагает множество простых путей для создания интересных продуктов. Многие популярные онлайн-платформы, такие, например, как OpenCart, Zen Cart, Magento, PrestaShop и Ubercart, созданы с помощью PHP.
Для организации электронной коммерции с помощью PHP можно использовать функции PHP CCVS, CyberMUT, Cybercash, Payflow Pro, VeriSign.
Благодаря использованию таких фреймворков, как Symfony, CodeIgniter, CakePHP или Zend, PHP предоставляет широкие возможности для создания приложений для электронной коммерции. Поскольку эти фреймворки являются опенсорсными, это позволяет сэкономить средства на разработке и поддержке, а также обеспечивает повышенную функциональность, хорошую масштабируемость и адаптивность, а также бесперебойную работу, что однозначно положительно оценят ваши клиенты.
Хорошим доказательством тому является еще одно наше решение — обновленный сервис форвардинга для Новой Почты. Новая Почта — это крупнейшая украинская компания экспресс-доставки. В 2016 году она запустила сервис форвардинга, но по определенным причинам первая версия оказалась не очень успешной, и компания решила полностью обновить данный сервис.
Выполнение задачи было доверено Stfalcon.com.Помимо нового дизайна, мы также переписали с нуля движок сайта, используя при этом фреймворк Symfony2. Это позволило улучшить функционирование сайта и сделать его гораздо более удобным для пользователей. В результате довольно непопулярный поначалу среди пользователей сервис, в 2018 году занял первое место в номинации «Выбор потребителя» на всеукраинском конкурсе Ukrainian E-commerce Awards.
3. Общеорганизационное программное обеспечение
Организационное ПО включает системы управления контентом (CMS), системы управления информацией о клиентах (CRM), системы управления ресурсами (ERP) и другие инструменты для управления активами предприятия. Использование PHP для разработки общеорганизационного ПО набирает обороты благодаря гибкости, легкой интеграции и наличию разнообразных возможностей для осуществления платежей.
Системы управления контентом
Создание CMS — одно из наиболее популярных использований PHP. На нем работают три ведущих движка для CMS: WordPress, Joomla и Drupal. При помощи PHP вы можете либо кастомизировать эти CMS для своего бизнеса, либо создать собственную систему управления контентом с нуля. Одна из основных черт, которая отличает хорошую CMS — это то, что пользователи могут работать с контентом, не имея при этом дело с операционной частью и HTML. CMS разработка на PHP снижает взаимозависимость между разметкой и контентом.
Системы управления информацией о клиентах
Как и в случае CMS, можно выбирать между множеством готовых CRM решений, находящихся в открытом доступе и кастомизировать их под потребности вашего бизнеса, так и разработать кастомную CRM. PHP и его фреймворки часто используют для разработки CRM, поскольку они совместимы практически со всем программным обеспечением. Его готовые плагины, шаблоны и компоненты могут быть легко интегрированы и добавляют самый разнообразный функционал, например, учет продуктов, валютные операции, онлайн платежи и др.
Системы управления ресурсами
Современные системы управления ресурсами (ERP) достаточно сложны и должны соответствовать высоким стандартам в плане интеграции. Когда речь идет о разработке жизнеспособной ERP системы, выбор наиболее подходящего фреймворка очень важен. PHP предоставляет большой выбор фреймворков, среди которых можно подобрать оптимально подходящий для решения ваших задач. Он также позволяет ускорить разработку, которая, в случае ERP, может занять годы. Большинство PHP фреймворков поддерживают подход «модель-представление-контролллер», которая позволяет разработчикам оптимизировать работу приложения, структурируя код. Это дает возможность лучше организовать сотрудничество между несколькими командами, работающими над разными модулями одной системы.
4. Использование PHP для создания баз данных
База данных — сердце веб-экосистемы. Она обеспечивает средства для создания динамического контента и для всех видов пользовательского интерактива. Ее написание существенно упрощается благодаря использованию специальных расширений или подключению к одной из баз данных, которые поддерживают стандарт ODBC. Одна из причин популярности PHP заключается в том, что он предоставляет поддержку для различных баз данных, включая MySQL, Oracle и MS Access (в целом более 20), а также может быть использован для создания новых баз данных. При этом для PHP характерна простота генерации страницы, работающей с базой данных.
5. PHP для мобильных приложений
Главная цель мобильного приложения — вовлечение пользователей или партнеров в ваш бизнес. Здесь персонализация клиентского опыта и создание правильного контекста имеют огромное значение. Поэтому сегодня можно встретить мало самодостаточных приложений, и большинство из них опираются на бэк-энд сервисы. Серверная часть приложения отвечает за объединение различных данных с мобильного устройства, паттернов поведения пользователей, за сохранение настроек пользователей и т.д. Несколько фреймворков PHP, среди которых Symfony и Laravel, весьма неплохо подходят для создания бэк-энда мобильных приложений.
Например, создавая приложение для студентов, желающих подготовиться к экзаменам SAT и ACT, мы использовали Symfony в качестве основы для разработки. Такое решение было принято, поскольку этот фреймворк лучше всего подходит для разработки REST API, который в нашем случае был разработан на архитектуре HATEAOS. В комбинации с несколькими другими техниками, которые базируются на разных языках был создан хорошо работающий продукт.
Итак, что же может PHP?
Благодаря обширному сообществу, широкому спектру функций, большому набору фреймворков, PHP подвластно практически все. Сбор данных, скриптирование серверной части, динамическая генерация контента — всего лишь некоторые сферы его применения. PHP может использоваться практически на всех операционных системах, включая Microsoft Windows, Linux, большинство Unix вариантов и macOS. Он также имеет поддержку для большинства серверов и баз данных.
По этим причинам PHP — хороший выбор для создания успешных проектов. Долгое время PHP не рассматривался в качестве достаточно серьезного языка для разработки больших веб-приложений и преимущественно был известен как хороший вариант для небольших проектов. В последнее время ситуация существенно изменилась. Фреймворки PHP (Symfony, Laravel, CakePHP, Zend и т.д.) расширяют способности языка.