【问题标题】:Drupal 8 : How to write custom php functions and call the function from a custom page?Drupal 8:如何编写自定义 php 函数并从自定义页面调用该函数?
【发布时间】:2020-07-19 09:59:07
【问题描述】:

我是 Drupal Web 开发的新手。 我已经通过构建自定义插件来编写自定义 php 函数来使用 Wordpress 平台,并且从自定义页面调用该函数很容易。

示例:

<?php
function givenumber(){
  return 50;
}
?>;

我通过以下方式调用:

<?php  echo givenumber(); ?>
  • 如何使用 Drupal 8 实现类似功能?
  • 我是否需要创建一个自定义模块来编写自定义 php 函数?
  • 如何从自定义页面调用函数?

请帮忙。

【问题讨论】:

    标签: php web drupal content-management-system drupal-8


    【解决方案1】:

    在 Drupal 8 中执行此操作的最佳方法是在自定义模块中创建服务。

    创建一个具有以下结构的模块:

    your_custom_module/
    ├── your_custom_module.info.yml
    ├── your_custom_module.services.yml
    └── src/
        └── YourCustomService.php
    

    您的your_custom_module.services.yml 文件:

    services:
      your.custom.service:
        class: Drupal\your_custom_module\YourCustomService
    
    

    您的服务类别:

    <?php
    
    namespace Drupal\your_custom_module;
    
    class YourCustomService {
    
      public function giveNumber() {
        return 1234;
      }
    
    }
    

    启用模块,您现在可以调用此服务:

    \Drupal::service('your.custom.service')->giveNumber();
    
    

    Structure of a service file查看更多详情

    【讨论】:

    • 感谢您的解决方案!但是,我不知道如何从 drupal 自定义页面调用服务。
    • 您可以使用\Drupal::service('your.custom.service')-&gt;giveNumber();从自定义路由的控制器方法中调用它
    • 值得引用 drupal.org 的话:依赖注入是 Drupal 8 中访问和使用服务的首选方法,应尽可能使用。服务不是调用全局服务容器,而是作为参数传递给构造函数或通过 setter 方法注入。
    【解决方案2】:

    有“N”种方式。而且,这取决于您的用例。

    如果您想要一些自定义值并仅显示在您的内容页面中。您可以在活动主题中编写 hook_preprocess_node() 函数,并使一些变量可用于您的 twig 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多