⚡️ #yiisoftRouter #yiisoftRouterFastroute #yiisoftDemo
Добавлена возможность генерации URL с учётом локали в роутере Yii Router (PR) и адаптере Yii Router FastRoute Adapter (PR).
Пример использования:
Добавлена возможность генерации URL с учётом локали в роутере Yii Router (PR) и адаптере Yii Router FastRoute Adapter (PR).
Пример использования:
// Конфигурация генератора URLЭто возможность роутера применена в демо веб-приложения (PR, PR).
$urlGenerator->setLocales(['en' => 'en-US', 'ru' => 'ru-RU', 'uz' => 'uz-UZ']);
$urlGenerator->setLocaleParameterName('_locale');
// Генерация URL
$urlGenerator->generate('test', ['_locale' => $locale]);
⚡️ #yiisoftConfig
Большое обновление Yii Config (PR, PR).
• Конфигурации из
• Логика объединения конфигов:
- конфигурации объединяются послойно: окружение → приложение → вендор;
- между слоями разрешено переопределение;
- в рамках одного слоя запрещено использовать одинаковые ключи.
• Добавлены модификаторы объединения, задаваемые в конструкторе класса
-
-
-
• Добавлена возможность использовать в качестве параметров любую группу конфигураций вместо
• Добавлена команда
• Добавлена команда
• Удалён параметр
• Удален весь интерактив, отслеживание изменений файлов и служебный файл
—————
⚡️ #yiisoftApp #yiisoftAppApi #yiisoftDemo #yiisoftDemoApi
Приложения адаптированы к этому обновлению:
Шаблон веб-приложения (PR),
Шаблон API-приложения (PR),
Демо веб-приложения (PR),
Демо API-приложения (PR).
Большое обновление Yii Config (PR, PR).
• Конфигурации из
vendor
теперь НЕ копируются в приложение.• Логика объединения конфигов:
- конфигурации объединяются послойно: окружение → приложение → вендор;
- между слоями разрешено переопределение;
- в рамках одного слоя запрещено использовать одинаковые ключи.
• Добавлены модификаторы объединения, задаваемые в конструкторе класса
Config
:-
RecursiveMerge::groups()
— указанные группы будут объединяться рекурсивно,-
ReverseMerge::groups()
— порядок ключей в итоговом массиве будет обратен порядку объединения,-
RemoveFromVendor::keys()
— указанные ключи конфигурации не будут учитываться при получении конфигураций из vendor
.• Добавлена возможность использовать в качестве параметров любую группу конфигураций вместо
params
.• Добавлена команда
yii-config-copy
для копирования конфигурационных файлов из вендора в приложение (при этом эти файлы автоматически в сборку НЕ попадают, это нужно сделать вручную).• Добавлена команда
yii-config-rebuild
для обновления плана слияния.• Удалён параметр
output-directory
, осталась только source-directory
, задающая папку с конфигурациями.• Удален весь интерактив, отслеживание изменений файлов и служебный файл
dist.lock
• План слияния переименован в .merge-plan.php
.—————
⚡️ #yiisoftApp #yiisoftAppApi #yiisoftDemo #yiisoftDemoApi
Приложения адаптированы к этому обновлению:
Шаблон веб-приложения (PR),
Шаблон API-приложения (PR),
Демо веб-приложения (PR),
Демо API-приложения (PR).
#yiisoftView #МажорныйРелиз #Релиз
🎁 Yii View 4.0.0
• Добавлен интерфейс
• Улучшено сообщение об ошибке при получении несуществующего блока или параметра из
• При изменении контекста с помощью методов
—————
#yiisoftViewTwig #ПатчРелиз #Релиз
🎁 Yii View Twig Renderer 2.0.1
• Добавлена поддержка
🎁 Yii View 4.0.0
• Добавлен интерфейс
ViewInterface
, который реализуют классы View
и WebView
.• Улучшено сообщение об ошибке при получении несуществующего блока или параметра из
View
или WebView
.• При изменении контекста с помощью методов
View::withContext()
или `WebView::withContext()`теперь сбрасывается список текущих генерируемых представлений.—————
#yiisoftViewTwig #ПатчРелиз #Релиз
🎁 Yii View Twig Renderer 2.0.1
• Добавлена поддержка
yiisoft/view
версии ^4.0
.⚡️ #yiisoftConfig
В пакете Yii Config чтобы указать, что конфигурация используется без окружения, теперь можно передать как
В пакете Yii Config чтобы указать, что конфигурация используется без окружения, теперь можно передать как
null
, так и пустую строку (PR) + в readme добавлена информация об использовании пакета в PHAR
-архивах (PR).#yiisoftMailer #ПатчРелиз #Релиз
🎁 Yii Mailer Library 3.0.2
• Версия
🎁 Yii Mailer Library 3.0.2
• Версия
yiisoft/view
обновлена до ^4.0
(PR).⚡️ #yiisoftDemo
В демо веб-приложения добавлены примеры использования мидлвари
В демо веб-приложения добавлены примеры использования мидлвари
Yiisoft\Yii\Web\Middleware\HttpCache
для добавления HTTP-заголовков Last-Modified
и ETag
(PR).⚡️ #yiisoftYiiCycle
В ветке
В ветке
2.0
пакета Yii Cycle добавлена поддержка модификаторов схемы и пакета cycle/schema-renderer
для генерации схемы (PR).#yiisoftFriendlyException #МинорныйРелиз #Релиз
🎁 Yii Friendly Exception 1.1.0
• Дружественные исключения теперь всегда должны поддерживать разметку
🎁 Yii Friendly Exception 1.1.0
• Дружественные исключения теперь всегда должны поддерживать разметку
markdown
(PR).⚡️ #yiisoftDataDb
В пакете Yii Data DB добавлены фильтры и процессоры
В пакете Yii Data DB добавлены фильтры и процессоры
Between
, ILike
, Not
и NotEquals
, а также немного отрефакторен код (PR).⚡️ #yiisoftDefinitions #yiisoftFactory #yiisoftDi
Изменение в Yii Definitions: теперь если обязательные nullable-параметры не удаётся разрешить, то выбрасывается исключение (PR).
Например, имеем класс:
Если при создании класса
В соответствии с этим изменением исправлены тесты в Yii Factory (PR) и Yii Dependency Injection (PR).
Изменение в Yii Definitions: теперь если обязательные nullable-параметры не удаётся разрешить, то выбрасывается исключение (PR).
Например, имеем класс:
final class Garage
{
public function __construct(?Car $car)
{
}
}
Если при создании класса
Garage
, не удастся создать объект Car
для передачи его в конструктор, то будет брошено исключение. Ранее в этом случае в конструктор передавался null
.В соответствии с этим изменением исправлены тесты в Yii Factory (PR) и Yii Dependency Injection (PR).
⚡️ #yiisoftForm
В пакете Yii Form доработали виджеты и добавили подробную документацию по ним:
-
-
-
В пакете Yii Form доработали виджеты и добавили подробную документацию по ним:
-
URL
(PR),-
Telephone
(PR),-
Text
(PR).⚡️ #yiisoftYiiConsole
Доработали документацию Yii Console (PR):
- описали, как реализовать "ленивую" загрузку команд;
- описали, как добавить к командам алиасы;
- описали, как сделать скрытые команды;
- актуализировали примеры.
Доработали документацию Yii Console (PR):
- описали, как реализовать "ленивую" загрузку команд;
- описали, как добавить к командам алиасы;
- описали, как сделать скрытые команды;
- актуализировали примеры.
⚡️ #yiisoftForm
В пакете Yii Form доработали виджеты и добавили подробную документацию по ним:
-
-
-
-
-
-
-
-
-
А также сделали следующие улучшения:
- в виджете
- доработана документация по созданию форм (PR),
- подчищен код и документация (PR, PR, PR).
В пакете Yii Form доработали виджеты и добавили подробную документацию по ним:
-
SubmitButton
(PR),-
ResetButton
(PR),-
Select
(PR),-
Checkbox
(PR),-
CheckboxList
(PR),-
Range
(PR),-
TextArea
(PR),-
Error
(PR),-
ErrorSummary
(PR).А также сделали следующие улучшения:
- в виджете
Telephone
добавлена поддержка числовых значений (PR),- доработана документация по созданию форм (PR),
- подчищен код и документация (PR, PR, PR).
#yiisoftYiiConsole #ПервыйРелиз #МажорныйРелиз #Релиз
🎁 Yii Console 1.0.0
Первый релиз консоли, которую можно добавить в ваше приложение. "Под капотом" пакет использует консоль Symfony и добавляет к ней:
- команду
- события
- поддержку дружественных исключений;
- стиль именования команд
- логирование ошибок;
- возможность добавления команд через конфигурацию Yii;
- "ленивую" загрузку команд через PSR-11 совместимый контейнер;
- набор предопределённых кодов выхода.
У пакета, как обычно, высокие технические показатели качества:
- 98% покрытие тестами;
- 82% MSI;
- 100% уровень покрытия типами;
- Psalm уровень 1.
🎁 Yii Console 1.0.0
Первый релиз консоли, которую можно добавить в ваше приложение. "Под капотом" пакет использует консоль Symfony и добавляет к ней:
- команду
serve
для запуска встроенного в PHP сервера;- события
ApplicationStartup
и ApplicationShutdown
;- поддержку дружественных исключений;
- стиль именования команд
namespace/command
;- логирование ошибок;
- возможность добавления команд через конфигурацию Yii;
- "ленивую" загрузку команд через PSR-11 совместимый контейнер;
- набор предопределённых кодов выхода.
У пакета, как обычно, высокие технические показатели качества:
- 98% покрытие тестами;
- 82% MSI;
- 100% уровень покрытия типами;
- Psalm уровень 1.
⚡️ #yiisoftYiiCycle
Для консольных команд
Для консольных команд
migrate/up
и migrate/down
в пакете Yii Cycle ORM добавлена поддержка опции --no-interaction
(PR).⚡️ #yiisoftWidget #yiisoftApp #yiisoftDemo
Добавлена новая группа конфигураций
Группа также добавлена в приложения:
- шаблон веб-приложения (PR),
- демо веб-приложения (PR).
Добавлена новая группа конфигураций
widgets
, содержащая дефинишены для фабрики виджетов WidgetFactory
из пакета Yii Widget (PR).Группа также добавлена в приложения:
- шаблон веб-приложения (PR),
- демо веб-приложения (PR).
⚡️ #yiisoftLogTargetDb
Обновили зависимости в Yii Logging DB Target и немного подчистили конфигурации GitHub Actions (PR).
Обновили зависимости в Yii Logging DB Target и немного подчистили конфигурации GitHub Actions (PR).
✨ #yiisoftYiiRunner #yiisoftYiiRunnerConsole #yiisoftYiiRunnerWeb #yiisoftYiiRunnerRoadrunner
Создан новый пакет Yii Runner, в который вынесен общий код, необходимый для запуска любого приложения:
- класс
- фабрика
- класс
- интерфейс
Также созданы три новых пакета с реализациями интерфейса
- Yii Console Runner,
- Yii Web Runner,
- Yii RoadRunner Runner.
Создан новый пакет Yii Runner, в который вынесен общий код, необходимый для запуска любого приложения:
- класс
BootstrapRunner
, для запуска bootstrap-кода;- фабрика
ConfigFactory
для создания экземпляра класса Yiisoft\Config\Config
;- класс
ThrowableHandler
, реализующий RequestHandlerInterface
, это обёртка исключения для его выброса в мидлвари обработчика ошибок;- интерфейс
RunnerInterface
для скрытия деталей запуска приложения.Также созданы три новых пакета с реализациями интерфейса
RunnerInterface
для запуска приложений соответствующего типа:- Yii Console Runner,
- Yii Web Runner,
- Yii RoadRunner Runner.
⚡️ #yiisoftDefinitions
Продолжаем дорабатывать Yii Definitions (PR, PR):
-
- выполнен рефакторинг
Продолжаем дорабатывать Yii Definitions (PR, PR):
-
ParameterDefinition
поглотил ClassDefinition
;- выполнен рефакторинг
DefinitionExtractor
.