⚡️ #yiisoftYiiSentry
Первый строчки кода в пакете Yii Sentry (PR): реализована мидлварь для перехвата исключений и добавлена конфигурация контейнера.
Первый строчки кода в пакете Yii Sentry (PR): реализована мидлварь для перехвата исключений и добавлена конфигурация контейнера.
⚡️ #yiisoftDi
Большое обновление сервис-провайдеров в контейнере зависимостей Yii Dependency Injection (PR).
По сути это абсолютно новые сервис-провайдеры. Разрабатывая их, мы ориентировались на container-interop/service-provider (но сделали всё-таки немного по-другому).
Вместо наследования от класса, теперь провайдеры должны реализовывать интерфейс
•
- должен только возвращать дефинишены и не иметь никаких сайд-эффектов;
- должен быть идемпотентным.
•
Пример сервис-провайдера:
В рамках этого PR были удалены классы и интерфейсы
—————
#yiisoftApp #yiisoftAppApi #yiisoftDemo #yiisoftDemoApi
В процессе адаптации пакетов, использующих сервис-провайдеры была реализована концепция начальной загрузки (
- шаблон веб-приложения (PR),
- шаблон API-приложения (PR),
- демо веб-приложения (PR, PR),
- демо API-приложения (PR).
—————
#yiisoftWidget #yiisoftYiiCycle #yiisoftYiiFilesystem #yiisoftYiiDebug #yiisoftYiiDebugApi #yiisoftYiiSentry
Пакеты, использующие сервисы, были адаптированы под новую реализацию:
- Yii Widget (PR),
- Yii Cycle (PR),
- Yii Filesystem (PR),
- Yii Debug (PR),
- Yii Debug Api (PR),
- Yii Sentry (PR).
Большое обновление сервис-провайдеров в контейнере зависимостей Yii Dependency Injection (PR).
По сути это абсолютно новые сервис-провайдеры. Разрабатывая их, мы ориентировались на container-interop/service-provider (но сделали всё-таки немного по-другому).
Вместо наследования от класса, теперь провайдеры должны реализовывать интерфейс
Yiisoft\Di\Contracts\ServiceProviderInterface
, содержащий два метода:•
getDefinitions()
определяет дефинишены для контейнера. Этот метод:- должен только возвращать дефинишены и не иметь никаких сайд-эффектов;
- должен быть идемпотентным.
•
getExtensions()
возвращает функции обратного вызова, модифицирующие сервисы после их создания. В функцию передаются два аргумента: контейнер и созданный сервис, Возвращает функция сам сервис. Пример:static function (ContainerInterface $container, MyService $service) {Важно! Сервис-провайдер НЕ должен содержать какую-либо бизнес-логику или другую функциональность, отличную от определения дефинишенов, например внесение изменений в базу данных или определение переменных окружения.
return $service->withAnotherOption(42);
}
Пример сервис-провайдера:
use Yiisoft\Di\Container;—————
use Yiisoft\Di\Support\ServiceProvider;
final class CarFactoryProvider extends ServiceProviderInterface
{
public function getDependencies(): array
{
return [
CarFactory::class => [
'class' => CarFactory::class,
'$color' => 'red',
],
EngineInterface::class => SolarEngine::class,
WheelInterface::class => [
'class' => Wheel::class,
'$color' => 'black',
],
CarInterface::class => [
'class' => BMW::class,
'$model' => 'X5',
],
];
}
public function getExtensions(): array
{
return [
// Класс Garage должен быть уже определён в контейнере
Garage::class => function(ContainerInterface $container, Garage $garage) {
$car = $container->get(CarFactory::class)->create();
$garage->setCar($car);
return $garage;
}
];
}
}
В рамках этого PR были удалены классы и интерфейсы
DeferredServiceProviderInterface
, DeferredServiceProvider
, ServiceProvider
и AbstractContainerConfigurator
.—————
#yiisoftApp #yiisoftAppApi #yiisoftDemo #yiisoftDemoApi
В процессе адаптации пакетов, использующих сервис-провайдеры была реализована концепция начальной загрузки (
bootstrap
) в приложениях:- шаблон веб-приложения (PR),
- шаблон API-приложения (PR),
- демо веб-приложения (PR, PR),
- демо API-приложения (PR).
Bootstrap
представляет собой массив функций (точнее callable
) вида function (ContainerInterface $container): void
, которые последовательно будут вызваны при запуске приложения.—————
#yiisoftWidget #yiisoftYiiCycle #yiisoftYiiFilesystem #yiisoftYiiDebug #yiisoftYiiDebugApi #yiisoftYiiSentry
Пакеты, использующие сервисы, были адаптированы под новую реализацию:
- Yii Widget (PR),
- Yii Cycle (PR),
- Yii Filesystem (PR),
- Yii Debug (PR),
- Yii Debug Api (PR),
- Yii Sentry (PR).
⚡️ Практически во всех пакетах добавлен ежедневный запуск тестов через GitHub Workflow.
#yiisoftCacheWincache #yiisoftView #yiisoftDi #yiisoftStrings #yiisoftRbacPhp #yiisoftYiiConsole #yiisoftCache #yiisoftDb #yiisoftRbac #yiisoftYiiAuthClient #yiisoftYiiGii #yiisoftViewTwig #yiisoftYiiWeb #yiisoftDbMssql #yiisoftDbOracle #yiisoftLog #yiisoftYiiDebug #yiisoftDbSqlite #yiisoftDbPgsql #yiisoftDbMysql #yiisoftEventDispatcher #yiisoftI18n #yiisoftYiiEvent #yiisoftYiiDbMigration #yiisoftValidator #yiisoftUser #yiisoftTranslatorMessageGettext #yiisoftSecurity #yiisoftMiddlewareDispatcher #yiisoftMutex #yiisoftNetworkUtilities #yiisoftProfiler #yiisoftProxy #yiisoftRequestBodyParser #yiisoftRouterFastroute #yiisoftInjector #yiisoftCacheApcu #yiisoftAuthJwt #yiisoftAuth #yiisoftAssets #yiisoftArrays #yiisoftAliases #yiisoftDemoApi #yiisoftDemo #yiisoftDataResponse #yiisoftData #yiisoftCsrf #yiisoftCookies #yiisoftConfig #yiisoftCacheMemcached #yiisoftCacheFile #yiisoftHttp #yiisoftHtml #yiisoftFiles #yiisoftFactory #yiisoftErrorHandler #yiisoftLogTargetDb #yiisoftLogTargetEmail #yiisoftLogTargetFile #yiisoftRequestModel #yiisoftRbacSpiralDb #yiisoftRateLimiter #yiisoftPackageTemplate #yiisoftMutexRedis #yiisoftMutexPdoPgsql #yiisoftMutexPdoOracle #yiisoftMutexFile #yiisoftMutexPdoMysql #yiisoftTranslatorFormatterSimple #yiisoftTranslatorFormatterIntl #yiisoftTranslatorExtractor #yiisoftTranslator #yiisoftTestSupport #yiisoftSession #yiisoftRouter #yiisoftRequirements #yiisoftTranslatorMessageDb #yiisoftTranslatorMessagePhp #yiisoftVarDumper #yiisoftWidget #yiisoftYiiBootstrap5 #yiisoftYiiBulma #yiisoftYiiCycle #yiisoftYiiDataview #yiisoftYiiDebugApi #yiisoftYiiDebugViewer #yiisoftMailerSwiftmailer #yiisoftMailer #yiisoftLogTargetSyslog #yiisoftJson #yiisoftForm #yiisoftYiiWidgets #yiisoftYiiView #yiisoftYiiSwagger #yiisoftYiiSentry
#yiisoftCacheWincache #yiisoftView #yiisoftDi #yiisoftStrings #yiisoftRbacPhp #yiisoftYiiConsole #yiisoftCache #yiisoftDb #yiisoftRbac #yiisoftYiiAuthClient #yiisoftYiiGii #yiisoftViewTwig #yiisoftYiiWeb #yiisoftDbMssql #yiisoftDbOracle #yiisoftLog #yiisoftYiiDebug #yiisoftDbSqlite #yiisoftDbPgsql #yiisoftDbMysql #yiisoftEventDispatcher #yiisoftI18n #yiisoftYiiEvent #yiisoftYiiDbMigration #yiisoftValidator #yiisoftUser #yiisoftTranslatorMessageGettext #yiisoftSecurity #yiisoftMiddlewareDispatcher #yiisoftMutex #yiisoftNetworkUtilities #yiisoftProfiler #yiisoftProxy #yiisoftRequestBodyParser #yiisoftRouterFastroute #yiisoftInjector #yiisoftCacheApcu #yiisoftAuthJwt #yiisoftAuth #yiisoftAssets #yiisoftArrays #yiisoftAliases #yiisoftDemoApi #yiisoftDemo #yiisoftDataResponse #yiisoftData #yiisoftCsrf #yiisoftCookies #yiisoftConfig #yiisoftCacheMemcached #yiisoftCacheFile #yiisoftHttp #yiisoftHtml #yiisoftFiles #yiisoftFactory #yiisoftErrorHandler #yiisoftLogTargetDb #yiisoftLogTargetEmail #yiisoftLogTargetFile #yiisoftRequestModel #yiisoftRbacSpiralDb #yiisoftRateLimiter #yiisoftPackageTemplate #yiisoftMutexRedis #yiisoftMutexPdoPgsql #yiisoftMutexPdoOracle #yiisoftMutexFile #yiisoftMutexPdoMysql #yiisoftTranslatorFormatterSimple #yiisoftTranslatorFormatterIntl #yiisoftTranslatorExtractor #yiisoftTranslator #yiisoftTestSupport #yiisoftSession #yiisoftRouter #yiisoftRequirements #yiisoftTranslatorMessageDb #yiisoftTranslatorMessagePhp #yiisoftVarDumper #yiisoftWidget #yiisoftYiiBootstrap5 #yiisoftYiiBulma #yiisoftYiiCycle #yiisoftYiiDataview #yiisoftYiiDebugApi #yiisoftYiiDebugViewer #yiisoftMailerSwiftmailer #yiisoftMailer #yiisoftLogTargetSyslog #yiisoftJson #yiisoftForm #yiisoftYiiWidgets #yiisoftYiiView #yiisoftYiiSwagger #yiisoftYiiSentry
⚡️ #yiisoftYiiSentry
В пакете Yii Sentry описали процесс установки и настройки (PR), а также удалили неиспользуемые файлы конфигурации (commit).
В пакете Yii Sentry описали процесс установки и настройки (PR), а также удалили неиспользуемые файлы конфигурации (commit).
⚡️ #yiisoftAccess #yiisoftErrorHandler #yiisoftEventDispatcher #yiisoftFactory #yiisoftHttp #yiisoftI18n #yiisoftAliases #yiisoftJson #yiisoftProfiler #yiisoftInjector #yiisoftMailerSymfony #yiisoftMutex #yiisoftRateLimiter #yiisoftNetworkUtilities #yiisoftSession #yiisoftRouter #yiisoftStrings #yiisoftRouterFastroute #yiisoftRequestBodyParser #yiisoftTranslatorMessageGettext #yiisoftTranslatorExtractor #yiisoftTranslatorFormatterSimple #yiisoftTranslator #yiisoftTranslatorFormatterIntl #yiisoftTranslatorMessageDb #yiisoftUser #yiisoftVarDumper #yiisoftViewTwig #yiisoftYiiEvent #yiisoftTranslatorMessagePhp #yiisoftDataResponse #yiisoftCacheFile #yiisoftCookies #yiisoftCsrf #yiisoftAssets #yiisoftAuthJwt #yiisoftLog #yiisoftArrays #yiisoftYiiFilesystem #yiisoftYiiHttp #yiisoftYiiRunnerHttp #yiisoftLogTargetFile #yiisoftLogTargetEmail #yiisoftYiiRunnerRoadrunner #yiisoftSecurity #yiisoftYiiSwagger #yiisoftYiiSentry #yiisoftMutexFile #yiisoftMiddlewareDispatcher #yiisoftTestSupport #yiisoftYiiDebug #yiisoftYiiDebugViewer #yiisoftCacheApcu #yiisoftYiiDataview #yiisoftLogTargetSyslog #yiisoftAuth #yiisoftDefinitions #yiisoftRbacPhp #yiisoftDataDb #yiisoftData #yiisoftRequestModel #yiisoftDi #yiisoftConfig #yiisoftRbacRulesContainer
Продолжаем заменять рабочие процессы на переиспользуемые из Yii GitHub Actions:
- Yii Access (PR)
- Yii Error Handler (PR)
- Yii Event Dispatcher (PR)
- Yii Factory (PR)
- Yii HTTP (PR)
- Yii Internationalization Library (PR)
- Yii Aliases (PR)
- Yii JSON (PR)
- Yii Profiler (PR)
- Yii Injector (PR)
- Yii Mailer Symfony Mailer Extension (PR)
- Yii Mutex (PR)
- Yii Rate Limiter Middleware (PR)
- Yii Network Utilities (PR)
- Yii Session (PR)
- Yii Router (PR)
- Yii Strings (PR)
- Yii Router FastRoute Adapter (PR)
- Yii Request Body Parser (PR)
- Yii Translator gettext Message Storage (PR)
- Yii Message Extractor (PR)
- Yii Translator Simple Message Formatter (PR)
- Yii Message Translator (PR)
- Yii Translator intl Message Formatter (PR)
- Yii Translator DB Message Storage (PR)
- Yii User (PR)
- Yii VarDumper (PR)
- Yii View Twig Renderer (PR)
- Yii Event (PR)
- Yii Translator PHP Message Storage (PR)
- Yii Data Response (PR)
- Yii Cache File Handler (PR)
- Yii Cookies (PR)
- Yii CSRF Protection Library (PR)
- Yii Assets (PR)
- Yii Auth JWT (PR)
- Yii Logging Library (PR)
- Yii Arrays (PR)
- Yii Filesystem (PR)
- Yii HTTP Application (PR)
- Yii HTTP Runner (PR)
- Yii Logging File Target (PR)
- Yii Logging Email Target (PR)
- Yii RoadRunner Runner (PR)
- Yii Security (PR)
- Yii Swagger (PR)
- Yii Sentry (PR)
- Yii Mutex File Driver (PR)
- Yii Middleware Dispatcher (PR)
Продолжаем заменять рабочие процессы на переиспользуемые из Yii GitHub Actions:
- Yii Access (PR)
- Yii Error Handler (PR)
- Yii Event Dispatcher (PR)
- Yii Factory (PR)
- Yii HTTP (PR)
- Yii Internationalization Library (PR)
- Yii Aliases (PR)
- Yii JSON (PR)
- Yii Profiler (PR)
- Yii Injector (PR)
- Yii Mailer Symfony Mailer Extension (PR)
- Yii Mutex (PR)
- Yii Rate Limiter Middleware (PR)
- Yii Network Utilities (PR)
- Yii Session (PR)
- Yii Router (PR)
- Yii Strings (PR)
- Yii Router FastRoute Adapter (PR)
- Yii Request Body Parser (PR)
- Yii Translator gettext Message Storage (PR)
- Yii Message Extractor (PR)
- Yii Translator Simple Message Formatter (PR)
- Yii Message Translator (PR)
- Yii Translator intl Message Formatter (PR)
- Yii Translator DB Message Storage (PR)
- Yii User (PR)
- Yii VarDumper (PR)
- Yii View Twig Renderer (PR)
- Yii Event (PR)
- Yii Translator PHP Message Storage (PR)
- Yii Data Response (PR)
- Yii Cache File Handler (PR)
- Yii Cookies (PR)
- Yii CSRF Protection Library (PR)
- Yii Assets (PR)
- Yii Auth JWT (PR)
- Yii Logging Library (PR)
- Yii Arrays (PR)
- Yii Filesystem (PR)
- Yii HTTP Application (PR)
- Yii HTTP Runner (PR)
- Yii Logging File Target (PR)
- Yii Logging Email Target (PR)
- Yii RoadRunner Runner (PR)
- Yii Security (PR)
- Yii Swagger (PR)
- Yii Sentry (PR)
- Yii Mutex File Driver (PR)
- Yii Middleware Dispatcher (PR)
🤯6👍5
⚡️ #yiisoftYiiSentry #yiisoftDemo
Актуализировали Yii Sentry (PR):
- подняли минимальную версию PHP до
- заменили зависимость
- подняли минимальную версию
- обновили примеры в readme.
Также добавили Yii Sentry в демо веб-приложения (PR).
Актуализировали Yii Sentry (PR):
- подняли минимальную версию PHP до
^8.0
;- заменили зависимость
sentry/sentry
на sentry/sdk
;- подняли минимальную версию
symfony/console
до ^6.0
;- обновили примеры в readme.
Также добавили Yii Sentry в демо веб-приложения (PR).
#yiisoftYiiSentry #ПервыйРелиз #МажорныйРелиз #Релиз
🎁 Yii Sentry 1.0.0
Добавили тестов (PR), исправили ошибку с дублированием ошибок, вызванных вручную (PR), и сделали первый стабильный релиз пакета Yii Sentry.
Yii Sentry — интеграция с Sentry, сервисом для сбора и агрегации логов, и другими совместимыми с Sentry API инструментами (например, GlitchTip).
🎁 Yii Sentry 1.0.0
Добавили тестов (PR), исправили ошибку с дублированием ошибок, вызванных вручную (PR), и сделали первый стабильный релиз пакета Yii Sentry.
Yii Sentry — интеграция с Sentry, сервисом для сбора и агрегации логов, и другими совместимыми с Sentry API инструментами (например, GlitchTip).
🔥6
⚡️ #yiisoftValidator #yiisoftYiiSentry #yiisoftYiiSwagger #yiisoftYiiRunnerRoadrunner #yiisoftYiiRunnerHttp #yiisoftYiiRunnerConsole #yiisoftYiiHttp #yiisoftYiiRunner
В GitHub Actions добавили конфигурацию для запуска Rector и применили предлагаемые изменения:
- Yii Validator (PR),
- Yii Sentry (PR),
- Yii Swagger (PR),
- Yii RoadRunner Runner (PR),
- Yii HTTP Runner (PR),
- Yii Console Runner (PR),
- Yii HTTP Application (PR),
- Yii Runner (PR).
В GitHub Actions добавили конфигурацию для запуска Rector и применили предлагаемые изменения:
- Yii Validator (PR),
- Yii Sentry (PR),
- Yii Swagger (PR),
- Yii RoadRunner Runner (PR),
- Yii HTTP Runner (PR),
- Yii Console Runner (PR),
- Yii HTTP Application (PR),
- Yii Runner (PR).
🔥4
⚡️ #yiisoftYiiSentry
В Yii Sentry добавили проверку транзитивных зависимостей в CI и явно прописали найденные (PR, PR).
В Yii Sentry добавили проверку транзитивных зависимостей в CI и явно прописали найденные (PR, PR).
👍3
#yiisoftYiiSentry #МажорныйРелиз #Релиз
🎁 Yii Sentry 2.0
• Явно прописана транзитивная зависимость
• Конфигурация пакета адаптирована к соглашению Yii об именах групп конфигураций.
😎 Релиз подготовили Сергей Предводителев, Алексей Рогачёв и Дмитрий Дерепко.
🎁 Yii Sentry 2.0
• Явно прописана транзитивная зависимость
sentry/sentry
.• Конфигурация пакета адаптирована к соглашению Yii об именах групп конфигураций.
😎 Релиз подготовили Сергей Предводителев, Алексей Рогачёв и Дмитрий Дерепко.
👍5
#yiisoftYiiSentry #ПатчРелиз #Релиз
🎁 Yii Sentry 2.0.1
• Добавлена поддержка
🎁 Yii Sentry 2.0.1
• Добавлена поддержка
psr/http-message
версии ^2.0
.👍7❤1👾1