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

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

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

Поддержать разработчиков:
https://opencollective.com/yiisoft
加入频道
⚡️ #yiisoftConfig

Несколько улучшений в Yii Config (PR).

——————

• В модификаторе RemoveFromVendor::keys() добавлена возможность указать пакет(ы) и группы, на которые будет распространяться этот модификатор.

Удалить элементы a и b из всех групп в пакете yiisoft/auth:

RemoveFromVendor::keys(['a'], ['b'])
->package('yiisoft/auth'),

Удалить элементы c и d из групп params и web в пакете yiisoft/yii-web:

RemoveFromVendor::keys(['c'], ['d'])
->package('yiisoft/yii-web', 'params', 'web'),

Удалить элементы e и f из всех групп в пакете yiisoft/auth и из групп params и web в пакете yiisoft/yii-web:

RemoveFromVendor::keys(['e'], ['f'])
->package('yiisoft/auth')
->package('yiisoft/yii-web', 'params', 'web'),

——————

• Добавлен новый модификатор RemoveFromVendor::groups(), позволяющий исключить из конфигурации группы и пакеты.

Удалить группу params из всех пакетов:

RemoveFromVendor::groups([
'*' => 'params',
]),

Удалить группы common и web из всех пакетов:

RemoveFromVendor::groups([
'*' => ['common', 'web'],
]),

Удалить все группы из пакета yiisoft/auth:

RemoveFromVendor::groups([
'yiisoft/auth' => '*',
]),

Удалить группу params из пакета yiisoft/http:

RemoveFromVendor::groups([
'yiisoft/http' => 'params',
]),

Удалить группы params и common из пакета yii-web:

RemoveFromVendor::groups([  
'yiisoft/yii-web' => ['params', 'common'],
]),
#yiisoftMiddlewareDispatcher #МажорныйРелиз #Релиз

🎁 Yii Middleware Dispatcher 2.0.0

Изменён порядок выполнения мидлварей, задаваемых с помощью метода MiddlewareDispatcher::withMiddlewares(): теперь мидлвари выполняются от первой к последней и обратно (PR).

⚡️ #yiisoftApp #yiisoftAppApi #yiisoftDemo #yiisoftDemoApi #yiisoftRouter

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

Шаблон веб-приложения (PR),
Шаблон API-приложения (PR),
Демо веб-приложения (PR),
Демо API-приложения (PR),
Yii Router (PR).
⚡️ #yiisoftForm

Улучшения в пакете Yii Form:

- добавили интерфейс коллекции ошибок FormErrorsInterface и его реализацию FormErrors, куда вынесли информацию об ошибках валидации (PR);

- для атрибута ID в элементах форм разрешено значение null (PR);

- доработан виджет Hint и добавлена подробная документация для него (PR);

- доработан виджет Label и добавлена подробная документация для него (PR);

- доработан виджет Error (PR).
⚡️ #yiisoftView

Несколько улучшений в пакете Yii View (PR):

- добавлена простая реализация интерфейса ViewContextInterface — класс ViewContext, который принимает в конструкторе путь к контексту;

- добавлены методы View::withContextPath() и WebView::withContextPath() позволяющие задать контекст в виде пути к папке с представлениями.

Последнее изменение позволит более удобно использовать View в виджетах:

final class SidebarMenu extends Widget
{
public function __construct(
private View $view
) {
$this->view = $this->view->withContextPath(__DIR__);
}

protected function run(): string
{
return $this->view->render('menu');
}
}
⚡️ #yiisoftYiiSwagger

Актуализировали конфигурацию пакета Yii Swagger (PR).
⚡️ #yiisoftYiiDataview

Адаптировали пакет Yii Data Widgets к последним изменениям в Yii Router: заменили CurrentRouter на CurrentRouteInterface (PR).
Начали перераспределение классов из Yii Web.

#yiisoftYiiHttp

Создан новый пакет Yii HTTP Application, в который перенесены из пакета Yii Web классы (PR):

- Application,
- NotFoundHandler,
- Event\AfterEmit,
- Event\AfterRequest,
- Event\ApplicationShutdown,
- Event\ApplicationStartup,
- Event\BeforeRequest.

⚡️ #yiisoftYiiRunnerWeb #yiisoftYiiRunnerHttp

Пакет Yii Web Runner переименован в Yii HTTP Runner (yiisoft/yii-runner-http) и в него из пакета Yii Web перенесены классы (PR):

- SapiEmitter,
- ServerRequestFactory,
- Exception\HeadersHaveBeenSentException.

⚡️ #yiisoftYiiRunnerRoadrunner

В пакете Yii RoadRunner Runner зависимость от yiisoft/yii-web заменена на yiisoft/yii-http (PR).
⚡️ #yiisoftYiiRunnerRoadrunner #yiisoftYiiDebugViewer

В пакетах Yii RoadRunner Runner (PR) и Yii Debug Viewer (PR) увеличили версию yiisoft/error-handler до ^2.0.
⚡️ #yiisoftYiiDebugApi

Улучшения в Yii Debug API: обновили зависимости, актуализировали роуты и финализировали классы пакета (PR).
⚡️ #yiisoftValidator

В правиле Url из пакета Yii Validator исправлен паттерн для корректной работы валидации в HTML5 (PR).
⚡️ #yiisoftForm

В пакете Yii Form для правила Url при генерации HTML5 схемы сделаны регистронезависимыми (PR).
⚡️ #yiisoftYiiSwagger

В пакете Yii Swagger подняли версию зависимости swagger-api/swagger-ui до ^4.1 (PR).
⚡️ #yiisoftYiiCycle

Актуализировали ветку 2.0 в пакете Yii Cycle ORM в соответствии с последними изменениями в Cycle ORM, в частности конфигурирование с помощью DTO (PR).
⚡️ #yiisoftWidget

Доработали конфигурацию пакета Yii Widget (PR): теперь с помощью параметров можно изменить группу конфигурации для виджетов и включить/отключить валидацию конфигурации фабрики виджетов.
⚡️ #yiisoftYiiDebug #yiisoftYiiAuthClient #yiisoftYiiJquery #yiisoftLog #yiisoftProfiler

Удалили из зависимостей пакет Yii Web и, где требуется, добавили Yii HTTP Application в пакетах:

Yii Debug (PR),
Yii External Authentication (PR),
Yii jQuery (PR),
Yii Logging Library (PR),
Yii Profiler (PR).
#yiisoftYiiMiddleware

Создан новый пакет Yii Middleware, в который будут перенесены мидлвари из Yii Web, а сам Yii Web будет упразднён.
⚡️ #yiisoftConfig #yiisoftYiiRunnerRoadrunner #yiisoftYiiRunnerHttp #yiisoftYiiRunnerConsole #yiisoftYiiRunner

В Yii Config добавлена опция build-merge-plan в composer-плагине, позволяющая отключить автоматическое создание мёрж-плана (PR). Опция работает только для корневого пакета.

Пример:

"extra": {
"config-plugin-options": {
"build-merge-plan": false
}
},


Эта опция добавлена в раннерах:

Yii RoadRunner Runner (PR),
Yii HTTP Runner (PR),
Yii Console Runner (PR),
Yii Runner (PR).
⚡️ #yiisoftYiiBootstrap5

В виджете Nav из пакета Yii Bootstrap 5 добавлены новые опции: activeClass, dropdownOptions, itemOptions, linkOptions (PR).
⚡️ #yiisoftYiiRunner #yiisoftYiiHttp #yiisoftYiiRunnerHttp #yiisoftYiiRunnerRoadrunner

Класс ThrowableHandler перенесён из пакета Yii Runner (PR) в пакет Yii HTTP Application (PR).

Необходимые изменения внесены в пакеты Yii HTTP Runner (PR) и Yii RoadRunner Runner (PR).
⚡️ #yiisoftDemo #yiisoftApp #yiisoftAppApi #yiisoftDemoApi

Доработали конфигурацию scrutinizer в приложениях (теперь устанавливается переменная окружения YII_ENV=test и работает сбор информации о покрытии кода тестами):

Шаблон веб-приложения (PR),
Демо веб-приложения (PR),
Шаблон API-приложения (PR),
Демо API-приложения (PR).