# Discourse.SiteSettings からの移行：アップグレードガイド

**URL:** https://meta.discourse.org/t/moving-away-from-discourse-sitesettings-an-upgrading-guide/158977
**Category:** Development
**Created:** [2020 年 7 月 27 日午後 6:10 UTC](https://meta.discourse.org/t/moving-away-from-discourse-sitesettings-an-upgrading-guide/158977 "2020-07-27T18:10:35Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![eviltrout](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eviltrout/32/5275_2.png) [@eviltrout](https://meta.discourse.org/u/eviltrout)
#### Post date: [2020 年 7 月 27 日午後 6:10 UTC](https://meta.discourse.org/t/moving-away-from-discourse-sitesettings-an-upgrading-guide/158977/1 "2020-07-27T18:10:35Z")

</div>

Discourse の最新リリースでは、JavaScript アプリケーションから `Discourse.SiteSettings` を完全に削除しました。現在、それが見つかるのは後方互換性のための場所のみです。

これは [Ember CLI](https://meta.discourse.org/t/embercli-coming-to-a-discourse-near-you/143528) への移行の一環として行っていますが、それだけでなく、正しい対応でもあります。`Discourse.XYZ` は本質的にグローバル変数であり、依存関係が散在してしまうからです。

**プラグインやテーマの開発者で、コード内で `Discourse.SiteSettings` を使用している場合は、今こそ移行について検討し始める時です。**

### JavaScript コードの更新方法：

- コントローラー、ルート、モデル、コンポーネント、ウィジェットを参照している場合は、代わりに `this.siteSettings` を使用できます。

- ファイルがイニシャライザーにある場合は、コンテナパラメータを使用してサイト設定を検索できます：`let siteSettings = container.lookup('site-settings:main');`

- ファイルが QUnit テストの場合は `this.siteSettings` を使用できますが、 **注意点として** 、`this` が正しく機能するためには、テストメソッドはアロー関数ではなく通常の関数である必要があります：

- コードがヘルパーにある場合は、新しい関数 `helperContext()` をインポートしてヘルパー関数内でサイト設定を取得できます。 **実際のヘルパーでのみ使用してください！**

- スクリプトタグを通じて Discourse のコードを埋め込んでいる場合は、コンテナを介してサイト設定にアクセスできます：

現在、`Discourse.SiteSettings` に非推奨警告を追加していません。まだ更新されていない既存のテーマやプラグインが多いため、警告が多すぎて実際には役に立たないと考えているからです。該当するコードの大部分が更新された段階で、警告を追加して検出しやすくする予定です。
