spinner-it

Курс PHP (продвинутый)

Старт обучения
Дату уточните у администрации
51 час. по 2-3 раза в неделю

Описание курса

В процессе обучения ты познакомишься с методами и свойствами объектно-ориентированного программирования и шаблонами проектирования. Также узнаешь о протоколах HTTP, MIME-типах контента и управлении кэшем.

 

Мы научим тебя передавать и хранить важную информацию, шифровать и хэшировать. Ты научишься распознавать атаки и бороться с ними, узнаешь об инъекциях SQL и кода. Мы познакомим тебя с фреймворками и MVC, расскажем об архитектуре, структуре проекта, конфигурации, установке и настройке.

 

Ты обучишься удалённому администрированию и настройке хостинга. По завершении продвинутого курса ты станешь полноценным Junior PHP Developer.

После курса вы сможете:

  • Владеть PHP в совершенстве
  • Выполнять сложные проекты, в т.ч. с использованием фреймворков
  • Претендовать на должность Junior Developer в ІТ-компаниях
  • Брать проекты на фрилансе
  • Организовать собственный стартап
Смотреть работы выпускников

Программа курса:

1. Основы Linux

  • Установка Ubuntu
  • Серверная и десктопная версия
  • Базовые команды Linux
  • Установка веб-сервера Nginx
  • Установка PHP
  • Установка MySQL
  • Деплой Symfony-приложения на DigitalOcean

2. Основы Git

  • Установка и настройка
  • Команды Git
  • Обзор GitHub, GitLab и Bitbucket
  • Создание проекта и заливка на GitHub

3. Composer

  • Установка и настройка
  • Автозагрузчик классов
  • Обзор официального репозитория Packagist
  • Создание собственных пакетов

4. PHP 7.x

  • Новые возможности PHP 7.0
  • Новые возможности PHP 7.1
  • Новые возможности PHP 7.2
  • Новые возможности PHP 7.3
  • Новые возможности PHP 7.4

5. ООП

  • Инкапсуляция
  • Наследование
  • Полиморфизм
  • Классы и Объекты
  • Абстрактные классы
  • Интерфейсы
  • Методы класса
  • Статические методы
  • Магические методы
  • Константы
  • Трейты
  • Исключения
  • Неймспейсы
  • Автозагрузка
  • Композиция вместо наследования

6. Стандарты PSR

  • Обзор стандартов PSR-0, PSR-4 и PSR-1, PSR-2

7. Шаблоны проектирования, SOLID, DRY, KISS, YAGNI

  • Основные порождающие шаблоны
  • Основные структурные шаблоны
  • Основные поведенческие шаблоны

8. Reflection API

  • PHPDoc
  • phpDocummentor
  • Аннотации

9. Standard PHP Library (SPL)

  • Структуры данных
  • Итераторы
  • Основные классы и функции

10. Безопасность в PHP

  • Основные типы атак
  • Шифрование
  • Хеширование
  • Стандартные практики по защите веб-приложений
  • Symfony Security компонент

11. Отладка, предупреждение ошибок, профилирование, оптимизация

  • Какие бывают типы ошибок в PHP, иерархия классов исключений
  • Конструкция try-catch-finally
  • Создание собственных классов исключений
  • Логирование ошибок и его важность
  • Профилирование кода
  • Отладка xDebug, анализ чужого кода

12. REST

  • Обзор архитектуры REST
  • Модель зрелости REST-сервисов
  • HATEOAS
  • Стандарт HAL
  • Спецификация JsonAPI
  • Клиент Guzzle
  • FOSRestBundle для Symfony

13. Тестирование

  • Юнит тесты
  • Функциональные тесты
  • Фреймворки для тестирования Codeception, PHPUnit, Symfony PHPUnit Bridge
  • CI-сервисы: Travis CI, Scrutinizer CI

14. Использование Docker. Контейнеризация приложения

  • Введение в docker
  • Что такое контейнер?
  • Отличие docker от vagrant
  • Введение в docker-compose
  • Создание LEMP стека на базе docker

15. СУБД MySQL

  • Объединение таблиц
  • Индексы
  • Оптимизация запросов и команда EXPLAIN
  • Транзакции
  • Триггеры и хранимые процедуры
  • Движки InnoDB & MyISAM

16. Сервисная архитектура

  • Понятие сервисов
  • Контейнеры
  • Dependency Injection

17. Обзор популярных фреймворков

  • Zend Framework
  • Yii Framework
  • Phalcon Framework
  • Laravel Framework
  • Symfony Framework

18. MVC и Symfony 4 фреймворк

  • Установка и настройка
  • Создание простой страницы
  • Роутинг
  • Twig
  • Doctrine ORM

19. Компоненты Symfony

  • Yaml
  • Filesystem
  • Finder
  • Console
  • Process
  • PHPUnit Bridge
  • Validator
  • Form

Минимальные требования:

  • Базовый уровень работы с PHP, HTML, CSS, JS
  • Основы языка SQL и знание, что такое релляционная база данных
  • Наличие собственного ноутбука для занятий в аудиториях
  • Базовое знание Unix-систем будет плюсом

Для освоения курса вам понадобится:

 

1. ОС Linux (желательно ветка Debian). Пример установки дистрибутива Linux — Ubuntu, можно посмотреть здесь

2. Nginx. Это веб-сервер и почтовый прокси-сервер, работающий на Linux и подобных ОС. Пример установки nginx на Ubuntu

3. Apache. Как альтернативный веб-сервер, можете скачать и другой популярный сервер — Apache. Скачать можно по ссылке

4. PHP. Интерпретатор скриптового языка программирования, который мы будем использовать для разработки. Пример установки PHP на Ubuntu

5. Mysql сервер. Представляет собой базу данных для хранения и управления данными в виде таблиц. Пример установки на Ubuntu

6. PHPStorm. Интегрированная среда разработки, которая «понимает» код и обеспечивает первоклассную поддержку продуктам PHP. Скачать можно по ссылке. Как альтернативу можно использовать любую другую среду.

 

Лекторы:

 

 

* Примечание: указанные скидки не суммируются с другими действующими акциями и специальными предложениями. Скидка применяется только к новым заявкам и при условии полной оплаты. Если у Вас возникли вопросы, обращайтесь за консультацией к нашим менеджерам!