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

Yii *

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

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

Итоги ежегодного опроса PHP-сообщества: результаты за 2023

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

Привет! Как и в предыдущие три года, в декабре 2023 было запущено исследование русскоязычного PHP-комьюнити. По итогам получился срез данных: на каких версиях PHP сидят в командах, какой фреймворк выбирают для рабочих проектов, а какой для личных, как относятся к ИИ-инструментам для разработки, кого считают человеком года и многие другие аспекты. Опрос помогают составлять и распространять ребята, которые развивают городские и региональные PHP-сообщества, а также руководят каналами и подкастами про PHP.

Посмотрим, каким был 2023 для сообщества, в 1120 мнениях.

Результаты также можно найти на phpcommunity.ru. Вот итоги за 2022, 2021, 2020.

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

Новости

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Истории

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Всем привет!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн

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

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

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

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

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

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

Базово 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 мин
Количество просмотров 7K

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

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

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

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

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

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

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

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

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

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

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

Всем привет!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Работа

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