# Неделя #2 Работа с данными из PHP. ООП и приемы работы в ООП стиле.


# Подготовка к выполнению задания

Изучить все материалы второй недели курса в Личном кабинете.

# Что нужно сделать?

# Выполнить домашнее задание #3

Задание выполняется в двух файлах. Файл src/functions.php содержит все функции. Функции именуются task1, task2, task3, с маленькой буквы, слитно. Файл с именем index.php содержит require(src/‘functions.php’); и вызов всех функций.

Задание #3.1

  1. Программно создайте массив из 50 пользователей, у каждого пользователя есть поля id, name и age:
  • id - уникальный идентификатор, равен номеру эл-та в массиве
  • name - случайное имя из 5-ти возможных (сами придумайте каких)
  • age - случайное число от 18 до 45
  1. Преобразуйте массив в json и сохраните в файл users.json
  2. Откройте файл users.json и преобразуйте данные из него обратно ассоциативный массив РНР.
  3. Посчитайте количество пользователей с каждым именем в массиве
  4. Посчитайте средний возраст пользователей

Задание выполняется в отдельном проекте.

Задача #3.2

  1. Скачайте верстку сайта “Бургерная”

  2. Внизу вы найдете форму заказа, напишите скрипт, обрабатывающий эту форму. Скрипт должен:

  3. Проверить, существует ли уже пользователь с таким email, если нет - создать его, если да - увеличить число заказов по этому email. Двух пользователей с одинаковым email быть не может.

  4. Сохранить данные заказа - id пользователя, сделавшего заказ, дату заказа, полный адрес клиента.

  5. Скрипт должен вывести пользователю:

Спасибо, ваш заказ будет доставлен по адресу: “тут адрес клиента”
Номер вашего заказа: #ID
Это ваш n-й заказ!

Где ID - уникальный идентификатор только что созданного заказа n - общий кол-во заказов, который сделал пользователь с этим email включая текущий

Оформление не требуется, достаточно текста на белом фоне, отбитого переходами строк.

# Выполнить домашнее задание #4

Задание #4.1. Практика с ООП

Представьте, что вы создаете сайт для компании сдающих автомобили поминутно (каршеринг). У компании есть ряд тарифов. Вам необходимо реализовать каждый тариф в своем классе. У каждого тарифа две основные характеристики - цена за 1 км, цена за 1 минуту. Каждый тариф обязан иметь метод для подсчета цены поездки. В некоторых тарифах возможно использование дополнительных услуг. Ваша задача - посчитать цену, которую получит пользователь, если проедет Х км и Y минут по тарифу Z.

Тариф базовый

  • Цена за 1 км = 10 рублей
  • Цена за 1 минуту = 3 рубля

Тариф почасовой

  • Цена за 1 км = 0
  • Цена за 60 минут = 200 рублей
  • Округление до 60 минут в большую сторону

Тариф студенческий

  • Цена за 1 км = 4 рубля
  • Цена за 1 минуту = 1 рубль

Дополнительные услуги (трейты):

  • Gps в салон - 15 рублей в час, минимум 1 час. Округление в большую сторону
  • Дополнительный водитель - 100 рублей единоразово

Ожидаемая реализация:

  1. Создать интерфейс, который будет содержать описание метода подсчета цены, метода добавления услуги (принимает на вход интерфейс услуги)
  2. Описать интерфейс доп. услуги, который содержит метод применения услуги к тарифу, который пересчитывает цену в зависимости от особенностей услуги
  3. Реализовать абстрактный класс тарифа, который будет описывать основные методы и имплементировать описанный в п.1 интерфейс
  4. Все тарифы должны наследоваться от абстрактного тарифа из п.2
  5. Описать 2 услуги реализовав интерфейс услуг

Пример вызова:

1. Тариф базовый(5 км, 1 час)
- добавить услугу GPS

= 5км * 10 руб / км + 60 мин * 3 руб / мин + 15 руб / час * 1 час = 50 + 180 + 15 = 245

Отправьте выполненое ДЗ на проверку наставнику

Дедлайн: Понедельник в 12.00.

# Как всё успеть?

Данный план является примерным ориентиром. Вы всегда можете работать в удобном для себя темпе.

# 🗓 Понедельник

Отправляем домашнее задание 2 на проверку наставнику

Изучаем материалы видеокурса "Работа с данными из PHP"

Приступаем к выполнению домашнего задания 3

# 🗓 Вторник

Продолжаем изучать материалы видеокурса "Работа с данными из PHP"

Работаем над домашним заданием 3

# 🗓 Среда

Работаем над домашним заданием 3

Изучаем материалы видеокурса "ООП и приемы работы в ООП стиле"

# 🗓 Четверг

Изучаем материалы по теме "ООП и приемы работы в ООП стиле"

Подготовьте вопросы и запишитесь на консультацию к наставнику (тариф "Уютный")

# 🗓 Пятница

Продолжаем изучать материалы видеокурса "ООП и приемы работы в ООП стиле"

Работаем над домашним заданием 4

# 🗓 Суббота

Изучаем материалы Workshop

Работаем над домашним заданием 4

# 🗓 Воскресенье

Доделываем домашнее задание 4

Отдыхаем