欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

宁皓网 drupal 8 Drupal:Console

Drupal Console 是管理 Drupal 项目用的命令行工具,用它创建演示内容,管理项目,生成模块,主题的样版。


1) 安装 Drupal Console

先去安装一下 Drupal console .. 我用的是 Docker 搭建的环境,里面有一个 console 服务 ... 先进入到这个服务容器里 .. 在这个容器里我演示一下安装 Drupal Console 的过程 ...

如果你想长久保留 Drupal Console 工具,你需要把它 Build 到服务容器的镜像里 ...

进来以后。进入到用户主目录的下面 ..

安装 Drupal Console 可以使用 Curl 工具,没有的话,也可以直接用 php 命令行工具去安装它 ... 其实就是去下载一个文件 ..

在 Drupal Console 的文档里面你可以找到安装的命令 ...

php -r "readfile('https://drupalconsole.com/installer');" > drupal.phar

在命令行的下面执行一下 .. 这样会下载一个文件,名字是 drupal.phar ... 你可以直接使用 php 去执行它 ...
php drupal.phar

再给它添加一个可执行的权限 ..

chmod +x drupal.phar

然后把它放在系统的某个环境变量的目录下面 .. 重命名为 drupal ..

mv drupal.phar /usr/local/bin/drupal

这样不管我们在哪里,都可以使用 drupal 这个命令了 ... 再去初始化一下

drupal init

这样会创建一些跟 drupal console 相关的配置文件 ... 先选择一个存储这些配置文件的位置,默认就是当前登录的用户的主目录 ... 然后又会问我们一些问题 ... Drupal Console 会根据我们的回答来生成对应的文件 ..

这些文件默认就是在用户的主目录的下面 ..

如果你已经安装了 Drupal ,先进入到 Drupal 网站的根目录的下面 ... 然后用 composer,把 drupal console 添加到我们的 drupal 网站上 ...

composer require drupal/console:~1.0 --prefer-dist --optimize-autoloader

完成以后我们就可以在自己的 Drupal 网站上使用 Drupal Console 了 ..

执行一下

drupal list

这条命令会显示所有可用的 Drupal Console 命令 ...

2) 网站维护

执行一下

drupal site:status

会返回网站相关的一些信息 . Drupal 的版本 .. 一些安全相关的东西 .. 上次运行 cron 的时间 .. 网站用的数据库 .. 文件系统是否可写 .. 处理图像用的库 .. PHP 的版本 .

下面还有连接数据库相关的信息 .. 数据库的主机,端口号,用户名等等 ..

然后是网站用的主题 ... 下面还有一些目录的位置 ..

再查看一下网站的统计信息 ..

drupal site:statistics

这行命令会告诉你,当前网站里的不同类型的内容一共有多少 .. 评论的数量 .. 文件,还有用户等等 ...

维护网站的时候可以打开网站的维护模式

drupal site:maintenance on

这样用户访问网站的时候会显示网站正在维护 ... 维护结束以后再关掉维护模式

drupal site:maintenance off

3) 用户管理

用 Drupal Console 可以快速创建一些测试用的用户 ... 在 Drupal 项目的根目录下面,执行一下

drupal create:users

Drupal Console 的很多命令都会问我们一些问题,然后根据我们的回答去执行对应的任务 ... 这个创建测试用户的命令,先问我们创建的用户是哪个角色 .. Authenticated user 表示注册用户 ..

Enter how many users would you like to generate

要创建多少个用户 .. 默认是 10 ... 输入这些用户的密码 ...

再选择一下这些用户是多久以前创建的 ..

完成以后,会提示成功创建了 10 个用户 .. 再执行一下

drupal user:debug

会显示网站上的用户 ..

在命令的后台加上一个 --help 选项 ... 可以查看命令的帮助
drupal user:debug --help
... 很多命令都会支持一些选项 ... 在这个命令后台加上一个 --uid 选项 ... 意思是用用户的 id 号过滤一下返回的用户列表 ...

drupal user:debug --uid "10 11"

现在只会显示 id 号是 10,还有 11 的用户 .. 选项的值放在引号里面,中间用空格分隔开 ... 现在我想删除掉 id 号是 11 的这个用户 ..

drupal user:delete --user-id 11

提示已经成功删除掉了这个用户 ...

4) 生成模块

Drupal 8 的模块需要很多样板文件还有代码 ... Drupal Console 可以快速生成这些文件还有代码 .. 比如生成模块,实体,表单,插件,字段这些东西 ..

先去生成一个模块 ..

drupal generate:module

模块的名字是 Ninghao Test ... 模块的 machine name ,机器名是 ninghao_test ..

module path 是模块的位置,默认是在 modules 目录下的 custom 这里 ... 自定义的模块一般可以放在这个目录的下面 ..

module description .. 模块的描述 ... package name ... 包的名字 ... 默认是 Custom ..

模块对应的 Drupal 版本,默认是 8.x

do you want to generate a .module file ... 是否要创建一个 .module 文件 ... 是的 ..

这个模块是不是一个 feature 模块 ... no ..

在模块里是否要添加一个 composer.json .. yes

Would you like to add module dependencies

要添加模块的依赖吗?如果你的模块需要额外的模块提供的功能,在这里要说明一下这些模块 ...

要不要生成单元测试类 .. 是的 ..

Do you want to generate a themeable template , 要不要生成一个模板 ... yes

Do you confirm ... yes

Drupal Console 会根据我们的回答,生成自定义模块需要用的一些文件 ..

drupal module:debug | grep ninghao

可以看到我们刚才创建的这个自定义模块 .. 再安装一下这个模块 ..

drupal module:install ninghao_test

完成以后再查看一下这个模块 ... 现成已经提示这个模块的状态是 installed ... 表示已经安装好了 ..

5) 生成控制器与路由

drupal generate:controller
... 这条命令可以为模块生成控制还有路由 .. 先指定一下模块的名字 ... 比如 ninghao_test ... 这是刚才我们用 drupal console 生成的一个模块 ..

输入控制器的名字 ... HelloController

再输入控制器方法的标题 ... 你好

Enter the action method name ... 输入方法的名字 ...

再输入路由的地址 /hello/{name} ... 后面的 name 是路由里的参数 ...

如果没有要继续添加的方法,可以直接再按一下回车 ..

是否要生成单元测试 ... yes

是否要在容器里载入服务 ... no

Do you confirm generation? 是的 ..

完成以后会显示生成的一些文件 ... HelloController.php 是控制器的类 ... ninghao_test.routing.yml 是定义路由的地方 ..

HelloControllerTest.php 是做测试用的 ...

回到网站,我们可以访问一下路由的地址 ... /hello/ 后面这块是地址里的参数 ... 比如 drupal ..

这个页面显示的内容就是刚才我们用 Drupal Console 生成的 HelloController 这个控制器提供的 ...




来自 https://ninghao.net/course/4478

普通分类: