Drupal 8 - 创建一个简单的模块,使用 .settings 文件

Drupal 8 - Creating a simple module, using .settings file

我只想完成一件事,在 .settings 文件中设置一个变量,然后在 .module 文件中使用这个变量。

听起来很简单,但我就是不知道该怎么做。

到目前为止我做了什么:

-文件:
模块名称
_|-> modulename.info.yml
_|-> modulename.module
_|-> 配置
____|-> modulename.settings.yml

-modulename.settings.yml的内容:

some_string: 'A string'
some_int: 42
some_bool: true

-modulename.info.yml的内容:

name: modulename
type: module
description: 'Some description.'
package: Custom
version: 8.x-1.0
core: 8.x
configure: config/modulename
hidden: false

-modulename.module的内容:

<?php
...[omitted]...
print_r('Printed');
print_r(get_class(\Drupal::config('modulename.settings'))); //Prints 'Drupal\Core\Config\ImmutableConfig'
print_r(\Drupal::config('modulename.settings')->get('some_string')); //nothing
print_r(\Drupal::config('modulename.settings')->get('modulename.some_string')); //nothing
print_r(\Drupal::config('modulename')->get('some_string')); //nothing
print_r(\Drupal::config('config.modulename')->get('some_string')); //nothing
print_r(\Drupal::config('config.modulename.settings')->get('some_string')); //nothing

我可以安装此模块并在页面上打印一些信息,但我无法访问任何变量。

提前致谢。

您应该将 settings.yml 文件放在 modulename/config/install 文件夹中(并且您可能需要卸载并重新安装该模块)。

关于您的信息文件中 'configure: config/modulename' 的另一种说明:我认为它应该指向代表用于配置模块的页面的路由名称。