Because We Love Happy Coding

フリーライターからエンジニア × 講師。発信力だけあり余ってる感じ

kintone 魔性のグローバル名前空間オブジェクト

今日もまたコーディング。だって僕らはHappy Codingが大好きだから。

目次

環境

  • kintone セキュアアクセス

config用グローバル名前空間オブジェクトを作成する

PHPapiと連携するkintoneカスタマイズを行なっていると、apiのURLを一括管理したい時がある。

開発環境のAPI URLと本番環境のAPI URLを切り替える必要があるのだが、kintoneのアプリでは基本的にアプリごとにjsファイルを用意するので、全部のファイルの中身をのぞいて書き換える必要がある。

ふと、config.jsに変数を用意しておいて、それを参照するようにしたらいいのではないか、と思いついた。

kintoneが正常に動作しなくなる可能性があるため、既存のグローバルオブジェクトを書き換えないようにしてください。 グローバル変数を使わず、無名関数の関数スコープ変数を使って変数を定義してください。やむを得ずスコープ間で共有する変数を使用する場合は、名前空間オブジェクトを使用してください。 kintone JavaScript コーディングガイドライン – cybozu developer network

という「コーディングガイドライン」があるので、非推奨ではあるが、名前空間オブジェクトを用意してみた。

var ProjectNameSpace = {};//名前空間オブジェクト
ProjectNameSpace.api_url = 'https://some.dev.api.url/';

これをconfig.jsとして保存し、kintoneシステム管理の「JavaScript / CSSでカスタマイズ」に放り込む。

すると無事、アプリ側のアプリから参照することができた。

アプリのカスタマイズJavaScriptもURLが決まっているので、同じkintone内であれば参照できる。うまく使えば便利かもしれない。

スペース単位で共通の変数を設定できるといいんだけど……。