Drupalには、Webサービスとの通信やJSON入力の処理に役立つ特定の機能があります。
Drupal 7には以下の機能があります。
これらの関数を使用すると、独自のカスタムモジュールを記述して、Webサービスを実装するサイトにリクエストを送信できます。
Webサーバーに対して実行できる要求の数に制限がある場合は、Drupal関数を使用して、Webサーバーから取得した結果をキャッシュできます。
Drupalは複数のキャッシュビンをサポートし、モジュールは必要に応じて独自のキャッシュビンを使用できることに注意してください。
Drupalは、連続するキャッシュスワイプで自動的に削除されるキャッシュアイテムもサポートします(CACHE_TEMPORARY定数の説明を参照してください)。これらのモジュールは、hook_flush_caches()を実装し、管理者ユーザーが[パフォーマンス]ページの[クリア]ボタンをクリックしたとき、またはモジュールがdrupal_flush_all_caches()を呼び出したときに、モジュールが使用するキャッシュをクリーンアップできるようにします。
Drupal 7では、頻繁に使用されるデータのキャッシュデータは、drupal_static()で処理される静的変数に関連付けられています。同じページを出力するときにデータが本当に頻繁に使用される場合、次のようなコードが使用されます。
// Use the advanced drupal_static() pattern, since this is called very often.
static $drupal_static_fast;
if (!isset($drupal_static_fast)) {
$drupal_static_fast['implementations'] = &drupal_static(__FUNCTION__);
}
$implementations = &$drupal_static_fast['implementations'];
// …
// Fetch implementations from cache.
if (empty($implementations)) {
$implementations = cache_get('module_implements', 'cache_bootstrap');
if ($implementations === FALSE) {
$implementations = array();
}
else {
$implementations = $implementations->data;
}
}
コードはmodule_implements()の一部です。