/** * @param MonsterProvidersTrait $entity * * @return int|string */ public static function ensureStaticProvider(&$entity) { $providers = $entity->getEntityDataProviders(); foreach ($providers as $index => $provider) { /** @var array $provider */ $className = ArrayHelper::getValue($provider, 'class', null); if ($className === StaticContentProvider::class) { return $index; } } $providers[uniqid('prov', true)] = ['class' => StaticContentProvider::class, 'entities' => []]; $entity->setEntityDataProviders($providers); return key(array_slice($providers, -1, 1, true)); }