#ХроникиYii3 теперь в формате канала 😎
Заметки о процессе разработки Yii 3 в русскоязычной группе «Yii Framework 3» стали выходить на регулярной основе, решили выделить их в отдельный канал. Продолжим теперь здесь. Присоединяйтесь и рассказывайте коллегам, будет интересно.
Заметки о процессе разработки Yii 3 в русскоязычной группе «Yii Framework 3» стали выходить на регулярной основе, решили выделить их в отдельный канал. Продолжим теперь здесь. Присоединяйтесь и рассказывайте коллегам, будет интересно.
🎁 #yiisoftView #ПервыйРелиз
Первый релиз Yii View 1.0.0 (новость на yiiframework.com).
Yii View — библиотека для рендеринга представлений. Включает в себя абстракцию над шаблонизаторами с поддержкой иерархии "шаблон / представление / вложенное представление" и PHP-шаблонизатор.
Пакет содержит два основных класса:
•
•
Yii View является частью фреймворка, но может использоваться и отдельно.
Первый релиз Yii View 1.0.0 (новость на yiiframework.com).
Yii View — библиотека для рендеринга представлений. Включает в себя абстракцию над шаблонизаторами с поддержкой иерархии "шаблон / представление / вложенное представление" и PHP-шаблонизатор.
Пакет содержит два основных класса:
•
View
— класс общего назначения, предназначен для рендеринга email'ов, SMS-сообщений и т. д. (документация);•
WebView
— web-специфичный класс с поддержкой особенностей рендеринга HTML-страниц (документация).Yii View является частью фреймворка, но может использоваться и отдельно.
🎁 #yiisoftYiiView #ПервыйРелиз
Первый релиз Yii View Extension 1.0.0 (новость на yiiframework.com).
Yii View Extension — расширение библиотеки Yii View, которое добавляет расширенный web-специфичный функционал и совместимость с PSR-7 интерфейсами.
Основной класс
Первый релиз Yii View Extension 1.0.0 (новость на yiiframework.com).
Yii View Extension — расширение библиотеки Yii View, которое добавляет расширенный web-специфичный функционал и совместимость с PSR-7 интерфейсами.
Основной класс
ViewRenderer
позволяет работать с шаблонами, инъекциями параметров, meta- и link-тегов, а также получать в результате рендеринга представлений как PSR-7 ответ, так и обычную строку.🎁 #yiisoftViewTwig #ПервыйРелиз
Первый релиз Yii View Twig Renderer 1.0.0.
Yii View Twig Renderer —расширение библиотеки Yii View, позволяющее использовать шаблонизатор Twig.
• Все переменные из обычных шаблонов также будут доступны в twig-шаблоне.
• Функция
Подробности в readme.
Первый релиз Yii View Twig Renderer 1.0.0.
Yii View Twig Renderer —расширение библиотеки Yii View, позволяющее использовать шаблонизатор Twig.
• Все переменные из обычных шаблонов также будут доступны в twig-шаблоне.
• Функция
get(string $id)
, доступная во всех twig-шаблонах, позволяет получить доступ к любым объектам, которые может вернуть контейнер приложения, в том числе к виджетам.Подробности в readme.
🎁 #yiisoftMailer #yiisoftMailerSwiftmailer #ПервыйРелиз
Первый релиз Yii Mailer 1.0.0 и Yii Mailer Swiftmailer Extension 1.0.0 (новость на yiiframework.com).
Yii Mailer предоставляет функционал для формирования содержимого письма и базовый интерфейс для отправки писем.
Из коробки предоставляется реализация интерфейса отправки, которая вместо фактической отправки писем сохраняет их содержимое в файл.
Реальная отправка писем вынесена в отдельные взаимозаменяемые пакеты.
Yii Mailer Swiftmailer Extension — расширение Yii Mailer для отправки писем с помощью библиотеки Swiftmailer.
Первый релиз Yii Mailer 1.0.0 и Yii Mailer Swiftmailer Extension 1.0.0 (новость на yiiframework.com).
Yii Mailer предоставляет функционал для формирования содержимого письма и базовый интерфейс для отправки писем.
Из коробки предоставляется реализация интерфейса отправки, которая вместо фактической отправки писем сохраняет их содержимое в файл.
Реальная отправка писем вынесена в отдельные взаимозаменяемые пакеты.
Yii Mailer Swiftmailer Extension — расширение Yii Mailer для отправки писем с помощью библиотеки Swiftmailer.
🎁 #yiisoftLogTargetEmail #ПервыйРелиз
Первый релиз Yii Logging Email Target 1.0.0.
Yii Logging Email Target — цель логов для библиотеки Yii Logging, которая отправляет сообщения логов на электронную почту.
Первый релиз Yii Logging Email Target 1.0.0.
Yii Logging Email Target — цель логов для библиотеки Yii Logging, которая отправляет сообщения логов на электронную почту.
⚡️#yiisoftDi
В readme DI-контейнера исправлен бейдж, отображающий процент покрытия типами (PR). Почему-то ранее отображалось покрытие из пакета Yii CSRF.
В readme DI-контейнера исправлен бейдж, отображающий процент покрытия типами (PR). Почему-то ранее отображалось покрытие из пакета Yii CSRF.
⚡️#yiisoftViewTwig
В readme пакета Yii View Twig Renderer добавлены новые и улучшены существующие примеры использования (PR).
В readme пакета Yii View Twig Renderer добавлены новые и улучшены существующие примеры использования (PR).
⚡️#yiisoftRouter
В пакете Yii Router доработаны группы роутов (PR):
• добавлен метод
• добавлен метод
• в контексте создания группы роутов (конфигурирование роутов в приложении) для группы роутов IDE теперь будет предлагать только сеттеры.
В пакете Yii Router доработаны группы роутов (PR):
• добавлен метод
Group::host()
, который задаёт хост для группы роутов;• добавлен метод
Group::namePrefix()
, добавляющих префикс к имени всех роутов из группы;• в контексте создания группы роутов (конфигурирование роутов в приложении) для группы роутов IDE теперь будет предлагать только сеттеры.
⚡️#yiisoftRouter
Ещё немного почистили интерфейсы в Yii Router (PR):
• в
• в
Ещё немного почистили интерфейсы в Yii Router (PR):
• в
RouteCollectorInterface
удалены методы withDispatcher()
и hasDispatcher()
;• в
RouteInterface
удалены методы injectDispatcher()
, withDispatcher()
, hasMiddlewares()
и hasDispatcher()
.⚡️#yiisoftWidget
Причесали Yii Widget (PR):
- изменили версию PSR-контейнера с
- добавили ещё тестов;
- Mutation Score Indicator увеличен до 100%;
- исключили все служебные файлы при создании архива репозитория;
- немного улучшили конфигурации GitHub Workflow и других служебных файлов.
Причесали Yii Widget (PR):
- изменили версию PSR-контейнера с
1.0.0
на ^1.0
;- добавили ещё тестов;
- Mutation Score Indicator увеличен до 100%;
- исключили все служебные файлы при создании архива репозитория;
- немного улучшили конфигурации GitHub Workflow и других служебных файлов.
⚡️#yiisoftFactory
Доработки в Yii Factory (PR):
• В фабрике в методе
• В фабрике по-умолчанию для интерфейса
• Удалён класс
• Удалён метод
• Исправлены и доработаны сообщения об ошибках в
• Доработаны сообщения об ошибках в
• Добавлены тесты, покрытие увеличено до 100%;
• Немного подрефакторена конфигурация PHPUnit.
Доработки в Yii Factory (PR):
• В фабрике в методе
Factory::create()
удалён второй параметр, через который можно было передать аргументы для конструктора.• В фабрике по-умолчанию для интерфейса
ContainerInterface
задаётся переданный в фабрику контейнер, либо сама фабрика, если контейнер не задали.• Удалён класс
InvalidDefinition
.• Удалён метод
DefinitionExtractor::fromCallable()
.• Исправлены и доработаны сообщения об ошибках в
ClassDefinition
.• Доработаны сообщения об ошибках в
DefinitionValidator
.• Добавлены тесты, покрытие увеличено до 100%;
• Немного подрефакторена конфигурация PHPUnit.
⚡️#yiisoftFactory #yiisoftYiiConsole #yiisoftYiiDebugApi
Изменения в требуемых версиях контейнера
• Yii Factory (PR)
Изменения в требуемых версиях контейнера
psr/container
:• Yii Factory (PR)
1.0.0
→ ^1.0.0
• Yii Console (PR) 1.0.0
→ ^1.0|^2.0
• Yii Debug API (PR) 1.0
→ ^1.0|^2.0
⚡️#yiisoftFactory
Небольшие улучшения в Yii Factory (PR):
• добавлена поддержка всех существующих версий
• уровень стабильности зависимостей (
Небольшие улучшения в Yii Factory (PR):
• добавлена поддержка всех существующих версий
psr/container
(^1.0|^2.0
);• уровень стабильности зависимостей (
minimum-stability
) повышен до стабильного.⚡️#yiisoftMiddlewareDispatcher
Провели замеры производительности Yii Middleware Dispatcher (см. PR). Оказалось, что в текущей реализации серьёзно течёт память. Нашли несколько узких мест и исправили проблему.
• В публичном методе
• В приватном методе
Исследования вопроса производительности продолжаются, возможно будут ещё изменения и более правильные решения.
Провели замеры производительности Yii Middleware Dispatcher (см. PR). Оказалось, что в текущей реализации серьёзно течёт память. Нашли несколько узких мест и исправили проблему.
• В публичном методе
MiddlewareDispatcher::withMiddlewares()
перед $new->stack = null;
добавили unset($new->stack);
. Это позволяет удалять стек сразу, не дожидаясь сборщика мусора.• В приватном методе
MiddlewareDispatcher::buildMiddlewares()
заменили использование динамической функции на статическую, что пусть немного, но улучшило производительность.Исследования вопроса производительности продолжаются, возможно будут ещё изменения и более правильные решения.