Опис курсу:

У процесі поглибленого вивчення PHP Ви познайомитеся з методами і властивостями об'єктно-орієнтованого програмування і шаблонами проектування. Також дізнаєтеся про протоколи HTTP, MIME-типи контенту і управління кешем. Ми навчимо Вас передавати і зберігати важливу інформацію, шифрувати та хеширувати. Крім того, Ви навчитеся розпізнавати атаки і боротися з ними, дізнаєтеся про ін'єкції SQL і коду. Ми познайомимо Вас з фреймворками і MVC, розповімо про архітектуру, структуру проекту, конфігурації, встановлення та налаштування. Ви навчитеся віддаленому адмініструванню та налаштуванню хостингу. По завершенні розширеного курсу Ви станете повноцінним фахівцем в області PHP, готовим працювати з серйозними проектами.

Після вивчення курсу Ви зможете:

  • Володіти PHP досконало
  • Виконувати складні проекти, в т. ч. з використанням фреймворків
  • Претендувати на посаді Middle і Senior PHP Developer в ІТ-компаніях
  • Брати проекти як freelancer
  • Організувати власний проект (start-up).

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

  • Введення в курс. Налаштування робочого оточення
    • Введення в курс
    • Налаштування робочого оточення в Cloud9
    • Знайомство з командним рядком Linux
    • Знайомство з Git. Реєстрація на GitHub і створення сховища
  • ООП
    • ООП
    • Класи і об'єкти
    • Властивості і методи
    • Конструктор і деструктор
    • Спадкування класів
    • Поліморфізм
    • Абстрактний клас і Інтерфейс
    • Інкапсуляція і видимість властивостей та методів
    • Обробка помилок і виключень
    • Неймспейси
    • Створення простого ООП-калькулятора (практика)
  • MVC і введення в фреймворк Symfony
    • MVC
    • Огляд фреймворку Symfony
    • Установка фреймворка
    • Огляд Composer
    • Архітектура фреймворка (додаток, бандли, бібліотеки і т. д.)
    • Розуміння процесу обробки HTTP-запит
    • Розуміння робочого оточення (девелопмент, стейджінг, продакшн)
    • Розуміння концепту «Bundle»
    • Структура програми
    • Створення простої сторінки (практика)
  • Роутінг і генерація CRUD
    • Створення простого роутінга
    • Створення роута з параметрами
    • Створення Рауса з параметрами за замовчуванням
    • Просунута робота з роутингом
    • Створення CRUD-додатки з консолі
    • Створення базових порожніх сторінок додатку (практика)
  • Контролер
    • Простий контролер
    • Прив'язка рута до контролера
    • Рендер шаблонів
    • Доступ до сервісів в контролері
    • Обробка помилок і 404 сторінка
    • Робота із запитом, клас Request
    • Робота з сесією
    • Робота з класами Request і Response
    • Робота з JSON
    • Робота з файлом
  • Шаблони
    • Створення і використання шаблонів
    • Знайомство з Twig
    • Змінні, цикли і умови в шаблоні
    • Спадкування шаблонів
    • Поділ на Template і Layout
    • Відображення шаблонів в інших шаблонах
    • Створення посилань в шаблонах
    • Робота з Ассет (JS/CSS)
    • Фільтрація виведення, захист від XSS-атак
    • Інтеграція Bootstrap 3 і створення шаблону (практика)
  • База даних і ORM (Частина 1)
    • Налаштування підключення до БД
    • Поняття ORM
    • Створення бази даних додатки
    • Створення суті ORM (entity)
    • Меппінг даних
    • Автоматичне створення таблиці на основі сутності
    • Збереження/редагування/знищення об'єкта з бази даних
    • Вибірка даних з бази
    • Запити через DQL
    • Запити через QueryBuilder
    • Захист від SQL ін'єкція
    • Винесення складних запитів в клас репозитария
    • Створення перших таблиць для додатка (практика)
  • База даних і ORM (Частина 2)
    • Створення пов'язаних таблиць один-ко-многим, багато-до-багатьох
    • Збереження даних в зв'язаних таблицях
    • Вибірка даних в зв'язаних таблицях
    • Об'єднання таблиць JOIN
    • Автоматична заповнення таблиці тестовими даними (практика)
    • Створення інших таблиць для додатка (практика)
  • Робота з формами
    • Створення простої форми
    • Візуалізація форми в шаблоні
    • Обробка даних форми
    • Валідація форми
    • Вбудовані елементи форми
    • Генерація форми з консолі
    • Створення класу форми
    • Стилізація форми
    • Створення сторінки реєстрації користувача (практика)
    • Відправлення пошти після реєстрації (практика)
    • CSRF-захист
  • Авторизація і аутентифікація, клас Security
    • Аутентификация і Авторизація в чому відмінність
    • Огляд класу Security
    • Налаштування аутентифікації
    • HTTP базова аутентифікація
    • Шифрування пароля
    • Створення ролей
    • Створення сторінки логіна і логаута (практика)
    • Створюємо можливість авторизувати користувачів з бази даних (практика)
  • Створення програми
    • Створення сторінки перегляду резюме (практика)
    • ДЗ: створення сторінки перегляду вакансії
  • Створення програми
    • Створення сторінки додавання резюме (практика)
    • Завантаження зображення на сервер і обжимка зображення (практика)
    • Завантаження word/txt файлу на сервер (прикріплення до резюме) (практика)
    • ДЗ: створення сторінки вакансії
  • Створення програми
    • Створення сторінки пошуку резюме (практика)
    • Додавання посторінковою навігації (практика)
    • Додавання сортування (практика)
    • Додавання фільтрів (пошук по місту, по зарплаті, по категорії)
  • Установка LAMP-стека з нуля, настройка хостингу
    • Встановлення та налаштування Apache
    • Установка MySQL
    • Установка PHP і модулів
    • Робота з декількома сайтами на одному сервері
    • Створення CRON-завдань
    • Віртуальний хостинг і VPS
    • Домен, реєстрація і настройка
    • Налаштування DNS-серверів
    • Робота з Vagrant
  • Юніт-тести, код рев'ю і якостей коду
    • Навіщо потрібні юніт-тести
    • Розробка через тестування
    • Знайомство з PHPUnit, Codeception, Behat
    • Види юніт-тестів, інтеграційні тести, Автотест
    • Поняття безперервна інтеграція, білд сервери Jenkins, Bamboo
    • Система код рев'ю
    • Система автоматичного моніторингу коду Sonar

Мінімальні вимоги:

  • Засвоєна програма базового курсу PHP

* Вказані знижки не сумуються з іншими діючими акціями та спеціальними пропозиціями. Якщо у Вас виникли питання, звертайтеся за консультацією до наших менеджерів!