Найти в Дзене
Skillbox

Как начать программировать на PHP

Оглавление

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

Сегодня мы познакомимся с простым, но имеющим огромные возможности языком программирования PHP, узнаем, почему многие считают его привлекательнее других языков, как легко начать программировать на PHP и на какую зарплату можно рассчитывать.

Чем отличается frontend от backend

Все сайты, которые мы видим в интернете, состоят из двух частей — frontend и backend. То, что мы видим визуально, — красивые анимации, слайдеры, выпадающие меню и прочее, — это frontend. Дизайнер нарисовал картинку, которую мы превратили в рабочий код с помощью HTML, CSS и JavaScript.

На уровне backend создается сама платформа, которая связывает сайт с внутренними серверными системами, обрабатывает пользовательские запросы, ведет общение с базой данных и в конце выводит результат во frontend.

В создании бэкенда и используется язык PHP.

История создания PHP

Языку PHP уже более 20 лет. Он был разработан датчанином Расмусом Лердорфом в 1994 году как простая надстройка, которая показывала количество посещений его персональной странички. Тогда он назвал ее просто — Personal Home Page.

Все эти годы язык эволюционировал. Три года назад вышла седьмая версия. Она намного эффективнее предыдущих версий PHP — 5-й и 6-й:

  • В среднем вдвое быстрее PHP 5.
  • Использует на 50% меньше памяти при обработке запросов.
  • В ней расширено существовавшее объявление параметров в методах.
  • Переработан и убран устаревший код, а это порядка 180 тысяч строк.
  • Появилось много синтаксических улучшений.

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

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

Часто говорят, что PHP — это язык для новичков, он не предназначен для создания крупных enterprise-проектов. Это не так. Есть немало сервисов, написанных на PHP, создатели которых стали миллиардерами. Например, социальные сети Facebook и «ВКонтакте» написаны на PHP. Такие популярные CMS, как Wordpress, Drupal, «1С-Битрикс» также написаны на PHP. И немалая часть сервисов Google тоже написана на этом языке.

Крупнейшие мировые компании используют язык PHP
Крупнейшие мировые компании используют язык PHP

PHP имеет очень низкий порог входа. Это язык, который позволит вам буквально через месяц обучения писать небольшие сайты. И в дальнейшем, развивая свои навыки, вы сможете программировать уже высоконагруженные отраслевые решения, в которых нуждаются ведущие мировые компании.

На данный момент PHP — самый востребованный язык программирования. На рынке он занимает долю в 24,6%. Примерно столько же занимает Java со своими 21,1%. А третий язык С# уже значительно отстает — 9,8%.

PHP, Java и C# — самые популярные языки у работодателей. Востребованность языков программирования по данным HH и «Моего круга»
PHP, Java и C# — самые популярные языки у работодателей. Востребованность языков программирования по данным HH и «Моего круга»

Рейтинг популярности языков программирования составлен на основе вакансий работодателя, и в ближайшие 5 лет такое соотношение, по всей видимости, останется неизменным.

Читайте также
Современный промо-дизайн: единороги в космосе против изящных решений
Типографика, композиция, стиль. Как дизайнеру развить три базовых навыка
Как искать лиды в социальных сетях и продавать через комментарии

Уровни зарплат на вакансии PHP-разработчиков

По статистике HeadHunter, зарплатный максимум программиста PHP в России составляет 250 000 рублей. Если разделить зарплаты по уровням профессионального развития программиста, то цифры такие:

  • Junior Developer — от 30 000 руб./мес.

Только входит в профессию, умеет что-то писать и имеет коммерческий опыт программирования порядка 2-3 месяцев.

  • Middle Developer — от 60 000 руб./мес.

Может справиться с 90% поставленных задач и имеет опыт программирования от 6 месяцев до 1 года.

  • Senior Developer — от 100 000 руб./мес.

Может решить любую задачу на PHP, спроектировать решение, архитектуру, подобрать код и обучить junior- и middle-программистов выполнять эти задачи.

Полный спектр скиллов веб-разработчика

Давайте рассмотрим, каким комплексом знаний должен овладеть новичок, чтобы заниматься непосредственно backend-разработкой:

  • HTML + CSS — языки разметки страницы. Нужно знать и понимать основы, так как придется работать уже с готовой разметкой.
  • JavaScript — код, выполняемый на стороне клиента (браузера), нужен для того, чтобы задать механику страницы. Необходимо уметь читать и понимать, для чего нужен тот или иной кусок кода.
  • PHP — ядро сайта, скриптовый язык, работающий на уровне сервера и взаимодействующий с серверными структурами, на которых строится веб-проект.
  • SQL — язык структурированных запросов, применяемый для управления базами данных, например, в СУБД MySQL.
  • Linux — да, именно Linux. Windows не предназначена для использования в качестве операционной системы для сервера, хотя PHP может работать как в WIndows, так и в Linux. В рамках обучения не обязательно использовать именно Linux, но важно знать, что в реальных проектах серверы обычно работают под этой ОС.

Литература

«PHP 7. В подлиннике», авторы Дмитрий Котеров, Игорь Симдянов.

«Создаем динамические веб-сайты с помощью PHP, MySQL, JavaScript, CSS и HTML5», автор Робин Никсо

«PHP объекты, шаблоны и методики программирования», автор Мэтт Зандстра.

«Разработка веб-приложений с помощью PHP и MySQL», авторы Люк Веллинг, Лора Томсон.

«Изучаем PHP 7. Руководство по созданию интерактивных сайтов», автор Дэвид Скляр.

Создаем простой скрипт

Давайте рассмотрим простой пример работы с PHP и создадим небольшой скрипт. Мы не будем подробно вникать в синтаксис языка и в назначение операторов, а лишь наглядно покажем, как PHP взаимодействует с HTML.

Для начала нам нужно установить компилятор PHP на компьютер. Так как мы выяснили, что PHP — это серверный язык, то существуют специальные готовые сборки веб-серверов, которые включают в себя, помимо PHP, и другие полезные инструменты, например, СУБД MySQL. Одной из таких сборок является Open Server. Для написания кода будем использовать текстовый редактор Sublime Text 3.

Перейдем в папку domains веб-сервера Open Server и создадим в ней новую папку example. Внутри папки example создадим 2 файла: index.html и handler.php.

Код нашей главной страницы index.html будет иметь следующий вид:

<!DOCTYPE html>
<html lang="en">
<head>
     <mera charset="UTF-8">
     <title>Example</title>
</head>
<body>
     <form action="handler.php" method="get">
         <label>
            Продукт
            <input type="text" name="searchText">
         </label>
         <input type="submit" name="searchSubmit" value="Поиск">
     </form>
</body>
</html>

Мы имеем форму с текстовым полем и кнопкой. Атрибут action тега <form> указывает на имя и путь файла-скрипта, который будет обрабатывать введенные данные, — в нашем случае это файл handler.php. Атрибут method указывает на способ передачи данных — get; также существует метод передачи post.

Напишем код для скрипта handler.php.

<?php
   echo "<link rel='stylesheet' href='styles.css'>";
   $fruits = array('Яблоки' => '30кг', 'Груши' => '50кг', 'Бананы' => '20кг');
   $vegetables = array('Картошка' = '100кг', 'Огурцы' => '80кг', 'Помидоры' => '50кг');
   $berries = array('Вишня' => '20кг', 'Виноград' => '30кг', 'Малина' => '50кг');
   $searchText = mb_strtolower($_GET['searchText'];
   if(isset($_GET['searchSubmit'])){
       if($searchText == 'фрукты')
           $products = $fruits;
       elseif ($sesrchText == 'овощи')
           $products = $vegetables;
       esleif ($sesrchText == 'ягоды')
           $products = $berries;
       echo '<table>
              <thead>
                 <td>Продукт</td>
                 <td>Количество</td>
              </thead>;
       foreach ((array)$products as $key => $value) {
           echo '<tr>
                   <td>'. $key .'</td>
                   <td>'. $value .'</td>
               </tr>;
       }
       echo '<table>';
    }
?>

Немного разберем код:

  • В строках 3–5 создается три массива, которые содержат информацию о фруктах, овощах и ягодах. На самом деле подобного рода данные должны храниться в базе данных и затем из нее вытягиваться. Но в качестве примера мы ввели их вручную в коде.
  • В строке 7 создается переменная $searchText, которая содержит в себе введенное в текстовое поле значение. Это значение берется из суперглобального массива $_GET, в квадратных скобках которого указывается имя текстового поля, которое мы задали в файле index.html. Этот массив инициализируется при отправке формы.
  • В строках 9–15 сначала проверяется, была ли нажата кнопка отправки формы, которая имеет имя searchSubmit, затем происходит проверка введенного значения и, в зависимости от того, какой вид продукта ввел пользователь, в переменную $products записывается ранее созданный соответствующий массив.
  • В строках 17–28 происходит вывод массива на экран в виде таблицы. Как видите, PHP отличает HTML-теги от обычных строк и выводит в окно браузера с помощью функции echo HTML-таблицу.
  • В строке 22 происходит перебор нашего массива products с помощью специального оператора цикла foreach.

Чтобы придать таблице красивый вид, мы создадим небольшой файл стилей styles.css. Он подключается в файле handler.php во второй строчке кода.

Все готово. Запустим наш веб-сервер и в адресной строке браузера перейдем по адресу example.

Введем в поле значение «фрукты» и нажмем кнопку Поиск.
Введем в поле значение «фрукты» и нажмем кнопку Поиск.

Откроется главная страница index.html.

В результате веб-сервер перебросил нас на выполнение скрипта handler.php, который, в свою очередь, отобразил на экране таблицу фруктов. Обратите внимание на адресную строку.

Так выглядит наш get-запрос.
Так выглядит наш get-запрос.

После вопросительного знака указывается имя параметра, в данном случае это название поля searchText, и через знак «=» указывается его введенное значение. Таких пар «имя = значение» может быть несколько, они должны разделяться между собой знаком «&». Не рекомендуется использовать данный метод передачи, если вам нужно передать большой объем данных либо же какие-то конфиденциальные данные, например, логин и пароль. В таких случаях используется метод post.

При дальнейшем изучении — например, в рамках курса «PHP-разработчик» от Skillbox — вы обязательно узнаете о таких важных вещах, как взаимодействие PHP с базой данных, построение объектной модели, выполнение асинхронных запросов без перезагрузки страницы, и о том, как строится архитектура высоконагруженных систем.

Курс «PHP-разработчик»
Обширная программа для изучения PHP, состоящая из 4 курсов. Поможет с нуля овладеть популярным языком программирования, устроиться в IT-компанию вашей мечты или стать независимым разработчиком.
Программа курса