原文:https://www.drupal.org/developing/api/8/state

最后更新时间2014年8月19日。原文由heyrocker于20129月17日创建。
参与原文编辑的有 targoo, benjy, mpp, webchick

状态API为开发者提供了一个用来保存系统状态信息的地方。状态信息在如下几个方面区别于配置(configuration):

  • 它是每个环境特有的。
  • 你不会想要把状态信息部署到不同的环境中。
  • 你可以重启系统,这样会导致丢失所有的状态信息,但是环境配置信息还在。

一个典型的关于状态的例子是上一次cron任务执行的时间。这个时间状态是某个环境特有的,你不会把它用于系统部署中去。状态API是一个简单的用来存储此类信息的机制,这些信息在以前的版本中基本上都存储在变量(variables)系统当中。

典型用法:

  • Get a value(获取一个值):
    $val = \Drupal::state()->get('key');
  • Get multiple key/value pairs(获取多个键值对):
    $pairs = \Drupal::state()->getMultiple($keys);
  • Set a value(设置一个值):
    \Drupal::state()->set('key','value');
  • Set multiple values(设置多个值):
    \Drupal::state()->setMultiple($keyvalues);
  • Delete a value(删除一个值):
    \Drupal::state()->delete('key');

对于需要人工进行编辑或者需要在不同环境中进行共享的数据,应使用\Drupal::config()来实现。