-
Решение manifest for yiisoftware/yii2-php:latest not found
При попытке скачать образ yii2-php с docker-hub Вы, вероятно, получите ошибку manifest … not found. В короткой статье я расскажу, как решить эту проблему. Итак, проблема говорит, что docker не может найти :latest-версию репозитория. Согласно официальному ответу нужно использовать явное указание версии, которая Вам нужна. На момент написания статьи список версий выглядит так: 7.2-apache 7.1-apache […]
-
Мультиязычный сайт на Yii2
Вопрос мультиязычности сайта стоит достаточно часто. В этой статье постараюсь помочь Вам в вопросе реализации мультиязычности сайта на Yii2. Когда стала задача — решил посмотреть, что нового предложит мне Гугл и наткнулся на прекрасную статью. Не буду перекопировать контент — ознакомиться с детальным мануалом Вы можете здесь. На GitHub функционал доступен по этой ссылке. Выражаю […]
-
Yii2. Как проверить, запущено ли приложение из консоли?
Иногда на общих методах бывает необходимость по-разному обрабатывать запрос в зависимости от источника вызова приложения — консоль или браузер. В этой статье пример свойства, которое поможет определить этот момент. На просторах интернета есть много примеров реализации — использование is_a, instanceof, внутренние константы и т.д. Все они хороши, но команда Yii2 всё сделала за нас и […]
-
Yii2. Как прокрутить страницу к первому полю с ошибкой после валидации?
Очень удобная для пользователя фишка — прокрутка страницы к первому полю с ошибкой в случае неуспешной валидации. В этой статье я напишу, как можно просто прокрутить страницу к первой ошибке после валидации yii2. Приведу пример с реального проекта: /** * Прокрутка полсле неудачной валидации */ $(«#form»).on(«afterValidate», function (event, messages) { if(typeof $(«.has-error»).first().offset() !== «undefined») { […]
-
Yii2. Как добавить в OR несколько условий с LIKE?
Возможна ситуация, когда нужно делать запрос с LIKE-поиском по нескольким полям, но при этом с условием OR. В этой статье пример реализации на Yii2 данной задачи. Всё, на самом деле, просто. Приведу пример: $query->andFilterWhere([ ‘or’, [‘like’, ‘first_name’, $nameFromQuery], [‘like’, ‘last_name’, $nameFromQuery], [‘like’, ‘middle_name’, $nameFromQuery] ]); Выше привел конструкцию, которая при условной поисковой фразе «Ивано» сгенерирует […]
-
Yii2. Queue. Как установить time_limit (max_execution_time)?
Работа с очередями позволяет распараллелить некоторые процессы и\или вынести особо время затратные задачи в очередь. В этой статье я раскажу, как изменить лимит времени на выполнение задачи (max_execution_time). Общие принципы работы с yii2-queue я описывал ранее здесь. Первая мысль, что мне пришла, когда я увидел сообщение об ошибке о завершении таска из-за временного лимита — […]
-
Yii2. Как валидировать массив с данными?
В процессе разработки часто в качестве атрибута может выступать массив с данными, которые также нужно валидировать. В Yii2 есть необходимый валидатор, о котором мы часто забываем. В этой статье — пример работы с валидатором each для валидации элементов массива. Собственно все достаточно просто. И отлично описано в документации. Другими словами — при помощи EachValidator мы […]
-
Php. Как сгенерировать ZIP-архив?
Сегодня постараемся разобраться с вопросом генерации ZIP-архива средствами php. На авторство решения не претендую — когда столкнулся с задачей — нашел данный работающий пример на stackoverflow . Итак, ниже пример метода, который по массиву входящих файлов генерирует ZIP-архив. Как видно с примера формат входящих данных следующий: $files = [ [‘file_name’ => ‘nameInZip1.pdf’, ‘/path/to/file/1.pdf’], [‘file_name’ => […]
-
Yii2. Как отдать файл на скачивание?
Задача программной отдачи файла может встретиться довольно часто, но не многие знают, что в Yii2 есть встроенный методы, помогающие решить проблему отдачи файла в браузер на скачивание. В этой короткой заметке — пример решения задачи. Поехали! В принципе, все средства описаны в документации. Я лишь приведу несколько примеров и пояснений. Наиболее полезными и часто используемыми […]
-
Yii2. Telegram API. Как отправить фото?
Ещё одна статья в цикле статей с рабочими примерами отправки медиа-файлов в Telegram через API. Сейчас речь пойдет о фото-файлах. В этой и следующих статьях, использую расширение SonkoDmitry\Yii\TelegramBot\Component. За долгое время экстеншн прижился и отлично работает — за что автору огромная благодарность. \Yii::$app->tg->sendPhoto([ ‘chat_id’ => $t[‘telegram_id’] , ‘photo’ => \Yii::getAlias(‘@frontend/web/files/source_file.jpg’), ‘caption’ => ‘Текстовое опсиание фото’ […]