# Обновление с 9 версии

Мы постараемся задокументировать все изменения чтобы вам было легче обновить ваши модули под новую версию JohnCMS

### Изменена стандартная структура модуля

Теперь классы модуля должны располагаться в папке src, которая располагается в папке с модулем.\
Маршруты для работы модуля теперь описываются в папке модуля, а не в общем конфигурационном файле. Файлы конфигурации так же расположены теперь в папке с модулем. Подробнее можете ознакомиться в инструкции по созданию модуля.

### Удалено пространство имен Johncms\System

Все классы, которые располагались в пространств Johncms\System были перенесены в пространство имен Johncms.\
Например:

{% tabs %}
{% tab title="Было" %}

```php
$request = di(\Johncms\System\Http\Request::class);
```

{% endtab %}

{% tab title="Стало" %}

```php
$request = di(\Johncms\Http\Request::class);
```

{% endtab %}
{% endtabs %}

### Все POST запросы должны содержать CSRF-токен

Все POST запросы, проходящие через роутер, теперь по умолчанию проверяются на наличие корректного CSRF токена. Если токена нет, вы будете получать ошибку 419.\
Токен должен содержаться в поле с именем **`csrf_token`** или же в заголовке **`X-CSRF-Token`**.\
Если вы хотите отключить проверку для определенных адресов, то можете добавить исключение в конфигурационном файле. Пример файла **config/autoload/csrf.global.php** для правильной кастомизации ознакомьтесь с [инструкцией по работе с конфигурационными файлами](/10.0/obshie-svedeniya/konfiguracionnye-faily-configs.md).<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.johncms.com/10.0/nachalo-raboty/obnovlenie-s-9-versii.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
