drupal模块开发

drupal8的第一个模块hello world练习

日期:2016-06-20 阅读:3009

dmandwp系统 - wordpress系统和DM系统区块建站>>

查看案例源码>

A "Hello World" Custom Page Module  
Drupal 8 Interconnections is a demo page highlighting the relationships between module components.
https://www.drupal.org/node/2464195 (链接里有例子源码)

-----------

第一步,在modulescustomhello目录里,建一个 hello.info.yml文件。

内容为:

name: Hello
type: module
description: Hello demo module. hello tvdrupal
package: Custom
core: 8.x

这时,访问后台的模块页面。
就会看到这个模块。但这个模块只是空的,什么事也做不了。

第二步,添加控制器。让模块做点事情:

在hello目录里加 /src/Controller/HelloController.php
HelloController.php的内容下面复制(双击源码再ctrl+c):

<?php
/**
 * @file
 * Contains \Drupal\hello_world\Controller\HelloController.
 */

namespace Drupal\hello\Controller;

use Drupal\Core\Controller\ControllerBase;

class HelloController extends ControllerBase {
  public function content() {
    return array(
        '#type' => 'markup',
        '#markup' => $this->t('Hello, Worldcc!'),
    );
  }
}
 


https://www.drupal.org/docs/8/creating-custom-modules/adding-a-basic-controller

第三步,请加一个路由 hello.routing.yml,直白的说,就是加个网址。
 

hello.content:
  path: '/hello'
  defaults:
    _controller: '\Drupal\hello\Controller\HelloController::content'
    _title: 'Hello Worlddssssafs22'
  requirements:
    _permission: 'access content'

https://www.drupal.org/docs/8/creating-custom-modules/add-a-routing-file

第四步,启动模块,如果已经启动过,就要再清下缓存。
路由文件更改后,都要清下缓存。

这样,一个模块就可以用了。访问:  www.yoursite.com/hello
 

------

上面只是一个简单的模块的代码介绍。

这里有一个详细的模块代码: http://cgit.drupalcode.org/examples/tree/page_example

更多的在 http://cgit.drupalcode.org/examples 

drupal提供了一个examples的模块。 https://www.drupal.org/project/examples

-------------

Drupal 8 模块开发: http://go-peak.net/blog/2015/12/23/d8-buildmodule/
https://docs.acquia.com/article/building-modules-drupal-8

 

 

<<点击返回