原文: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()来实现。