Răspunzând la această întrebare, presupun că ați generat configurația prin UI și apoi ați exportat-o, așa cum a menționat Kevin în comentariul său. Acesta este cel mai bun mod de a crea configurația inițială pentru includerea în proiect.
Rețineți că toate exemplele sunt afișate folosind codul procedural, de dragul simplității; asigurați-vă că urmați cele mai bune practici și vă injectați serviciile atunci când vă construiți proiectul.
Entitatea ImageStyle
Odată ce fișierul de configurare este instalat, devine un ImageStyle entitate de configurare și poate fi manipulată ca orice entitate de configurare.
// Obțineți manipulatorul de stocare pentru entitățile ImageStyle.
$image_style_storage = \Drupal::entityTypeManager()->getStorage("image_style");
// Obțineți o instanță a entității noastre ImageStyle.
$my_image_style = $image_style_storage->load("my_image_style");
Efectele care sunt specificate în definiția ImageStyle sunt pluginuri gestionate de plugin.manager.image.efect
serviciu de gestionare a pluginurilor.
După cum ar fi avut norocul, the ImageStyle entitatea oferă addImageEffect()
metoda publică, care acceptă o serie de informații despre efecte. Această metodă se ocupă de fapt de generarea și atribuirea UUID-ului, care vă este apoi returnat.
funcția publică addImageEffect(array $configuration) {
$configuration['uuid'] = $this->uuidGenerator()->generate();
$this->getEffects()->addInstanceId($configuration['uuid'], $configuration);
returnează $configurație['uuid'];
}
Deci, folosind dvs imagine.style.max_1300x1300
de exemplu, atribuirea efectului de imagine ar arăta astfel:
$effect_uuid = $my_image_style->addImageEffect([
'id' => 'image_scale',
'date' => [
'width' => '1300',
'height' => '1300',
'upscale' => FALSE,
],
„greutate” => 1,
]);
Puteți găsi toate efectele de imagine înregistrate pe site-ul dvs. executând:
\Drupal::service('plugin.manager.image.effect')->getDefinitions();