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' 的另一种说明:我认为它应该指向代表用于配置模块的页面的路由名称。
我只想完成一件事,在 .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' 的另一种说明:我认为它应该指向代表用于配置模块的页面的路由名称。