PHP программирование. Базовый курс

17 июня

Цели курса PHP программирования:

  • Получение учащимися навыков и знаний, необходимых для создания сайта средней сложности (например, интернет-магазина с простой одностраничной формой заказа).

  • Создание прототипа рабочего проекта в процессе курса.

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

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

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

После окончания курса Вы сможете:
  • Начать карьеру PHP-программиста

  • Стать фрилансером, разместив и легко зарабатывать, делая сайты и различные приложения

  • Написать на PHP собственный интернет-магазин

  • Начать собственный стартап 

Программа курса PHP программирование:

Модуль 1. Основные интернет технологии (world wide web)

  • Базовые технологии

    • Клиент-серверная архитектура приложения, понятия “клиент”, “сервер”, “протокол”, URI, IP-адрес, DNS-сервер.

    •  Протоколы передачи данных (TCP/IP, UDP, HTTP, HTTPS, FTP) - краткий обзор преимуществ и недостатков

    • Принцип работы современных браузеров (запрос на URI, получение ответа, рендеринг содержимого)

    • Структура протокола HTTP (стартовая строка, заголовок, тело сообщения)

    • Основные методы HTTP (GET, POST, HEAD)

    • Понятие HTTP заголовка (назначение заголовка - управление поведением взаимодействия клиента и сервера, формат заголовка :)

    • Тело сообщения. Краткая история языка HTML 

  • Серверные веб-технологии

    • Краткий обзор языков, используемых  для разработки серверов (PHP, ruby, Java)

    • Интерпретируемые и компилируемые языки - преимущества и недостатки

    • Основные составные части серверов

      • веб-сервер Apache, Nginx - сферы применения, преимущества, недостатки

      • Постоянные хранилища данных (mysql, postgresql, nosql (mongoDB, redis)) - краткий обзор, основные отличия.

      • Понятие “кеширующего слоя БД”. Memcached.

  • Введение в PHP.

    • история

    • кто использует (vk, rutracker, игры)

  • Подготовка инструментария.

    • Denwer - быстрый старт

    • IDE - phpStorm.

    • Преимущества IDE (автокомплит, рефакторинг, интеллектуальный поиск)

Практическая часть: установка и настройка необходимого инструментария для начала работы.

Модуль 2. Основы синтаксиса

  • Формы включения PHP кода внутрь страницы  и почему лучше разделять PHP и HTML.

  • Передача данных из HTML формы в php

  • Разделение выражений. Комментарии.

  • Правила именования переменных. Константы.

  • Типы данных. Опасность неявных преобразований (0==NULL, “0”!=NULL)

  • Операторы и операнды.

  • Условные конструкции

    • if

    • else

    • elseif/else if

    • Альтернативный синтаксис (не рекомендуется!)

    • switch

  • Циклические конструкции

    • while

    • do-while

    • for

    • foreach

  • Пропускающие и прерывающие конструкции

    • break

    • continue

  • Подключающие конструкции

    • require

    • include

    • require_once

    • include_once

    • отличия require и include

    • проблемы быстродействия при использования require_once и include_once

    • autoload

  • Конструкция возврата значения

    • return

  • Исключения (try catch throw)

  • Прочие конструкции

    • declare

    • goto

Практическая часть: создание формы обратной связи с фильтрацией входных параметров

Модуль 3. Массивы и функции

  • Массивы. Различные типы массивов в PHP (ассоциативный и простой)

  • Функции.

  • Функции для работы с массивами.

  • Создание библиотек.

Практическая часть: научить форму обратной связи отсылать e-mail. Создание каркаса каталога (из списка статических файлов)

Модуль 4. Основные функции ядра языка PHP

  • Математические функции.

  • Функции для работы со временем.

  • Функции для работы со строками.

Практическая часть: Научить показывать “магазин закрыт”, если серверное время не попадает во время работы магазина или сегодняшний день - выходной.

Модуль 5. ООП

  • ООП - доминантная парадигма. Почему?

  • Понятие объекта, метода и поля класса

  • Принципы ООП - наследование, инкапсуляция, полиморфизм

  • Абстракция как основной элемент программы

  • Объектно-ориентированное программирование в PHP.

  • Магические методы

  • Паттерны программирования

  • MVC

  • Пространства имен

  • Трейты

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

Модуль 6. Введение в работу с базами данных в PHP.

  • Реляционная модель СУБД

  • Нормальные формы БД. Приведение БД в 3 нормальную форму.

  • Обзор возможностей PHP по поддержке работы с разными СУБД.

  • Административные возможности СУБД MySQL.

  • Взаимодействие PHP и MySQL.

  • Расширение PHP Data Objects.

Практическая часть: Создание структуры базы каталога, вывод данных из базы на странице каталога.

Модуль 7. Шаблоны

  • Шаблонизаторы

  • Smarty. Установка и настройка

  • Smarty. Краткий обзор синтаксиса

  • Высокопроизводительные шаблонизаторы. Blitz

Практическая часть: перевод представлений на smarty

Модуль 8. Файловая система

  • Принципы взаимодействия с файлами и директориями средствами PHP.

  • Загрузка файла через форму.

Практическая часть: форма загрузки данных о товаре

и многое другое!