Модуль 1
177,00ч

Учебный модуль 1. PHP-разработка: Часть 1. PHP- разработчик. Базовый уровень. Часть 2. PHP Фреймворк Symphony

Основные темы учебного модуля:

Особенности применения языка PHP.
Понятие строки и цикла. Операторы для работы в циклах.
Понятие функции, её параметры и вызов, области видимости. Операторы функций.
Понятие класса, метода и объекта.
Понятие инкапсуляции. Геттеры и сеттеры.
Понятие ошибки и исключения, уровни вывода. Обработчики ошибок.
Методы HTTP-запросов и обработки данных.
Составляющие фреймворка Symfony: маршрутизация, шаблонизация, сервисы и разрешение зависимостей.
Запуск встроенного веб-сервера, настройка PhpStorm.
Как работают flex'ы https://flex.symfony.com/ и что такое рецепты (recipes).
Как устанавливать рецепт с шаблонизатором, как использовать, выводить шаблонизатор и выполнять в нём код.
Интеграция вёрстки и подключение ассетов.
Что такое сервис в философии Symfony: нюансы конфигурирования фреймворка и сервисов внутри него.
— Autowiring — автоматическое разрешение зависимостей.
— Установка компонента Encore для работы с Webpack.
— Перенос текущих assets на webpack.
Работа с переменными окружения и как их шифровать. Создание своих сервисов. Подключение библиотеки для генерации кода.
Работа с репозиториями, с Query Builder, привязкой сущностей к контроллеру.
Часов в программе
66,00 часов
лекции
91,00 час
практика
20,00 часов
промежуточная аттестация
177,00 часов
всего
Материально-технические условия реализации программы:
Вид занятий: лекционные и практические.
Требуемое ПО:
Любая современная операционная система. Установленный интерпретатор с python.org и любая привычная IDE.
Операционная система, программы Microsoft Excel, Microsoft Power Point, Power BI, MySQL, GitHub.
Информационные ресуры
1. Что должен знать «PHP Junior Developer без опыта работы»: https://habr.com/ru/post/226327/
2. Symfony Framework — руководство для новичков: https://senior.ua/articles/symfony-framework--rukovodstvo-dlya-novichkov
Образовательные ресуры
Реализация программы дополнительного профессионального образования предусматривает использование дистанционных образовательных технологий, применяемых для преподавания теоретических разделов учебных модулей, выполнения практических ситуаций, а также для промежуточной аттестации, применяемой с использованием асинхронной формы проведения занятий.

Асинхронное обучение — это метод доставки учебного материала обучающемуся с помощью размещения контента учебного курса на платформе дистанционного образования Skillbox 2.0. Преподаватель и обучающийся не контактируют напрямую.

Лекционные занятия представлены в виде видеоконтента (электронный учебный курс). Обучающийся на программе профессиональной переподготовки получает бесплатный доступ к электронной библиотечной системе Znanium.

Учебно-методические материалы

Методы, формы и технологии

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

Асинхронное обучение — это метод доставки учебного материала обучающемуся с помощью размещения контента учебного курса на платформе дистанционного образования Skillbox 2.0. Преподаватель и обучающийся не контактируют напрямую.

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

Каждый слушатель в течение всего периода обучения обеспечивается индивидуальным неограниченным доступом к электронно-библиотечной системе Znanium и электронной информационно-образовательной среде.

Методические разработки

Рекомендации по проведению обучения для лиц с ОВЗ.

Материалы курса

Понятие веб-приложения, frontend-а и backend-а. Язык PHP: для чего используется и как выглядит.
Переменные и типы данных (обзор). Числа (целые и с плавающей точкой). Операторы сравнения чисел. Арифметические операторы. Инкремент и декремент. Boolean. Значение null и работа с ним.
Понятие строки, конкатенация строк, длина строки, работа с символами строк. Понятие цикла. Цикл for. Цикл foreach. Циклы while и do/while. Операторы для работы в циклах: break и continue. Понятие функции. Параметры функции. Типизация параметров и возвращаемых значений. Передача параметров по ссылкам и по значениям. Рекурсивный вызов функций. Области видимости.
Понятие класса, метода и объекта. Поля (переменные) классов и константы. Параметры методов и возвращаемые значения. Конструкторы. Статические поля и методы. Наследование классов. Переопределение. Абстрактные классы. Traits (трейты). Понятие инкапсуляции. Геттеры и сеттеры.
Операторы/функции require/include. Операторы/функции require_once/include_once. Автоподгрузка классов. Чтение файлов. Запись файлов. Формат JSON. Формат XML.
Понятие ошибки и исключения, уровни вывода. error_reporting, display_errors. Логирование ошибок. Обработчики ошибок.
Протокол HTTP. Запрос и ответ.
Методы HTTP-запросов GET и POST.
Другие методы HTTP-запросов.
Статус-коды HTTP-ответов.
HTTP-заголовки.
Версии протокола HTTP и HTTPS.
Обработка данных, переданных в GET-запросе. Получение файлов (массив $_FILES). Формирование ответа PHP-скриптом.
SQL: SELECT, JOIN, ORDER BY, GROUP BY, INSERT, UPDATE, DELETE.
MySQL.
Группировка.
Подзапросы.
Составляющие фреймворка Symfony, маршрутизация, шаблонизация, сервисы и разрешение зависимостей. Как устанавливать фреймворк, как настраивать Git, первый запуск проекта. Структура проекта Symfony, запуск встроенного веб-сервера, настройка PhpStorm. Как создавать первую страницу через файлы конфигурации — YAML, как создавать страницы через аннотацию. Как работают flex'ы https://flex.symfony.com/ и что такое рецепты (recipes). Как устанавливать рецепт с шаблонизатором, как использовать, выводить шаблонизатор и выполнять в нём код. Что такое дебаг-бар, профайлер, Var-Dumper, пакеты и их распаковка. Интеграция вёрстки нашего проекта, установка компонента assets, подключение ассетов с помощью вспомогательной функции. Что такое генератор URL и именованные маршруты. Разбор добавления блока в Twig — функция parent(), добавление маршрута, доступного только для метода POST, генерация ответа в формате JSON — объект JsonResponse.
— Что такое сервис в философии Symfony.
— Autowiring — автоматическое разрешение зависимостей.
— Установка компонента Encore для работы с Webpack.
— Перенос текущих assets на webpack.
Нюансы конфигурирования фреймворка и сервисов внутри него. Работа с переменными окружения и как их шифровать. Создание своих сервисов. Подключение библиотеки для генерации кода, создание команд для консольного приложения. Разбор компонента Twig. Работа с функционалом Twig: блоками, фильтрами. Разбор системы расширений. Создадим своё расширение для Twig.
Изучение нового компонента в Symfony — Doctrine ORM.
Установка Orm, описание сущности, создание миграции, сохранение и чтение сущности.
Работа с репозиториями, с Query Builder, привязкой сущностей к контроллеру. Познакомимся с миграциями на обновление таблиц и обновление сущностей.
Изучение:
— Создание фикстур.
— Подключение библиотеки faker.
— Подключение расширения sluggable.
— Подключение расширения timestamaple.
— Решение проблем при ошибках миграции.
Как в Doctrine устроены связи. Первый вид связи — «один ко многим». Создание и работа с этой связью — выбирать и сохранять объекты.
«Многие ко многим», доработаем фикстуры. У комментариев должна быть своя отдельная фикстура.
Изучение:
— Создание объекта User.
— Создание формы авторизации.
— Файрволы и аутентификаторы.
— Команда make:auth.
Второй аспект компонента — это авторизация. Что такое роли, как манипулировать авторизованными пользователями, разрешать или запрещать посещение различных разделов на сайте либо выполнение каких-либо действий.
Авторизация по API с использованием авторизационных токенов.
Основные возможности компонента форм в Symfony.
— Подключение и использование компонента symfony/forms.
— Создание формы с использованием компонента.
— Подключение объектов ORM к форме.
— Всплывающие (flash) сообщения.
— Типы полей в формах.
— Преобразование данных из формы.
— Подгрузка данных для выпадающего списка.
— Сохранение связи.
Как в Symfony реализована валидация данных формы и вывод ошибок. Вывод форм в Twig-шаблонах, возможности кастомизации вывода полей. Создание формы редактирования статьи. Переведём форму регистрации на компонент формы.
Компонент Symfony form. О расширении полей, расширении форм, Data Transfer Object и о кастомной валидации.
Как организовать загрузку файлов в Symfony. Как с помощью компонента веб-формы загрузить и сохранить файл. Компонент файловой системы. Реализуем загрузку изображений для статей.
Компонент mailer и отправка почтового уведомления. Создание уведомлений, вкладка вложения, генерирование рассылки и работа со стилями. Встроенный во фреймворк Symfony компонент — это система событий (events dispatcher). Принцип его работы и улучшение кода, используя возможности этого компонента.

Учебная литература

1. Локхарт, Д. Современный РНР. Новые возможности и передовой опыт / Джош Локхарт; пер. с англ. Р. Н. Рагимова. — Москва: ДМК Пресс, 2016. — 304 с. — ISBN 978-5-97060-184-6. — Текст: электронный. — URL: https://znanium.com/catalog/product/1028044
2. Вагин, Д. В. Современные технологии разработки веб-приложений: учебное пособие / Д. В. Вагин, Р. В. Петров. — Новосибирск: Изд-во НГТУ, 2019. — 52 с. — ISBN 978-5-7782-3939-5. — Текст: электронный. — URL: https://znanium.com/catalog/product/1866926
3. Кардос Лопес, Б. LIYM: инфраструктура для разработки компиляторов / Бруно Кардос Лопес, Рафаэль Аулер; пер. с англ. А. Н. Киселева. — Москва: ДМК Пресс, 2015. — 342 с. — ISBN 978-5-97060-305-5. — Текст: электронный. — URL: https://znanium.com/catalog/product/1028074
4. Лежебоков, А. А. Программные средства и механизмы разработки информационных систем: учебное пособие / Лежебоков А. А. — Таганрог: Южный федеральный университет, 2016. — 86 с.: ISBN 978-5-9275-2286-6. — Текст: электронный. — URL: https://znanium.com/catalog/product/997088
5. Фаррелл, Б. Веб-компоненты в действии: практическое руководство / Б. Фаррелл; пер. с англ. Д. А. Беликов. — Москва: ДМК Пресс, 2020. — 462 с. — ISBN 978-5-97060-856-2. — Текст: электронный. — URL: https://znanium.com/catalog/product/1210671
6. Беспалов, Д. А. Операционные системы реального времени и технологии разработки кроссплатформенного программного обеспечения. Часть 2: учебное пособие / Д. А. Беспалов, С. М. Гушанский, Н. М. Коробейникова; Южный федеральный университет. — Ростов-на-Дону; Таганрог: Издательство Южного федерального университета, 2019. — 168 с. — ISBN 978-5-9275-3368-8. — Текст: электронный. — URL: https://znanium.com/catalog/product/1088205

Темы

1.1. Введение в программирование на PHP 1.2. Переменные, числа и boolean 1.3. Условные операторы и булева алгебра 1.4. Строки и массивы 1.5. Циклы 1.6. Функции: создание и использование 1.7. Рекурсия, callback и анонимные функции 1.8. Классы, методы и объекты 1.9. Наследование и абстрактные классы 1.10. Интерфейсы и полиморфизм 1.11. Модификаторы доступа, геттеры и сеттеры 1.12. HTML/CSS 1.13. Подключение frontend к backend 1.14. Разделение приложения на файлы 1.15. Работа с файлами и сетью 1.16. Обработка ошибок, Exceptions и логи 1.17. Протокол HTTP 1.18. Обработка GET- и POST-запросов, header, куки и сессии 1.19. REST и RESTful API 1.20. Язык запросов SQL 1.21. Работа с базами данных в PHP 1.22. Фреймворк Laravel 2.1. Введение в Symfony 2.2. Основы Symfony 2.3. Шаблонизатор Twig 2.4. Библиотека работы с базой данных Doctrine Orm 2.5. Фикстуры и расширения Doctrine 2.6. Связи в Doctrine 2.7. Система аутентификации 2.8. Роли, уровни доступов и безопасности 2.9. Доступы по API 2.10. Регистрация и классы Voter 2.11. Знакомство с компонентом форм 2.12. Валидация, вывод и обработка формы 2.13. Расширение полей и кастомная валидация 2.14. Загрузка файлов в Symfony 2.15. Сервис отправки электронных писем 2.16. Система событий 2.17. Создание переиспользуемых бандлов для Symfony
Лекции
2,00ч
Практические занятия
1,00ч
Всего
3,00ч
Лекции
2,00ч
Практические занятия
2,00ч
Всего
4,00ч
Лекции
2,00ч
Практические занятия
2,00ч
Всего
4,00ч
Лекции
2,00ч
Практические занятия
2,00ч
Всего
4,00ч
Лекции
2,00ч
Практические занятия
2,00ч
Всего
4,00ч
Лекции
2,00ч
Практические занятия
2,00ч
Всего
4,00ч
Лекции
2,00ч
Практические занятия
2,00ч
Всего
4,00ч
Лекции
2,00ч
Практические занятия
2,00ч
Всего
4,00ч
Лекции
2,00ч
Практические занятия
2,00ч
Всего
4,00ч
Лекции
2,00ч
Практические занятия
2,00ч
Всего
4,00ч
Лекции
2,00ч
Практические занятия
2,00ч
Всего
4,00ч
Лекции
2,00ч
Практические занятия
2,00ч
Всего
4,00ч
Лекции
2,00ч
Практические занятия
2,00ч
Всего
4,00ч
Лекции
2,00ч
Практические занятия
2,00ч
Всего
4,00ч
Лекции
2,00ч
Практические занятия
2,00ч
Всего
4,00ч
Лекции
2,00ч
Практические занятия
2,00ч
Всего
4,00ч
Лекции
2,00ч
Практические занятия
2,00ч
Всего
4,00ч
Лекции
2,00ч
Практические занятия
2,00ч
Всего
4,00ч
Лекции
2,00ч
Практические занятия
2,00ч
Всего
4,00ч
Лекции
2,00ч
Практические занятия
2,00ч
Всего
4,00ч
Лекции
2,00ч
Практические занятия
2,00ч
Всего
4,00ч
Лекции
2,00ч
Всего
2,00ч
Лекции
2,00ч
Практические занятия
2,00ч
Всего
4,00ч
Лекции
2,00ч
Практические занятия
2,00ч
Всего
4,00ч
Лекции
2,00ч
Практические занятия
2,00ч
Всего
4,00ч
Лекции
2,00ч
Практические занятия
2,00ч
Всего
4,00ч
Лекции
1,00ч
Практические занятия
3,00ч
Всего
4,00ч
Лекции
2,00ч
Практические занятия
6,00ч
Всего
8,00ч
Лекции
1,00ч
Практические занятия
3,00ч
Всего
4,00ч
Лекции
1,00ч
Практические занятия
3,00ч
Всего
4,00ч
Лекции
1,00ч
Практические занятия
3,00ч
Всего
4,00ч
Лекции
1,00ч
Практические занятия
3,00ч
Всего
4,00ч
Лекции
1,00ч
Практические занятия
3,00ч
Всего
4,00ч
Лекции
1,00ч
Практические занятия
3,00ч
Всего
4,00ч
Лекции
1,00ч
Практические занятия
3,00ч
Всего
4,00ч
Лекции
1,00ч
Практические занятия
3,00ч
Всего
4,00ч
Лекции
1,00ч
Практические занятия
3,00ч
Всего
4,00ч
Лекции
1,00ч
Практические занятия
3,00ч
Всего
4,00ч
Лекции
1,00ч
Практические занятия
3,00ч
Всего
4,00ч
Промежуточная аттестация 20,00 часов
Промежуточная аттестация по Учебному модулю 1 ""PHP-разработка"" проводится путем выполнения практического задания.