Как стать автором
Обновить
0

Yii *

Фреймворк, реализующий парадигму MVC

Сначала показывать
Порог рейтинга
Уровень сложности

Использование ICU Message Format в PHP

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 2.6K
Туториал

Недавно я узнал про довольно интересный инструмент, встроенный в РНР. Оказывается, в языке нативно поддерживается универсальный формат шаблонов для сообщений, ICU Message Format. В частности, он используется в Symfony Translation Component и в системе интернационализации фреймворка Yii 2. Однако этот функционал доступен и сам по себе, в чистом РНР. И может использоваться не только для создания многоязычных сайтов, но и в качестве простенького шаблонизатора, например для email-рассылок.

Я решил разобраться с ним поподробнее
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 2

Новости

Хождение по граблям PDO: что скрывают за собой современные PHP ORM

Уровень сложности Простой
Время на прочтение 21 мин
Количество просмотров 7.2K

Привет, Хабр! В статье расскажу о том, с какими трудностями можно столкнуться при разработке ORM на PHP и поделюсь опытом по их преодолению.

Рассказывать буду только о том, о чём знаю сам. У вас может быть абсолютно другое мнение. Поэтому если вы нашли ошибку или хотите обсудить — свяжитесь со мной.

Читать далее
Всего голосов 41: ↑41 и ↓0 +41
Комментарии 24

Новости Yii 2023, выпуск 2

Время на прочтение 4 мин
Количество просмотров 5K

Всем привет! Это Александр Макаров и второй выпуск Yii новостей в этом году.

С момента последнего выпуска в феврале прошло 3 месяца. Мы стремились ускорить разработку Yii3, но также продолжали поддерживать Yii1 и Yii2. Несмотря на ограниченные средства для разработки, за последние несколько месяцев удалось достичь определённого прогресса. Давайте разберём более детально, что было сделано.

Читать далее
Всего голосов 29: ↑28 и ↓1 +27
Комментарии 7

Yii Validator — простой и мощный

Уровень сложности Простой
Время на прочтение 14 мин
Количество просмотров 5.8K

Меня зовут Сергей Предводителев и я уже пару лет занимаюсь разработкой Yii3. Последнее время много усилий было направлено на разработку валидатора, а это один из ключевых пакетов фреймворка. Мы доделали всё, что планировали сделать к релизу и, наконец, выпустили первую версию.

Путь валидатора в Yii3 к релизу был долог. После множества мозговых штурмов, жарких обсуждений, а также нескольких глобальных рефакторингов (были даже публичные с Валентином Удальцовым и Леонидом Корсаковым), наконец, 22 февраля 2023 года состоялся релиз пакета Yii Validator.

На мой взгляд получилась крайне удачная библиотека: с одной стороны использование на практике очень простое и интуитивно понятное, с другой — мощный функционал, который покрывает множество кейсов, и наличие нескольких точек расширения.

Читать далее
Всего голосов 26: ↑26 и ↓0 +26
Комментарии 15

Истории

Простой бенчмарк для PHP приложений

Время на прочтение 5 мин
Количество просмотров 4.1K
Кейс

Очень часто приходится сравнивать время выполнения кода с целью выбора наиболее оптимального решения, и каждый раз для этого приходилось писать обработчик с расчётом микровремени, после чего все результаты заносились в какую-нибудь таблицу Excel и вручную рассчитывалось минимальное, максимальное и среднее время выполнения...

Для решения этой тривиальной задачи был выпущен пакет "Runtime Comparison", позволяющий сравнивать время выполнения кода без лишних затрат.

Читать далее
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 39

Yii3 Overview 3. Обзор app-* шаблонов и demo

Время на прочтение 8 мин
Количество просмотров 3.2K

Текущая статья будет посвящена обзору app, app-api и app-console шаблонов, а также demo приложений.

Рассмотрим некоторые особенности конфигурирования шаблонов приложений по умолчанию, а также логику работы конфигов и расположение кодовой базы.

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 4

Новости Yii 2022, выпуск 2

Время на прочтение 4 мин
Количество просмотров 4.3K

Всем привет!

С вами снова Александр. Прошлый выпуск был второго мая и после этого наступила тишина. В очередной раз не потому, что ничего не происходило, а совсем наоборот. Происходило всё и сразу. В конце сентября я поехал на конференцию и, вместо возвращения домой к семье, оказался в Ереване, столице Армении. Оттуда и пишу этот выпуск.

Что касается разработки, прогресс отличный несмотря на то, что происходит в мире в общем и в странах членов команды в частности.

А теперь перейдём к интересным событиям, произошедшим с прошлого выпуска новостей.

Читать далее
Всего голосов 28: ↑27 и ↓1 +26
Комментарии 0

Запросы к апи с бэка с повтором если был ответ 401 (UnAuthorized) на примере Mercuryo. PHP, Yii2

Время на прочтение 6 мин
Количество просмотров 1.6K

Когда работаешь в проекте со сторонними апи предоставляющими какой-либо сервис, то необходимо делать к ним запросы с бэкенда и как по мне, делать это с бекэнда бывает не так удобно как с фронтенда. Тем более если нужное апи авторизует запросы по временному токену, который действует только какое-то время (обычно 24 ч.) и потом становится не действительным. В данной статье будет рассмотрен способ автоматического обновления такого токена непосредственно в процессе запроса ресурса удалённого сервиса.

Interceptor->next()
Всего голосов 8: ↑2 и ↓6 -4
Комментарии 8

Yii3 Overview 2. Вспомогательные инструменты разработки

Время на прочтение 7 мин
Количество просмотров 3.6K

Самое ужасное, что может предоставить рабочий код – внезапную проблему. Будь то отложенная бага или неудачное обновление. Для того чтобы избежать такую ситуацию, мы в команде договорились покрывать тестами как можно больше написанного кода, проверять все допустимые варианты, делать статический анализ и проверять обратную совместимость будущих версий библиотек.

Как вы уже могли догадаться, в этой статье разговор пойдет о вспомогательных инструментах при разработке. Все эти инструменты вы можете использовать в личных проектах. Надеюсь, что хоть один из инструментов вам покажется интересным и вы захотите его попробовать в деле.

Читать далее
Всего голосов 20: ↑20 и ↓0 +20
Комментарии 0

Yii2 динамический sitemap

Время на прочтение 2 мин
Количество просмотров 2.2K

Хочу подлиться с читателями Хабр очередным своим открытием, что все сложное просто. Задачу создания динамического sitemap на Yii2 мне поставил СЕО специалист. Мне нужно было создать sitemap на основе результата запроса из базы данных.

Поиск решений сводился к расширению пула зависимостей и установкой новых библиотек. Однако нашлось решение в рамках Yii2 без сторонних зависимостей. При этом решение довольно гибкое и применимо в разных интерпретациях.

И так приступим:
Сначала создадим экшэн метод в контроллере SiteController который будет брать данные из модели и отдавать рендеру. При этом приложению задаем формат ответа и добавляем заголовок для клиента.

И так приступим:
Всего голосов 11: ↑4 и ↓7 -3
Комментарии 12

Yii3 Overview 1. Вступление

Время на прочтение 6 мин
Количество просмотров 11K

Yii3 – пакетный фреймворк. А это значит, что вы можете использовать библиотеки из фреймворка в отвязке от экосистемы Yii. Например, такие пакеты можно подключить к Yii 2, Symfony, Laravel, к проекту без фреймворка или в любой другой PHP-проект.

В этой серии статей разберемся с основами "тройки", принципами построения фреймворка, готовыми библиотеками, инструментами для разработки, рассмотрим готовые шаблоны и demo приложения.

Кстати, чтобы следить за прогрессом существующих пакетов в Yii3 есть отдельная страничка: https://www.yiiframework.com/status/3.0.

Читать далее
Всего голосов 32: ↑32 и ↓0 +32
Комментарии 12

Рассылка писем через Unione (php, Yii2)

Время на прочтение 9 мин
Количество просмотров 2K

В статье представлен код позволяющий отправлять транзакционные письма через сервис unione, делать HTTP запросы к REST апи, а так же отправлять обычные email по smtp используя общий класс отправитель различных сообщений.

(new UniversalReader($name))->read()
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 58

Использование ООП подхода для рассылки писем через Unione (php, Yii2)

Время на прочтение 7 мин
Количество просмотров 2K

В данной статье мы бы хотели описать использованный нами ООП подход к отправке писем через данный сервис рассылок на php. Суть которого заключается в создании объекта инкапсулирующего данные необходимые для отправки письма и методы работы с ними. Кажется что это довольно простая идея, но нам не встречалось ещё в доступных источниках такого подхода, поэтому хотим внести свой вклад в этом направлении. Тем не менее статья написана не для того чтобы пропагандировать данный подход. Она написана с целью развития компетенций в области ООП и способности его использования практических задач, будь то отправка писем или ещё что-то.

article->open()
Всего голосов 9: ↑7 и ↓2 +5
Комментарии 77

Ближайшие события

Битва пет-проектов
Дата 25 сентября – 30 ноября
Место Онлайн
PG Boot Camp Russia 2023
Дата 5 октября
Время 10:00 – 17:00
Место Москва Онлайн
Joker
Дата 9 – 14 октября
Время 16:00 – 19:30
Место Санкт-Петербург Онлайн
Открытый урок «Kafka Streams»
Дата 16 октября
Время 10:00
Место Онлайн
Питч-сессия pravo (tech) impulse
Дата 19 октября
Время 15:45 – 17:30
Место Москва
Russia Risk Conference 2023 — 19-я конференция по риск-менеджменту
Дата 25 – 26 октября
Время 10:00 – 19:00
Место Москва Онлайн
IT Recruiting – HR Forum 2023
Дата 8 – 10 ноября
Время 9:00 – 18:00
Место Москва
Онлайн IT HR-конференция HR42
Дата 17 – 18 ноября
Время 10:00 – 14:00
Место Онлайн
HighLoad++ 2023
Дата 27 – 28 ноября
Время 9:00 – 20:00
Место Москва Онлайн

Виджеты данных Yii2 и DTO

Время на прочтение 7 мин
Количество просмотров 4.2K

Базово Yii2 из коробки предлагает нам архитектуру приложения по шаблону MVC (модель, представление, контроллер). Для более сложного приложения прибегаем к чистой архитектуре и в рамках неё необходимо отказаться от Active Record в шаблонах (представлениях), т.к. Active Record это часть слоя по работе с базой данных, о которой другим слоям знать не нужно. Предполагаем, что мы хотим продолжить использовать встроенные виджеты по отображению данных в представлениях: DeatilView, ListView и GridView. Последние два используют ActiveDataProvider, который в себе содержит Active Record модели - цель данной статьи избавиться от них и использовать только DTO.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 13

PHP-Дайджест № 222/4 (26 апреля – 31 мая 2022)

Время на прочтение 5 мин
Количество просмотров 6.8K

Доброго дня! Представляю вашему вниманию очередной дайджест новостей из мира PHP.

В этом выпуске: новые версии PHP, новости RFC, новости популярных фреймворков, обзор интересных статей и многое другое.

Читать далее
Всего голосов 24: ↑22 и ↓2 +20
Комментарии 7

PHP Дайджест № 222/3 (26 марта – 25 апреля 2022)

Время на прочтение 4 мин
Количество просмотров 6.1K

Дисклеймер: Нет, это не дайджест авторства Романа Пронского. К сожалению, у меня нет достоверной информации - будет ли выходить его дайджест далее.

Однако я взял на себя смелость временно продолжить дело Романа и написать новый дайджест за тот месяц, что прошел с выхода последнего.

Если Роман сможет и захочет далее продолжать свой дайджест - он сам решит, как использовать мой текст: взять в свой проект, как его часть или нет. На всякий случай я ставлю нумерацию дайджеста через дробь. Однако не претендуя при этом на продолжение оригинального проекта.

Читать далее
Всего голосов 43: ↑43 и ↓0 +43
Комментарии 5

Новости Yii 2022, выпуск 1

Время на прочтение 3 мин
Количество просмотров 7.5K

Всем привет!

Мы думали, что 2021 был тяжёлым годом из-за COVID. Текущий 2022 очень неприятно удивил.

Начался он с потери важного члена сообщества и отличного человека, Юлии "Insolita". Продолжился тем, что Россия начала полновесную военную операцию в Украине.

Что же мы имеем на данный момент?

Читать далее
Всего голосов 45: ↑42 и ↓3 +39
Комментарии 3

PHP Дайджест № 222/2 (22 февраля – 25 марта 2022)

Время на прочтение 4 мин
Количество просмотров 7.2K

Дисклеймер: Нет, это не дайджест авторства Романа Пронского. К сожалению, у меня нет достоверной информации - будет ли выходить его дайджест далее.

Однако я взял на себя смелость временно продолжить дело Романа и написать новый дайджест за тот месяц, что прошел с выхода последнего.

Если Роман сможет и захочет далее продолжать свой дайджест - он сам решит, как использовать мой текст: взять в свой проект, как его часть или нет. На всякий случай я ставлю нумерацию дайджеста через дробь. Однако не претендуя при этом на продолжение оригинального проекта.

Читать далее
Всего голосов 37: ↑36 и ↓1 +35
Комментарии 27

Готовимся к собеседованию по PHP: Что такое «DI», «Container», «Auto-wiring» за семь простых шагов

Время на прочтение 10 мин
Количество просмотров 31K

Статья написана для начинающих разработчиков на языке PHP, чтобы помочь им усвоить понятия, нужные для понимания того, как устроены и работают современные фреймворки на PHP: Dependency Injection, Container, Auto-wiring.

Автор надеется, что прочтение статьи поможет вам разобраться в этих вопросах и подготовиться к собеседованию или освоению нового фреймворка.

Статья продолжает цикл статей под условным названием "Готовимся к собеседованию".

Читать далее
Всего голосов 21: ↑18 и ↓3 +15
Комментарии 13

PHP Дайджест № 222 (7 – 21 февраля 2022)

Время на прочтение 5 мин
Количество просмотров 13K


Подборка свежих новостей, инструментов, видео и материалов из мира PHP.

Приятного чтения!
Читать дальше →
Всего голосов 68: ↑66 и ↓2 +64
Комментарии 12

Вклад авторов

Работа

PHP программист
155 вакансий