ШАСК - Лаборатория 305

Лабораторная работа №1 (PHP)

Тема: Основы языка программирования PHP

Начинаем программировать на PHP

Мы будем программировать на языке PHP. Его называют препроцессорным языком.

PHP может собрать страницы из кусочков, как конструктор. При этом PHP превращает код собранных страниц в HTML. Это и есть препроцессинг.

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

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

Так как сайт будет написан с применением языка программирования PHP, то нужна среда, в которой команды PHP будут выполняться. Сайты, которые работают на PHP должны быть расположены на сервере с установленным интерпретатором для выполнения команд, написанных на PHP. Поэтому для разработки сайта нам потребуется программа OpenServer, в которой есть интерпретатор и много дополнительных модулей для разработки сайтов. Для выполнения лабораторных работ нужно установить программу OpenServer.

Ссылка на скачивание программы размещена внизу страницы.

После этого файлы проекта сайта нужно поместить в каталог
C:\OSpanel\domains\{папка_проекта}
После этого нужно запустить OpenServer и выбрать ваш проект в меню программы

Окно программы OpenServer
Открытие проекта в программе OpenServer (версия 5.4.3)

Ваш сайт откроется в браузере.

Для редактирования файлов проекта вам нужен текстовый редактор, который «понимает» синтаксис языка PHP. Можно использовать MS Visual Studio Code, Sublime Text, Notepad++ и так далее.

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

Что такое команды и комментарии в PHP

Команда — указание программе выполнить какое-то действие.

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

// Я — текст в комментарии, я не влияю на программу,
// как и код ниже
// require('путь_к_файлу.php');

Однострочный комментарий в PHP — две косые черты //. Код на той же строке после этих символов будет закомментированным. Чтобы убрать комментарий, надо удалить //.

Многострочный комментарий – это текст, который заключен вот в такую конструкцию:

/* Многострочный
текст
комментария */

Знакомимся с PHP-тегами

Главная страница нашего интернет-магазина готова. Добавим ещё две страницы на сайт: каталог и карточку одного товара.

Начнём с каталога.

Чтобы появилась новая страница, нужно создать сценарий. Сценарий — набор команд для решения задачи. Например, сценарий index.php собирает главную страницу магазина с помощью require.

Команда require подключает файл к текущей странице PHP кода. Данная команда используется, чтобы собрать страницу из отдельных компонентов (блоков).

Чтобы сделать новый сценарий, надо создать файл и дать ему название. Затем открыть файл в браузере, чтобы видеть результат работы сценария. После этого можно писать код. Файл для каталога нужно создать, он называется catalog.php.

Чтобы PHP-код работал, он должен находиться внутри PHP-тегов:

<?php // Открывающий PHP-тег
require('file.php'); // Какой-то PHP-код
?> // Закрывающий PHP-тег

Эти теги работают как сигнал. С их помощью мы как будто говорим «обратите внимание, внутри PHP-код».

Задание 1.1

  1. Добавьте в корневую папку файл catalog.php
  2. На 1 строке в catalog.php добавьте открывающий PHP-тег: <?php
  3. На 2 строке добавьте компонент шапки: require('components/header.php');
  4. На 3 строке catalog.php добавьте закрывающий PHP-тег: ?>

Склеивание файлов при подключении

Компонент шапки готов, добавим каталог и подвал с помощью require.

Как три отдельных файла превратятся в одну страницу?

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

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

Мы подключим ещё два файла в каталог:
1. components/products_list.php
2. components/footer.php
После этого убедимся, что подключённые компоненты появились на странице.

Важно

При проверке кода обязательно обращайте внимание на следующие моменты:

  • Каждую команду require нужно писать с новой строки, а в конце ставить точку с запятой ;
    Так мы сообщим PHP, что запись одной команды закончена и дальше будет другая команда.
  • В PHP есть и другие команды для подключения файлов. Например, include.

Почитать про команду include можно в спецификации (ссылка)

А узнать больше подробностей о подключении файлов можно в учебнике по PHP (ссылка)

Задание 1.2

  1. В файле catalog.php после подключения components/header.php подключите файл, в котором будет список продукции: components/products_list.php
  2. На следующей строке подключите файл footer: components/footer.php

Собираем страницу товара

Осталось собрать страницу с карточкой товара.

Тут мы уже всё знаем. Создаём новый сценарий:

  • добавляем файл
  • даём ему имя
  • пишем PHP-тег
  • подключаем шапку, контент и подвал с помощью require

Каждый require пишем с новой строки, в конце ставим ;

Проверяем в браузере нашу собранную страницу и убеждаемся, что страница собралась в нужном виде.

Готово!

Файл для страницы товара нужно создать, он будет называться product.php.

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

Задание 1.3

  1. Добавьте в корневую папку файл product.php в котором будет собираться карточка товара
  2. На 1 строке в этом файле напишите открывающий PHP-тег <?php
  3. На 2 строке подключите компонент шапки сайта components/header.php Не забудьте обернуть название файла в одиночные кавычки
  4. На следующей строке подключите компонент карточки товара components/product_info.php
  5. После этого подключите файл footer components/footer.php и закройте PHP-тег ?>

Меняем меню сайта на PHP

Добавим пункт «Блог» в меню сайта.

Обычно сайты состоят из нескольких HTML-страниц. Чтобы поправить шапку на всём сайте, надо пройтись по разметке каждой страницы и внести изменение. Чем больше страниц на сайте, тем больше времени может занять такая работа.

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

Добавим пункт Блог в меню и проверим, что шапка обновилась на всех страницах магазина.

Задание 1.4

  1. В файле header.php, который отвечает за шапку сайта, добавьте новый пункт меню:
  2. header.php
    <li>
        <a href="blog.html">
            Блог
        </a>
    </li>
  3. В браузере откройте ссылку Каталог и убедитесь, что в шапке сайта появился новый пункт меню Блог
  4. Затем перейдите на любой товар и проверьте, что изменения есть и на этой странице

Меняем футер сайта на PHP

Осталось внести ещё одну правку — указать в подвале сайта, что наша студия его разработала. Чтобы клиенты знали к кому обращаться за качественной работой.

Алгоритм такой же, как и при обновлении пункта меню:

  • добавляем абзац с текстом © СделалСам, в components/footer.php, и подвал обновится на всех страницах, где он подключён. Знак © вы сможете получить, если напишете специальный HTML код: &#169; (точка с запятой обязательны)

Кстати

Компоненты из папки components, с которыми мы работаем, — это шаблоны.

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

А пока добавим копирайт в подвал (в файл footer.php) и убедимся, что он и правда появится на всех страницах магазина.

Задание 1.5

  1. В файле footer.php добавьте абзац перед списком из меню в подвале:

    <p class="copyright">&#169; СделалСам, </p>

  2. В браузере откройте вкладку Каталог и убедитесь, что в подвале сайта появилось
    © СделалСам,
  3. Затем перейдите на страницу с продуктом и проверьте, что изменения есть и на этой странице.

Что такое переменные в PHP

Следующая задача.

Необходимо, чтобы на странице товара выводилась информация о разных товарах.

Сейчас на странице product.php подключён компонент с информацией о товаре. В этом компоненте пока нет настоящих данных. Наша цель добавить их и сделать так, чтобы данные менялись автоматически, когда пользователь выбирает определённый товар в каталоге. Для этого нужно добавить изменяющиеся данные в шаблон components/product_info.php

Для работы с изменяющимися данными во всех языках программирования существуют переменные.

Переменная — способ сохранить информацию под определённым именем.

Чтобы создать переменную, нужно её объявить, то есть задать ей имя. Например, вот так:

$product; // Объявили переменную $product

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

Чтобы сохранить в переменной какую-то информацию, нужно присвоить ей значение:

$product = 'люстра'; // Присвоили переменной $product значение 'люстра'

Подробнее о переменных и присваивании вы можете почитать в учебнике (ссылка).

Объявим в сценарии файла product.php переменную $title и сохраним в неё название товара.

Задание 1.6

  1. В файле product.php на 4 строке создайте переменную $title;. Не забудьте в конце про точку с запятой.
  2. На той же строке присвойте значение 'Люстра Леопом' этой переменной: $title = 'Люстра Леопом';
product.php
<?php
require('components/header.php');
// Создайте переменную здесь

require('components/product_info.php');
require('components/footer.php');

Добавляем PHP прямо в разметку

Мы сделали переменную, как теперь добавить её значение в шаблон?

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

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

В итоге в шаблоне будет вот такой код:

<h1><?php echo($title); ?></h1> // Добавили PHP-код в заголовок в шаблоне

Но как значение переменной попадает в шаблон? Мы объявили переменную в основном сценарии product.php, а после этого подключили шаблон components/product_info.php. Из-за склеивания файлов переменные из сценария видно в шаблоне. Если значение переменной будет меняться, изменится и значение на странице. Вот она, суперсила PHP!

Добавим значение переменной $title в шаблон и убедимся, что у товара появится название.

Задание 1.6

  1. Откройте папку components и зайдите в файл product_info.php
  2. Внутри тега h1 замените текст Название товара на <?php ?>
  3. Внутри PHP-тега напишите echo($title);
  4. Посмотрите на результат на странице описания товара.
  5. В редакторе вернитесь в product.php и замените значение $title на 'Стул Мелмо'
  6. Посмотрите на результат на странице описания товара.