Хроники Yii3
617 subscribers
43 photos
1.7K links
Описание процесса разработки фреймворка из первых рук 😎

Обсуждение:
https://t.iss.one/yii3ru

Сводка по всем пакетам:
https://www.yiiframework.com/status/3.0

Поддержать разработчиков:
https://opencollective.com/yiisoft
Download Telegram
#yiisoftDocumentor

Yii Documentor

Создан репозиторий под инструменты для работы с документацией в пакетах (генерация, переводы и прочее).
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👾2
#yiisoftValidator #МинорныйРелиз #Релиз

🎁 Yii Validator 1.4

• Добавлены правила, проверяющие тип значения — boolean, float, integer и string.

• Добавлено правило UniqueIterable, которое проверяет, что массив содержит только уникальные значения.

• Добавлено правило AnyRule, позволяющее связывать правила логическим "ИЛИ".

• В объекте Result добавлены новые методы:
- getFirstErrorMessagesIndexedByPath(),
- getFirstErrorMessagesIndexedByAttribute(),
- add().
👍11👾2
#yiisoftMailerSymfony #ПатчРелиз #Релиз

🎁 Yii Mailer Symfony Mailer Extension 3.0.1

• Добавлена поддержка symfony/mailer и symfony/mime версии ^7.0.
👍8👾1
#yiisoftView #МажорныйРелиз #Релиз

🎁 Yii View 9.0

• Добавлены методы для получения локали: View::getLocale() и WebView::getLocale().

• Добавлен иммутабельный метод ViewInterface::withTheme().

• Добавлены корректные типы в сигнатуре метода CachedContent::cache().

• Параметры $basePath и $eventDispatcher сделаны опциональными в конструкторах классов View и WebView.

• Добавлена возможность указать fallback-расширения для файлов шаблонов.

• Расширены возможности конфигурации: теперь через параметры можно задать рендерреры и расширение файла по умолчанию.

• Методы ViewInterface::withDefaultExtension() и ViewInterface::getDefaultExtension() помечены устаревшими в пользу withFallbackExtension() и getFallbackExtensions() соответственно.

• Исправлен сброс состояния объектов View и WebView между запросами в долгоживущих приложениях (не восстанавливались параметры по умолчанию).

• Исправлен некорректный поиск файла шаблона, содержащего в названии точку.

• Для параметра $value в методах ViewInterface::setParameter() и ViewInterface::addToParameter() указан тип mixed.
👍122🔥2👾2❤‍🔥1
#yiisoftYiiView #МинорныйРелиз #Релиз

🎁 Yii View Extension 6.1

• Добавлены layout-специфичные инъекции.

• Реализована «ленивая» загрузка инъекций.

• Добавлен коллектор информации для Yii Debug.

• Параметр viewPath в конструкторе ViewRenderer сделан опциональным.

• Переработан поиск файла layout'а.
👍11❤‍🔥11👾1
#yiisoftProxyMiddleware #ПатчРелиз #Релиз

🎁 Yii Proxy Middleware 1.0.1

• Добавлена поддержка пакета psr/http-message версии ^2.0.
👍5👾1
#yiisoftRequestBodyParser #ПатчРелиз #Релиз

🎁 Yii Request Body Parser 1.1.1

• Добавлена поддержка пакета psr/http-message версии ^2.0.
👍42👾1
#yiisoftYiiMiddleware #ПатчРелиз #Релиз

🎁 Yii Middleware 1.0.3

• Добавлена поддержка пакета psr/http-message версии ^2.0.
🍾52👍2🤝2👨‍💻1👾1
#yiisoftYiiView #ПатчРелиз #Релиз

🎁 Yii View Extension 6.1.1

• Исправлено: обработчики событий для Yii Debug подключались даже если Yii Debug выключен или не установлен.
2👍2👾1
#yiisoftValidator #ПатчРелиз #Релиз

🎁 Yii Validator 1.4.1

• Устранено "протекание" параметров в контексте валидации, что в некоторых случаях приводило к ошибкам при выполнении валидации через контекст ($context->validate()).
👍4👾1
#yiisoftRequirements #ПервыйРелиз #МажорныйРелиз #Релиз

🎁 Yii Requirements Checker 1.0

Библиотека позволяет проверить соответствует ли окружение заданным требованиям. Поддерживает вывод результата в виде HTML (для веб-страниц) или в виде текста для консоли.

Пример использования:

<?php

require_once('/path/to/requirements/RequirementsChecker.php');

$config = [
[
'name' => 'PHP version',
'mandatory' => true,
'condition' => version_compare(PHP_VERSION, '7.4.0', '>='),
'by' => '<a href="https://www.yiiframework.com">Yii Framework</a>',
'memo' => 'PHP 7.4.0 or higher is required.',
],
[
'name' => 'PDO MySQL extension',
'mandatory' => false,
'condition' => extension_loaded('pdo_mysql'),
'by' => 'All DB-related classes',
'memo' => 'Required for MySQL database.',
],
);

$requirementsChecker = new RequirementsChecker();

$result = $requirementsChecker
->check($config)
->getResult();

$requirementsChecker->render();

exit($result['summary']['errors'] === 0 ? 0 : 1);
👍14👾1
#yiisoftAppConsole #ПервыйРелиз #МажорныйРелиз #Релиз

🎁 Шаблон консольного приложения 1.0

Первый стабильный релиз шаблона консольного приложения на базе Yii3, который может использоваться для решения таких задач, как:

• работа с очередями;
• работа с вебсокетами;
• выполнение cron-заданий;
• выполнение ручных консольных команд;
• … .

Подробное описание в README.
🍾20👍81🔥1👾1
#yiisoftYiiViewRenderer #yiisoftYiiView #МажорныйРелиз #Релиз

🎁 Yii View Renderer 7.0

• Пакет переименован из yiisoft/yii-view в yiisoft/yii-view-renderer.

• В качестве шаблона (layout) теперь может использоваться только полный путь.

• В конфигурации пакета значения по умолчанию для параметров viewPath и layout изменены на null.

• Выполнен рефакторинг кода, отвечающего за получение имени контроллера из его экземпляра. Теперь поиск элемента с окончанием "controller(s)" в пространстве имён контроллера выполняется «жадно».

Инструкция по обновлению на эту мажорную версию описана в файле UPGRADE.md.
👍5👾3
👍7🔥2👾2
🌿 #Полезное

Про Yii3 и не только

Выступление Александра Макарова на VI встрече PHP-сообщества Воронежа с докладом о прошлом, настоящем и будущем Yii.

⚡️ Видео на YouTube
👍224🔥2👾1
#yiisoftView #МажорныйРелиз #Релиз

🎁 Yii View 10.0

• Изменена логика поиска шаблона представления в ViewInterface::render():

1) ./path — если строка начинается c ./, то ищем в директории текущего представления, если представления нет — бросаем исключение.

2) //path — если строка начинается с //, то ищем в базовой директории.

3) Если строка начинается с / (в *nix) или содержит : (в Windows), то используем строку как абсолютный путь.

4) В остальных случаях ищем либо в контексте (если задан), либо в базовой директории.

• Удалён метод ViewInterface::renderFile(), вместо него теперь используется ViewInterface::render().

• Исключение RuntimeException заменено на LogicException для случаев, когда ViewInterface::render() не может разобрать путь к представлению.
👍10👾1
#yiisoftYiiViewRenderer #yiisoftYiiView #МинорныйРелиз #Релиз

🎁 Yii View Renderer 7.1

• Поддерживаемая версия Yii View (yiisoft/view) поднята до ^10.0.
👍6👾1
#yiisoftMailer #МинорныйРелиз #Релиз

🎁 Yii Mailer Library 5.1

• В MessageFactory добавлена возможность указать значение по умолчанию для поля "from".

• Минимальная версия PHP поднята до ^8.1.

• Поддерживаемая версия Yii View (yiisoft/view) поднята до ^10.0.
👍3👾3👨‍💻1
#yiisoftLog #МинорныйРелиз #Релиз

🎁 Yii Logging Library 2.1

• Добавлены новые статические методы в классе Logger:
- assertLevelIsValid(),
- assertLevelIsString(),
- assertLevelIsSupported().

• Добавлена поддержка вложенных значений в переменных шаблона сообщения, например {foo.bar}.

• Добавлены провайдеры контекста (подробнее в документации).

• Добавлена поддержка DateTime и DateTimeImmutable в качестве метки времени в контексте.

• В классе Message добавлены методы category(), trace(), time() и константа DEFAULT_CATEGORY.

• Константа CategoryFilter::DEFAULT помечена устаревшей.

• В классе Logger помечены устаревшими методы:
- validateLevel(),
- setTraceLevel(),
- setExcludedTracePaths().

• В классе Target помечены устаревшими методы:
- setCommonContext(),
- getCommonContext().

• При генерации сообщений для исключений заменён метод gettype() на get_debug_type().

• В конструкторе Message тип параметра $level изменён на string.

• Исправлена ошибка при парсинге сообщений, содержащих переменные, которые нельзя привести к строке.

• Исправлена ошибка при форматировании трейса, когда нет значений "file" и "line".
👍9👾1
#yiisoftHtml #МинорныйРелиз #Релиз

🎁 Yii HTML 3.5

• Добавлен класс для тега <hr> и соответствующий метод Html::hr().

• Добавлена поддержка массивов в качестве значения атрибута aria-describedby.
👍3🤡3👾1
#yiisoftErrorHandler #МинорныйРелиз #Релиз

🎁 Yii Error Handler 3.3

• Добавлена кнопка для копирования cURL-запроса.

• Отсортированы заголовки в информации о запросе.

• Упрощён код, генерирующий сообщения для лога ошибок.

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

• Добавлена возможность настройки глубины регистрации shutdown-функции, вызывающей exit(1), по умолчанию — 2.

• Мелкие исправления в интерфейсе.
👍4🔥1👾1