$30 off During Our Annual Pro Sale. View Details »

Drupal8 State API と Configuration API

Drupal8 State API と Configuration API

Drupal8のVariables~State API と Configuration API ~

kazukomurata

January 26, 2017
Tweet

More Decks by kazukomurata

Other Decks in Programming

Transcript

  1. Drupal8ͷVariables
    ~State API ͱ Configuration API ~
    MURATA Kazuko

    View Slide

  2. Variables ͱ͸
    Drupalͷઃఆ͸keyͱvalueͰఆٛ͞ΕΔ
    Variablesʹू໿͞Ε͍ͯΔɻ

    View Slide

  3. Drupal8ͰVariables ͸ແ͍ɾɾɾʂ
    Drupal8ͰҎԼͷ2ͭʹ෼཭͠·ͨ͠ɻ
    ɾঢ়ଶΛอ࣋͢ΔState
    ɾઃఆΛอ࣋͢ΔConfiguration

    View Slide

  4. State API
    ؆қతʹอ࣋͢Δ஋͸State APIΛར༻͢Δɻ
    ɾCSS,JSѹॖϑΝΠϧύεʹͭ͘จࣈྻ
    →/sites/default/files/css/css_lqq6XNouNM84HMTnOnigWo9qb1k.css?ok2ccv
    ɾCron࣮ߦͷ࠷ऴ೔࣌
    ɾΠϯετʔϧ೔࣌

    View Slide

  5. Configuration API
    ΞϓϦέʔγϣϯͱͯ͠ఆ͍ٛͨ͠΋ͷ͢΂
    ͯ͸Configuration APIΛར༻͢Δɻ
    ɾ͋Γͱ͋ΒΏΔઃఆ஋
    ɾCIMͰग़ྗ͞ΕΔͷͰ؀ڥݻ༗ͷid஋Λอ
    ଘ͢Δͱ௧͍໨͋͏ɻ

    View Slide

  6. ෮श : D7ͷVariables
    // Set.
    variable_set('key', value);
    // Get.
    variable_get('key', σϑΥϧτ஋);
    // Delete.
    variable_del(‘key');

    View Slide

  7. State API ίʔυྫ
    // Set.
    \Drupal::state()->set('key', value);
    ※key͸Ϟδϡʔϧ໊ͱkey໊শΛ ʮ.ʯͰͭͳ͛ͯࢦఆ͢Δ(ex. system.css_js_query_string)
    // Get.
    \Drupal::state()->get('key');
    // Delete.
    \Drupal::state()->delete(‘key');
    Service ͰDI͢Δͱ͖͸ʮStateInterfaceʯͰड͚ࢭΊΔͷ͕ਖ਼ղ(ͨͿΜ)

    View Slide

  8. Configuration API ίʔυྫ
    // Set.
    $config = \Drupal::service(‘config.factory')
    ->getEditable('system.performance');
    $config->set('cache.page.enabled', 1);
    // Get.
    $config = \Drupal::config('system.maintenance');
    $message = $config->get('message');
    // Delete.
    \Drupal::service(‘config.factory’)->getEditable('key')->delete();

    View Slide

  9. Configuration API ิ଍
    ɾઃఆ஋ͷొ࿥ը໘͸ConfigFormBaseΛܧঝָͯ͠͠·͠ΐ
    ͏ɻ
    ྫ : core/modules/system/src/Form/SiteInformationForm.php
    ɾServiceར༻ͷ࣌͸ɺState APIಉ༷ɺConfigFactoryInterfaceͰ
    ड͚ࢭΊͭͭɺconstractͷதͰɺඞཁͳ෼Λget͠ͱ͘ͷ͕҆શ
    ͔΋ɻ
    public function __construct(ConfigFactoryInterface $config {
    $this->config = $config->get('key');
    }

    View Slide

  10. Thank you!!
    ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ

    View Slide