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

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

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

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

Немного подчистили Yii Caching Library (PR): улучшили readme, конфигурации GitHub Actions, doc-блоки и прочие мелкие улучшения.
⚡️ #yiisoftYiiDevTool

Убрали добавление лишней пустой строки при подготовке changelog в Yii Development Tool (PR).
⚡️ #yiisoftYiiCycle

В Yii Cycle ORM добавлена поддержка пакета cycle/schema-renderer для генерации схемы (PR).
#yiisoftYiiWeb #yiisoftHttp #МинорныйРелиз #yiisoftErrorHandler #МажорныйРелиз #Релиз

🎁 Yii HTTP 1.2.0
🎁
Yii Error Handler 2.0.0

Хелперы для работы преобразования строки с заголовками в более удобные для работы массивы перенесены из пакетов Yii Web (PR) и Yii Error Handler (PR) в пакет Yii HTTP (PR).

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

use Yiisoft\Http\HeaderValueHelper;

// Result: ['a' => '1', 'b' => '2']
HeaderValueHelper::getParameters('a=1;b=2');

// Result: ['value', 'a' => '1', 'b' => '2']
HeaderValueHelper::getValueAndParameters('value;a=1;b=2'));

// Result: [['value2', 'q' => 1.0], ['value1', 'q' => 0.2]]
HeaderValueHelper::getSortedValueAndParameters('value1;q=0.2,value2'));

// Result: ['text/xml', 'text/html']
HeaderValueHelper::getSortedAcceptTypes('text/html;q=0.2,text/xml;q=0.4'));

⚡️
#yiisoftApp #yiisoftAppApi #yiisoftDemo #yiisoftDemoApi #yiisoftAuth #yiisoftRequestBodyParser #yiisoftDataResponse #yiisoftCsrf #yiisoftRateLimiter #yiisoftCookies #yiisoftYiiRunnerWeb

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

Шаблон веб-приложения (PR),
Шаблон API-приложения (PR),
Демо веб-приложения (PR),
Демо API-приложения (PR),
Yii Auth (PR),
Yii Request Body Parser (PR),
Yii Data Response (PR),
Yii CSRF Protection Library (PR),
Yii Rate Limiter Middleware (PR),
Yii Cookies (PR),
Yii Web Runner (PR).
⚡️ #yiisoftYiiRunnerWeb #yiisoftYiiRunnerRoadrunner

В раннерах Yii Web Runner (PR) и Yii RoadRunner Runner (PR) добавлена возможность задать свой обработчик ошибок с помощью методов WebApplicationRunner::withTemporaryErrorHandler() и RoadRunnerApplicationRunner::withTemporaryErrorHandler() соответственно.
⚡️ #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).