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

Обсуждение:
https://yangx.top/yii3ru

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

Поддержать разработчиков:
https://opencollective.com/yiisoft
加入频道
⚡️ #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

• Дружественные исключения теперь всегда должны поддерживать разметку markdown (PR).
⚡️ #yiisoftDataDb

В пакете Yii Data DB добавлены фильтры и процессоры Between, ILike, Not и NotEquals, а также немного отрефакторен код (PR).
⚡️ #yiisoftDefinitions #yiisoftFactory #yiisoftDi

Изменение в 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 доработали виджеты и добавили подробную документацию по ним:

- URL (PR),
- Telephone (PR),
- Text (PR).
⚡️ #yiisoftYiiConsole

Доработали документацию Yii Console (PR):

- описали, как реализовать "ленивую" загрузку команд;

- описали, как добавить к командам алиасы;

- описали, как сделать скрытые команды;

- актуализировали примеры.
⚡️ #yiisoftForm

В пакете 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 и добавляет к ней:

- команду 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

Добавлена новая группа конфигураций widgets, содержащая дефинишены для фабрики виджетов WidgetFactory из пакета Yii Widget (PR).

Группа также добавлена в приложения:
- шаблон веб-приложения (PR),
- демо веб-приложения (PR).
⚡️ #yiisoftLogTargetDb

Обновили зависимости в Yii Logging DB Target и немного подчистили конфигурации GitHub Actions (PR).
#yiisoftYiiRunner #yiisoftYiiRunnerConsole #yiisoftYiiRunnerWeb #yiisoftYiiRunnerRoadrunner

Создан новый пакет 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):

- ParameterDefinition поглотил ClassDefinition;
- выполнен рефакторинг DefinitionExtractor.
⚡️ #yiisoftDi

В пакете Yii Dependency Injection выполнен рефакторинг класса DefinitionStorage (PR).
⚡️ #yiisoftYiiDataview #yiisoftYiiGii #yiisoftTranslatorMessageDb #yiisoftYiiDebugApi

Актуализировали зависимости в пакетах:

- Yii Data Widgets (PR),
- Gii (PR),
- Yii Translator DB Message Storage (PR),
- Yii Debug API (PR).
⚡️ #yiisoftRbacPhp

Исправлена ошибка в пакете Yii RBAC PHP File Storage: после изменения роли без изменения имени сбрасывались все назначения этой роли пользователям (PR).
⚡️ #yiisoftAppApi #yiisoftDemoApi

Исправлена ошибка в фабрике ConfigFactory в шаблоне API-приложения (PR) и демо API-приложения (PR).
#yiisoftAssets #МажорныйРелиз #Релиз

🎁 Yii Assets 2.0.0

Изменили публичный API для более удобного использования.

Метод Yiisoft\Assets\AssetManager::register() в качестве первого аргумента теперь принимает только один класс бандла. Для регистрации одновременно нескольких классов добавлен новый метод Yiisoft\Assets\AssetManager::registerMany() (PR).

—————

⚡️ #yiisoftDemo #yiisoftApp #yiisoftYiiJquery #yiisoftView #yiisoftYiiDebug #yiisoftYiiBootstrap5 #yiisoftYiiSwagger #yiisoftYiiAuthClient #yiisoftYiiBulma

Внесены соответствующие изменения в пакеты и приложения:

Демо веб-приложения (PR)
Шаблон веб-приложения (PR)
Yii jQuery (PR)
Yii View (PR)
Yii Debug (PR)
Yii Bootstrap 5 (PR)
Yii Swagger (PR)
Yii External Authentication (PR)
Yii Bulma (PR, PR)
⚡️ #yiisoftDemo

В демо веб-приложения исправлены ошибки на страницах с пагинацией (PR).