Advertisement
Guest User

concise-yii-test-task

a guest
May 2nd, 2023
693
1
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.00 KB | None | 1 0
  1. Окружение:
  2. PHP 8.*, Yii 2.*, MySQL 8.*
  3.  
  4.  
  5.  
  6. Задача:
  7. Добавить команду для генерации миниатюр.
  8.  
  9.  
  10.  
  11. Условия:
  12. В системе есть таблицы "product" и "store_product".
  13. В таблице "product" есть поля "id", "image" и "is_deleted", а в таблице "store_product" есть поля "id", "product_id" и "product_image".
  14. Связь между ними: `product`.`id`=`store_product`.`product_id`.
  15. Также в системе имеется класс Images, который умеет генерировать миниатюры. У класса есть два статичных публичных метода:
  16. generateMiniature() и generateWatermarkedMiniature(). Оба прининимают на вход следующие параметры:
  17. 1. Ссылку на картинку
  18. 2. Массив, в котором указана максимальная ширина и высота миниатюры в ключах 'width' и 'height' (пример: ['width'=>500, 'height'=>400])
  19.  
  20. В ответ либо возвращают ссылку на миниатюру, либо выбрасывают исключение. Класс в полноценном виде реализовывать не нужно, достаточно функций-заглушек.
  21. Можно использовать этот пример: https://pastebin.com/pBegYXgX
  22.  
  23.  
  24.  
  25. Описание:
  26. Необходимо, чтобы по команде yii <some-command> генерировались миниатюры для изображений для всех продуктов, которые не удалены.
  27. Команда должна принимать три именованных параметра:
  28. 1. sizes - обязательный, набор размеров миниатюр. Размеры разделюятся через запятую. Если ширина и высота разная, то они разделяются символом "x" (латиница).
  29. Пример формата: "100,200x300,500x600".
  30. 2. watermarked - опциональный, по умолчанию false. Накладывать ли водные знаки на миниатюру.
  31. 3. publishedOnly - опциональный, по умолчанию true. Искать только те товары, которые есть в обеих таблицах - "product" и "store_product"
  32.  
  33. Миниатюры должны генерироваться как для product.image, так и для store_product.product_image
  34. Учесть, что как product.image, так и store_product.image могут быть NULL.
  35. Сохранять данные нигде не надо.
  36. На выходе система должна выдать сообщение о том, сколько миниатюр было сгенерировано успешно и сколько сгенерировать не удалось.
Advertisement
Comments
Add Comment
Please, Sign In to add comment
Advertisement