首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何让Drupal8访问web根目录之外的配置文件?

在Drupal 8中,要让它访问web根目录之外的配置文件,可以按照以下步骤进行操作:

  1. 创建一个新的配置文件目录:在Drupal 8的根目录下,创建一个新的目录,例如"config"。
  2. 创建配置文件:在"config"目录下创建一个新的配置文件,例如"myconfig.yml"。
  3. 编辑配置文件:打开"myconfig.yml"文件,并添加所需的配置信息。确保配置文件的格式正确,并按照Drupal 8的配置文件规范进行编写。
  4. 创建一个自定义模块:在Drupal 8的"modules"目录下创建一个新的自定义模块,例如"custom_module"。
  5. 创建一个服务定义文件:在"custom_module"目录下创建一个新的服务定义文件,例如"custom_module.services.yml"。
  6. 在服务定义文件中添加配置:打开"custom_module.services.yml"文件,并添加以下内容:
代码语言:txt
复制
services:
  custom_module.config:
    class: Drupal\Core\Config\ConfigFactoryOverrideInterface
    tags:
      - { name: config.factory.override }
    arguments: ['@config.factory']
  1. 创建一个自定义模块的配置文件:在"custom_module"目录下创建一个新的配置文件,例如"custom_module.settings.yml"。
  2. 在自定义模块的配置文件中添加配置:打开"custom_module.settings.yml"文件,并添加以下内容:
代码语言:txt
复制
my_config_path: '../config/myconfig.yml'
  1. 创建一个自定义模块的配置表单:在"custom_module"目录下创建一个新的配置表单文件,例如"CustomModuleSettingsForm.php"。
  2. 在配置表单文件中添加表单元素:打开"CustomModuleSettingsForm.php"文件,并添加以下内容:
代码语言:php
复制
<?php

namespace Drupal\custom_module\Form;

use Drupal\Core\Form\ConfigFormBase;
use Drupal\Core\Form\FormStateInterface;

class CustomModuleSettingsForm extends ConfigFormBase {

  /**
   * {@inheritdoc}
   */
  protected function getEditableConfigNames() {
    return ['custom_module.settings'];
  }

  /**
   * {@inheritdoc}
   */
  public function getFormId() {
    return 'custom_module_settings_form';
  }

  /**
   * {@inheritdoc}
   */
  public function buildForm(array $form, FormStateInterface $form_state) {
    $config = $this->config('custom_module.settings');

    $form['my_config_path'] = [
      '#type' => 'textfield',
      '#title' => $this->t('My Config Path'),
      '#default_value' => $config->get('my_config_path'),
    ];

    return parent::buildForm($form, $form_state);
  }

  /**
   * {@inheritdoc}
   */
  public function submitForm(array &$form, FormStateInterface $form_state) {
    $this->config('custom_module.settings')
      ->set('my_config_path', $form_state->getValue('my_config_path'))
      ->save();

    parent::submitForm($form, $form_state);
  }

}
  1. 创建一个路由文件:在"custom_module"目录下创建一个新的路由文件,例如"custom_module.routing.yml"。
  2. 在路由文件中添加路由信息:打开"custom_module.routing.yml"文件,并添加以下内容:
代码语言:yaml
复制
custom_module.settings_form:
  path: '/admin/config/custom_module/settings'
  defaults:
    _form: '\Drupal\custom_module\Form\CustomModuleSettingsForm'
    _title: 'Custom Module Settings'
  requirements:
    _permission: 'administer site configuration'
  1. 启用自定义模块:在Drupal 8的管理界面中,启用刚刚创建的自定义模块。

现在,Drupal 8将能够访问位于web根目录之外的配置文件。你可以在自定义模块的配置表单中设置配置文件的路径,并在代码中使用该配置。请注意,这只是一种方法,你可以根据自己的需求进行调整和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 渗透测试Vulnhub-DC1

    各位师傅们好,在正式写文章前啰嗦几句,很早以前就想搭一个内网渗透的靶场来练习了,不过因为一些原因一直在往后推迟(主要是因为太懒)。这段时间发生了一些事情让我坚定了搞搞内网渗透的想法,目前来说事请还是挺不好的,跟一位最近朋友说过以后他跟我讲以后更大的坎还多着呢,他也跟我说了下自己的心酸往事,听过以后自己也有了些许感触,而这件事请对于我来说到底是好是坏待以后时间证明(至少目前是感觉挺失落的)。还有就是有一个姐姐真好,也正是她一直以来的安慰才能让我调整这么快,不管是这次还是从前或以后兜希望老姐一直能陪着我。 靶场呢是一个朋友之前推荐的,然后就来练习了,这次是最简单的,当然后面也会陆续练习。由于没有内网渗透的经验,练习过程中也时常碰壁,过程中我也参考了一些其他师傅的文章,结合了一下还是想自己写一篇文章记录一下。文中也有个人的一些疑惑,还请各位师傅们能够答疑,感激不尽。

    01

    [Drupal学习一]Drupal安装和基本配置[通俗易懂]

    大家好,又见面了,我是你们的朋友全栈君。1. 从官方网站上下载drupal-6.16 http://drupal.org/drupal-6.16 2. 将下载的压缩包文件直接解压,放到apache的站点目录中。此时drupal的路径为WEB-SERVER/drupal 3. 访问站点http://localhost:8888/drupal/将进入drupal的安装页面。此时会提醒我们要拷贝重命名.sites/default/default.settings.php为.sites/default/settings.php。 之后刷新页面,继续后续的安装。 4. 在Mysql数据库中建立站点的数据库。此例中取名为drupal_test_site。再返回到drupal安装页面,输入相应的数据库名称及账户信息。点击保存并继续按钮进行数据库的部署。 5. 配置站点信息。包括站点名称 管理员账户信息等,再继续。 6. 如果没有意外,会显示drupal安装成功。

    03

    在Ubuntu或Debian上更新并保护Drupal 8

    Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成。连续多年荣获全球最佳CMS大奖,是基于PHP语言最著名的WEB应用程序。Drupal是一套开源系统,全球数以万计的WEB开发专家都在为Drupal技术社区贡献代码。因此,Drupal的代码在安全性、健壮性上具有世界最高水平。截止2011年底,共有13,802位WEB专家参加了Drupal的开发工作;228个国家使用181种语言的729,791位网站设计工作者使用Drupal。著名案例包括:联合国、美国白宫、美国商务部、纽约时报、华纳、迪斯尼、联邦快递、索尼、美国哈佛大学、Ubuntu等。Drupal 8是流行的Drupal内容管理系统的最新版本。虽然版本8.1中包含简单的增量更新功能,但所有先前版本都需要手动核心更新。本教程演示了如何在Linode上手动安装增量Drupal 8更新。本教程假设您已在Apache和Debian或Ubuntu上运行了功能强大的Drupal 8安装。

    01
    领券