From aa81f43abf64b348da83460fb59121ee81886421 Mon Sep 17 00:00:00 2001 From: Dmitry Derepko Date: Wed, 25 Aug 2021 21:21:47 +0300 Subject: [PATCH 1/9] Add cookbook page about sentry integration --- cookbook/ru/README.md | 15 +++ ...21\206\320\270\321\217 \321\201 Sentry.md" | 118 ++++++++++++++++++ 2 files changed, 133 insertions(+) create mode 100644 cookbook/ru/README.md create mode 100644 "cookbook/ru/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217 \321\201 Sentry.md" diff --git a/cookbook/ru/README.md b/cookbook/ru/README.md new file mode 100644 index 0000000..aff81f3 --- /dev/null +++ b/cookbook/ru/README.md @@ -0,0 +1,15 @@ +# Книга рецептов Yii3 + +Книга рецептов Yii3 – это бесплатная книга, которая состоит из подсказок и секретов о PHP фреймворке [Yii3](http://www.yiiframework.com/). +Книга создана и поддерживается силами команды Yii3. + +Не стесняйтесь создать pull request со своими рецептами. Мы сделаем ревью и сольём ваш рецепт в книгу. + +Книга следует правилам [Правила для документации Yii](https://www.yiiframework.com/doc/terms/). + +--- + +Оглавление +--------------- + +[Интеграция с Sentry](Интеграция с Sentry.md) diff --git "a/cookbook/ru/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217 \321\201 Sentry.md" "b/cookbook/ru/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217 \321\201 Sentry.md" new file mode 100644 index 0000000..c1f0997 --- /dev/null +++ "b/cookbook/ru/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217 \321\201 Sentry.md" @@ -0,0 +1,118 @@ +# Интеграция с Sentry + +## Оглавление +1. [Установка](#Установка) + 1. [Установка пакета](#Установка-пакета) + 2. [Установка http-драйвера](#Установка-http-драйвера) +2. [Настройка](#Настройка) + 1. [Получение и сохранение токена](#Получение-и-сохранение-токена) + 2. [Настройка http-клиента](#Настройка-http-клиента) +3. [Интеграция](#Интеграция) + 1. [Веб](#Веб) + 2. [Консоль](#Консоль) + +## Установка + +### Установка пакета + +Для установки нужного пакета установите пакет `yiisoft/yii-sentry` следующей командой: + +``` +composer req yiisoft/yii-sentry +``` + +### Установка http-драйвера + +Библиотека https://github.com/getsentry/sentry-php требует установки `php-http/httplug` пакета и любого драйвера. +Для примеры мы будем использовать адаптер `Guzzle`. + +> Список всех адаптеров можно найти на [этой](https://docs.php-http.org/en/latest/clients.html#clients-adapters) странице. + +Для установки пакетов нужно выполнить в консоли следующую команду. + +``` +composer req php-http/httplug php-http/guzzle7-adapter +``` + +## Настройка + +### Получение и сохранение токена + +Далее нам нужно сконфигурировать приложение. + +Для начала нужно зарегистрироваться в https://sentry.io и создать проект. + +Далее в настройках проекта, на вкладке `General Settings`, найти поле `Security Token` и скопировать оттуда значение. + +Теперь нужно этот токен положить в настройки пакета. По умолчанию конфиг лежит в `config/packages/yiisoft/yii-sentry/config/params.php`. +Скопированный токен нужно положить в значение элемента массива по ключу `yiisoft/yii-sentry` => `options` => `dsn`. Пример: + +```diff +'yiisoft/yii-sentry' => [ + 'enabled' => true, + 'options' => [ +- 'dsn' => '', ++ 'dsn' => 'ТОКЕН', + ], +], +``` + + +### Настройка http-клиента + +После установки http-клиента, его нужно сконфигурировать. + +Создайте файл `config/common/sentry.php` и положите в него следующий код: + +```php + \GuzzleHttp\Client::class, + \Http\Client\HttpAsyncClient::class => [ + 'class' => \Http\Adapter\Guzzle7\Client::class, + '__construct()' => [ + \Yiisoft\Factory\Definition\Reference::to(\Http\Client\HttpClient::class), + ], + ], +]; +``` + +# Интеграция + +### Веб + +Поддержка Sentry для `web` реализована как `middleware`. + +А это значит, что достаточно будет добавить `SentryMiddleware` в глобальный список `middleware`, в `config/web/application.php`: + + +```diff +return [ + Yiisoft\Yii\Web\Application::class => [ + '__construct()' => [ + 'dispatcher' => DynamicReference::to(static function (Injector $injector) { + return ($injector->make(MiddlewareDispatcher::class)) + ->withMiddlewares( + [ + Router::class, + SubFolder::class, ++ SentryMiddleware::class, + ErrorCatcher::class, + ] + ); + }), + 'fallbackHandler' => Reference::to(NotFoundHandler::class), + ], + ], +]; +``` + + +### Консоль + +Поддержка Sentry для `console` в виде обработчика события [ConsoleEvents::ERROR](https://symfony.com/doc/current/components/console/events.html#the-consoleevents-error-event). + +Пакет предоставляет конфигурационный файл, который автоматически подписывает приложение на это событие. From 5af619b81319bdc645b289e109deecba23163cf3 Mon Sep 17 00:00:00 2001 From: Dmitry Derepko Date: Wed, 25 Aug 2021 21:24:14 +0300 Subject: [PATCH 2/9] Fix link --- cookbook/ru/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cookbook/ru/README.md b/cookbook/ru/README.md index aff81f3..7ddd317 100644 --- a/cookbook/ru/README.md +++ b/cookbook/ru/README.md @@ -12,4 +12,4 @@ Оглавление --------------- -[Интеграция с Sentry](Интеграция с Sentry.md) +[Интеграция с Sentry](Интеграция%20с%20Sentry.md) From ed3d4649c290ec709aac414ab1dee348b12bdb92 Mon Sep 17 00:00:00 2001 From: Dmitry Derepko Date: Wed, 25 Aug 2021 23:18:16 +0300 Subject: [PATCH 3/9] Add description about the tool --- ...21\206\320\270\321\217 \321\201 Sentry.md" | 36 +++++++++++++------ 1 file changed, 25 insertions(+), 11 deletions(-) diff --git "a/cookbook/ru/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217 \321\201 Sentry.md" "b/cookbook/ru/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217 \321\201 Sentry.md" index c1f0997..d69b15c 100644 --- "a/cookbook/ru/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217 \321\201 Sentry.md" +++ "b/cookbook/ru/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217 \321\201 Sentry.md" @@ -1,16 +1,30 @@ # Интеграция с Sentry ## Оглавление +0. [Что такое Sentry](#Что-такое-Sentry) 1. [Установка](#Установка) 1. [Установка пакета](#Установка-пакета) 2. [Установка http-драйвера](#Установка-http-драйвера) 2. [Настройка](#Настройка) - 1. [Получение и сохранение токена](#Получение-и-сохранение-токена) - 2. [Настройка http-клиента](#Настройка-http-клиента) + 3. [Получение и сохранение токена](#Получение-и-сохранение-токена) + 4. [Настройка http-клиента](#Настройка-http-клиента) 3. [Интеграция](#Интеграция) 1. [Веб](#Веб) 2. [Консоль](#Консоль) +## Что такое Sentry + +Sentry – это инструмент мониторинга и отладки производительности и стабильности. +Sentry представляет доступ к событиям, которые вы отправите туда из вашего приложения. + +Чаще всего Sentry используется для мониторинга ошибок (исключений). +Ошибки можно "обогатить" контекстом для лучшего понимания вызванной проблемы: +- Аргументы, с которыми вызывалось приложение +- Теги, для группировки исключений +- Состояние среды окружения: переменные окружения, состояние приложения и прочие "глобальные" аттрибуты + +Полный список всех возможностей можно найти на официальном сайте: https://sentry.io/welcome/ + ## Установка ### Установка пакета @@ -18,34 +32,34 @@ Для установки нужного пакета установите пакет `yiisoft/yii-sentry` следующей командой: ``` -composer req yiisoft/yii-sentry +composer require yiisoft/yii-sentry ``` ### Установка http-драйвера Библиотека https://github.com/getsentry/sentry-php требует установки `php-http/httplug` пакета и любого драйвера. -Для примеры мы будем использовать адаптер `Guzzle`. +Для примеры используется адаптер `Guzzle`. > Список всех адаптеров можно найти на [этой](https://docs.php-http.org/en/latest/clients.html#clients-adapters) странице. -Для установки пакетов нужно выполнить в консоли следующую команду. +Для установки пакетов выполните в консоли следующую команду. ``` -composer req php-http/httplug php-http/guzzle7-adapter +composer require php-http/httplug php-http/guzzle7-adapter ``` ## Настройка ### Получение и сохранение токена -Далее нам нужно сконфигурировать приложение. +Далее сконфигурируем приложение. -Для начала нужно зарегистрироваться в https://sentry.io и создать проект. +Для начала зарегистрируйтесь в https://sentry.io и создать проект. Далее в настройках проекта, на вкладке `General Settings`, найти поле `Security Token` и скопировать оттуда значение. -Теперь нужно этот токен положить в настройки пакета. По умолчанию конфиг лежит в `config/packages/yiisoft/yii-sentry/config/params.php`. -Скопированный токен нужно положить в значение элемента массива по ключу `yiisoft/yii-sentry` => `options` => `dsn`. Пример: +Теперь положите этот токен в настройки пакета. По умолчанию конфиг лежит в `config/packages/yiisoft/yii-sentry/config/params.php`. +Скопированный токен запишите в значение элемента массива по ключу `yiisoft/yii-sentry` => `options` => `dsn`. Пример: ```diff 'yiisoft/yii-sentry' => [ @@ -60,7 +74,7 @@ composer req php-http/httplug php-http/guzzle7-adapter ### Настройка http-клиента -После установки http-клиента, его нужно сконфигурировать. +После установки http-клиента, сконфигурируйте его. Создайте файл `config/common/sentry.php` и положите в него следующий код: From d4868baf42d51afeee48ea69f446d288d486af88 Mon Sep 17 00:00:00 2001 From: Alexander Makarov Date: Tue, 19 Oct 2021 02:13:49 +0400 Subject: [PATCH 4/9] Apply suggestions from code review Co-authored-by: Sergei Predvoditelev --- cookbook/ru/README.md | 6 +-- ...21\206\320\270\321\217 \321\201 Sentry.md" | 40 +++++++++---------- 2 files changed, 22 insertions(+), 24 deletions(-) diff --git a/cookbook/ru/README.md b/cookbook/ru/README.md index 7ddd317..1cc16c7 100644 --- a/cookbook/ru/README.md +++ b/cookbook/ru/README.md @@ -1,11 +1,11 @@ # Книга рецептов Yii3 -Книга рецептов Yii3 – это бесплатная книга, которая состоит из подсказок и секретов о PHP фреймворке [Yii3](http://www.yiiframework.com/). +Книга рецептов Yii3 – это бесплатная книга, которая состоит из подсказок и секретов о PHP фреймворке [Yii3](https://www.yiiframework.com/). Книга создана и поддерживается силами команды Yii3. -Не стесняйтесь создать pull request со своими рецептами. Мы сделаем ревью и сольём ваш рецепт в книгу. +Не стесняйтесь создать pull request со своими рецептами. Мы сделаем ревью и добавим ваш рецепт в книгу. -Книга следует правилам [Правила для документации Yii](https://www.yiiframework.com/doc/terms/). +Книга следует [правилам для документации Yii](https://www.yiiframework.com/doc/terms/). --- diff --git "a/cookbook/ru/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217 \321\201 Sentry.md" "b/cookbook/ru/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217 \321\201 Sentry.md" index d69b15c..b725cfa 100644 --- "a/cookbook/ru/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217 \321\201 Sentry.md" +++ "b/cookbook/ru/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217 \321\201 Sentry.md" @@ -3,18 +3,18 @@ ## Оглавление 0. [Что такое Sentry](#Что-такое-Sentry) 1. [Установка](#Установка) - 1. [Установка пакета](#Установка-пакета) - 2. [Установка http-драйвера](#Установка-http-драйвера) + 1.1. [Установка пакета](#Установка-пакета) + 1.2. [Установка HTTP-драйвера](#Установка-HTTP-драйвера) 2. [Настройка](#Настройка) - 3. [Получение и сохранение токена](#Получение-и-сохранение-токена) - 4. [Настройка http-клиента](#Настройка-http-клиента) + 2.1. [Получение и сохранение токена](#Получение-и-сохранение-токена) + 2.2. [Настройка HTTP-клиента](#Настройка-HTTP-клиента) 3. [Интеграция](#Интеграция) - 1. [Веб](#Веб) - 2. [Консоль](#Консоль) + 3.1. [Веб](#Веб) + 3.2. [Консоль](#Консоль) ## Что такое Sentry -Sentry – это инструмент мониторинга и отладки производительности и стабильности. +[Sentry](https://sentry.io/) – это инструмент мониторинга и отладки производительности и стабильности. Sentry представляет доступ к событиям, которые вы отправите туда из вашего приложения. Чаще всего Sentry используется для мониторинга ошибок (исключений). @@ -31,22 +31,20 @@ Sentry представляет доступ к событиям, которые Для установки нужного пакета установите пакет `yiisoft/yii-sentry` следующей командой: -``` -composer require yiisoft/yii-sentry -``` +```shell +composer require yiisoft/yii-sentry --prefer-dist -### Установка http-драйвера +### Установка HTTP-драйвера -Библиотека https://github.com/getsentry/sentry-php требует установки `php-http/httplug` пакета и любого драйвера. +Библиотека [`getsentry/sentry-php`](https://github.com/getsentry/sentry-php) требует установки `php-http/httplug` пакета и любого HTTP-драйвера. Для примеры используется адаптер `Guzzle`. > Список всех адаптеров можно найти на [этой](https://docs.php-http.org/en/latest/clients.html#clients-adapters) странице. Для установки пакетов выполните в консоли следующую команду. -``` -composer require php-http/httplug php-http/guzzle7-adapter -``` +```shell +composer require php-http/httplug php-http/guzzle7-adapter --prefer-dist ## Настройка @@ -54,9 +52,9 @@ composer require php-http/httplug php-http/guzzle7-adapter Далее сконфигурируем приложение. -Для начала зарегистрируйтесь в https://sentry.io и создать проект. +Для начала зарегистрируйтесь в [Sentry](https://sentry.io) и создайте проект. -Далее в настройках проекта, на вкладке `General Settings`, найти поле `Security Token` и скопировать оттуда значение. +Далее в настройках проекта, на вкладке `General Settings`, найдите поле `Security Token` и скопируйте оттуда значение. Теперь положите этот токен в настройки пакета. По умолчанию конфиг лежит в `config/packages/yiisoft/yii-sentry/config/params.php`. Скопированный токен запишите в значение элемента массива по ключу `yiisoft/yii-sentry` => `options` => `dsn`. Пример: @@ -72,9 +70,9 @@ composer require php-http/httplug php-http/guzzle7-adapter ``` -### Настройка http-клиента +### Настройка HTTP-клиента -После установки http-клиента, сконфигурируйте его. +После установки HTTP-клиента, сконфигурируйте его. Создайте файл `config/common/sentry.php` и положите в него следующий код: @@ -100,7 +98,7 @@ return [ Поддержка Sentry для `web` реализована как `middleware`. -А это значит, что достаточно будет добавить `SentryMiddleware` в глобальный список `middleware`, в `config/web/application.php`: +А это значит, что достаточно будет добавить `SentryMiddleware` в глобальный список `middleware` в `config/web/application.php`: ```diff @@ -127,6 +125,6 @@ return [ ### Консоль -Поддержка Sentry для `console` в виде обработчика события [ConsoleEvents::ERROR](https://symfony.com/doc/current/components/console/events.html#the-consoleevents-error-event). +Sentry поддерживает `console` в виде обработчика события [ConsoleEvents::ERROR](https://symfony.com/doc/current/components/console/events.html#the-consoleevents-error-event). Пакет предоставляет конфигурационный файл, который автоматически подписывает приложение на это событие. From d0462f9ed7ee52e8ee01a5167c108d3660faac09 Mon Sep 17 00:00:00 2001 From: Alexander Makarov Date: Mon, 25 Oct 2021 00:17:28 +0300 Subject: [PATCH 5/9] Update README.md --- cookbook/ru/README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cookbook/ru/README.md b/cookbook/ru/README.md index 1cc16c7..16ce3bf 100644 --- a/cookbook/ru/README.md +++ b/cookbook/ru/README.md @@ -1,7 +1,7 @@ # Книга рецептов Yii3 Книга рецептов Yii3 – это бесплатная книга, которая состоит из подсказок и секретов о PHP фреймворке [Yii3](https://www.yiiframework.com/). -Книга создана и поддерживается силами команды Yii3. +Книга создана сообществом Yii. Роддерживается и редактируется силами команды Yii. Не стесняйтесь создать pull request со своими рецептами. Мы сделаем ревью и добавим ваш рецепт в книгу. @@ -12,4 +12,5 @@ Оглавление --------------- -[Интеграция с Sentry](Интеграция%20с%20Sentry.md) +[Встёпление](preface.md) +[Интеграция с Sentry](sentry-integration.md) From 5f20fb0310349551fc5372e9b3e78ff7d76ada04 Mon Sep 17 00:00:00 2001 From: Alexander Makarov Date: Mon, 25 Oct 2021 00:17:44 +0300 Subject: [PATCH 6/9] =?UTF-8?q?Rename=20=D0=98=D0=BD=D1=82=D0=B5=D0=B3?= =?UTF-8?q?=D1=80=D0=B0=D1=86=D0=B8=D1=8F=20=D1=81=20Sentry.md=20to=20sent?= =?UTF-8?q?ry-integration.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ru/sentry-integration.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename "cookbook/ru/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217 \321\201 Sentry.md" => cookbook/ru/sentry-integration.md (100%) diff --git "a/cookbook/ru/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217 \321\201 Sentry.md" b/cookbook/ru/sentry-integration.md similarity index 100% rename from "cookbook/ru/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217 \321\201 Sentry.md" rename to cookbook/ru/sentry-integration.md From 6f24957ce9437aae65a3438bbeaf019f1c9b4a7b Mon Sep 17 00:00:00 2001 From: Alexander Makarov Date: Mon, 25 Oct 2021 00:19:38 +0300 Subject: [PATCH 7/9] Update sentry-integration.md --- cookbook/ru/sentry-integration.md | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/cookbook/ru/sentry-integration.md b/cookbook/ru/sentry-integration.md index b725cfa..4c8f544 100644 --- a/cookbook/ru/sentry-integration.md +++ b/cookbook/ru/sentry-integration.md @@ -1,17 +1,5 @@ # Интеграция с Sentry -## Оглавление -0. [Что такое Sentry](#Что-такое-Sentry) -1. [Установка](#Установка) - 1.1. [Установка пакета](#Установка-пакета) - 1.2. [Установка HTTP-драйвера](#Установка-HTTP-драйвера) -2. [Настройка](#Настройка) - 2.1. [Получение и сохранение токена](#Получение-и-сохранение-токена) - 2.2. [Настройка HTTP-клиента](#Настройка-HTTP-клиента) -3. [Интеграция](#Интеграция) - 3.1. [Веб](#Веб) - 3.2. [Консоль](#Консоль) - ## Что такое Sentry [Sentry](https://sentry.io/) – это инструмент мониторинга и отладки производительности и стабильности. From d56c01354884b3f757d927ca8215ec0a9c0313ba Mon Sep 17 00:00:00 2001 From: Alexander Makarov Date: Wed, 27 Oct 2021 09:46:20 +0300 Subject: [PATCH 8/9] Add Russian preface, fix typos --- cookbook/en/preface.md | 6 +++--- cookbook/ru/README.md | 2 +- cookbook/ru/preface.md | 31 +++++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 cookbook/ru/preface.md diff --git a/cookbook/en/preface.md b/cookbook/en/preface.md index 5661ef5..a33d27f 100644 --- a/cookbook/en/preface.md +++ b/cookbook/en/preface.md @@ -9,8 +9,8 @@ of Web applications using PHP. Because of its component-based architecture and s support, it is especially suitable for developing large-scale applications such as portals, forums, content management systems (CMS), e-commerce projects, RESTful Web services, and so on. -Together with a comprehensive set of documentation and a enthusiastic user community Yii can reduce your development -time in a long run significantly compared with other frameworks. +Together with a comprehensive set of documentation and an enthusiastic user community Yii can reduce your development +time in a long run significantly. ## What's the book about? @@ -24,7 +24,7 @@ grouped by topic, but you are free to read them in any order as there is no depe ## Prerequisites -- You should have Yii 3.0 installed. +- You should have Yii3 installed. - You should be familiar with the framework basics and the official guide. ## How to participate diff --git a/cookbook/ru/README.md b/cookbook/ru/README.md index 16ce3bf..9f41cd4 100644 --- a/cookbook/ru/README.md +++ b/cookbook/ru/README.md @@ -12,5 +12,5 @@ Оглавление --------------- -[Встёпление](preface.md) +[Вступление](preface.md) [Интеграция с Sentry](sentry-integration.md) diff --git a/cookbook/ru/preface.md b/cookbook/ru/preface.md new file mode 100644 index 0000000..fcd1851 --- /dev/null +++ b/cookbook/ru/preface.md @@ -0,0 +1,31 @@ +# Вступление + +Yii — высокопроизводительный компонентный PHP фреймворк для быстрой разработки современных веб-приложений. +Имя Yii (произносится как `Yee` или `[ji:]`) означает "простой и эволюционирующий" по-китайски. Также оно может +расшифровываться как акроним **Yes It Is**! + +Yii является веб-фреймворком общего назначения. Он может использоваться для разработки любых типов приложений. +Благодаря компонентной архитектуре и хорошей поддержке кеширования, фреймворк отлично подходит для разработки +масштабных приложений, таких как порталы, форумы, CMS, магазины, REST API и так далее. + +Полная документация и активное сообщество Yii позволяют значительно выиграть во времени разработки проектов +в долгосрочной перспективе. + +## О чём эта книга? + +Это книга для тех, кто уже знаком с Yii3, делает на нём проекты, прочитал основную документацию. Она затрагивает +фундаментально важные принципы разработки, подходы к архитектуре, интеграцию различных сервисов в Yii3 и так далее. + +Книга состоит из отдельных рецептов, написанных экспертами по фреймворку. Рецепты объединены по теме, но вы можете +читать из в любом порядке так один не зависит от другого. + + +## Что понадобится перед чтением? + +- Установленный Yii3. +- Вы должны быть уже знакомы с фреймворком и его документацией. + +## Как помочь? + +Если нашли описки, некорректную информацию, знаете как что-либо улучшить или же у вас есть новый рецепт для книги, +создайте issue или сделайте pull request [в репозиторий книги на GitHub](https://github.com/yiisoft/docs). From 8dd93ebd13ff7d379d4275ff70804bca780225cf Mon Sep 17 00:00:00 2001 From: Alexander Makarov Date: Mon, 6 Mar 2023 09:07:01 +0300 Subject: [PATCH 9/9] fix typo --- cookbook/ru/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cookbook/ru/README.md b/cookbook/ru/README.md index 9f41cd4..87d1f5b 100644 --- a/cookbook/ru/README.md +++ b/cookbook/ru/README.md @@ -1,7 +1,7 @@ # Книга рецептов Yii3 Книга рецептов Yii3 – это бесплатная книга, которая состоит из подсказок и секретов о PHP фреймворке [Yii3](https://www.yiiframework.com/). -Книга создана сообществом Yii. Роддерживается и редактируется силами команды Yii. +Книга создана сообществом Yii. Поддерживается и редактируется силами команды Yii. Не стесняйтесь создать pull request со своими рецептами. Мы сделаем ревью и добавим ваш рецепт в книгу.