在 Prestashop 模块 1.7.6 中添加命令(控制台命令)



我正在开发一个prestashop模块(v. 1.7.6(,我想添加一些可从控制台使用的命令。 问题是当我配置服务并尝试运行时

bin/console mymodule:mycommand

系统返回"mymodule"命名空间中未定义任何命令。

这是我的服务.yml

services:
mycommand_command:
class: MymoduleMycommandCommand
tags:
- { name: 'console.command' }

这是我的作曲家.json

{
"autoload": {
"psr-4": {
"Mymodule\": "src/"
},
"classmap": [
"src/Command/"
]
},
"config": {
"preferred-install": "dist",
"prepend-autoloader": false
},
"type": "prestashop-module",
"author": "<???>",
"license": "<???>"
}

有什么建议吗?

谢谢

你在哪里创建你的命令类?In src/Command/

更新:

对我自己:

下次谷歌这个问题时 - 检查:

  1. 在 config/services.yml 中定义的命令
  2. 模块已安装
  3. 作曲家自动转储

旧版本:

确保在 Composer 中转储了自动加载器,并将protected static $defaultName = 'yourmodule:command';添加到您的命令类中,并以 Symfony 文档中提到的任何其他方式设置名称。

几天前我刚刚遇到了同样的问题。

对于任何正在寻找这个的人:

  1. 按照此链接上的步骤操作:https://devdocs.prestashop.com/1.7/modules/concepts/commands/
  2. 使用以下代码在模块的根目录中添加 composer.json(并替换为您的东西..(:
{
"autoload": {
"psr-4": {
"<YOUR-MODULE>\": "src/"
},
"classmap": [
"src/Command/"
]
},
"config": {
"preferred-install": "dist",
"prepend-autoloader": false
},
"type": "prestashop-module",
"author": "<AUTHOR>",
"license": "<LICENSE>"
}
  1. 通过 ssh 连接,然后 cd 到模块根目录
  2. 运行composer dump-autoload -o --no-dev
  3. 通过<ps-root>/bin/console your-module:command测试您的命令

最新更新