当前位置: 首页>>代码示例>>PHP>>正文


PHP EntityTypeInterface::isStaticallyCacheable方法代码示例

本文整理汇总了PHP中Drupal\Core\Entity\EntityTypeInterface::isStaticallyCacheable方法的典型用法代码示例。如果您正苦于以下问题:PHP EntityTypeInterface::isStaticallyCacheable方法的具体用法?PHP EntityTypeInterface::isStaticallyCacheable怎么用?PHP EntityTypeInterface::isStaticallyCacheable使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Drupal\Core\Entity\EntityTypeInterface的用法示例。


在下文中一共展示了EntityTypeInterface::isStaticallyCacheable方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: loadMultiple

 /**
  * {@inheritdoc}
  */
 public function loadMultiple(array $ids = NULL)
 {
     $entities = array();
     // Create a new variable which is either a prepared version of the $ids
     // array for later comparison with the entity cache, or FALSE if no $ids
     // were passed. The $ids array is reduced as items are loaded from cache,
     // and we need to know if it's empty for this reason to avoid querying the
     // database when all requested entities are loaded from cache.
     $passed_ids = !empty($ids) ? array_flip($ids) : FALSE;
     // Try to load entities from the static cache, if the entity type supports
     // static caching.
     if ($this->entityType->isStaticallyCacheable() && $ids) {
         $entities += $this->getFromStaticCache($ids);
         // If any entities were loaded, remove them from the ids still to load.
         if ($passed_ids) {
             $ids = array_keys(array_diff_key($passed_ids, $entities));
         }
     }
     // Load any remaining entities from the database. This is the case if $ids
     // is set to NULL (so we load all entities) or if there are any ids left to
     // load.
     if ($ids === NULL || $ids) {
         $queried_entities = $this->doLoadMultiple($ids);
     }
     // Pass all entities loaded from the database through $this->postLoad(),
     // which attaches fields (if supported by the entity type) and calls the
     // entity type specific load callback, for example hook_node_load().
     if (!empty($queried_entities)) {
         $this->postLoad($queried_entities);
         $entities += $queried_entities;
     }
     if ($this->entityType->isStaticallyCacheable()) {
         // Add entities to the cache.
         if (!empty($queried_entities)) {
             $this->setStaticCache($queried_entities);
         }
     }
     // Ensure that the returned array is ordered the same as the original
     // $ids array if this was passed in and remove any invalid ids.
     if ($passed_ids) {
         // Remove any invalid ids from the array.
         $passed_ids = array_intersect_key($passed_ids, $entities);
         foreach ($entities as $entity) {
             $passed_ids[$entity->id()] = $entity;
         }
         $entities = $passed_ids;
     }
     return $entities;
 }
开发者ID:nstielau,项目名称:drops-8,代码行数:52,代码来源:EntityStorageBase.php


注:本文中的Drupal\Core\Entity\EntityTypeInterface::isStaticallyCacheable方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。