Composer php 在Prestashop模块1.7.6中添加命令(控制台命令)
我正在开发一个prestashop模块(1.7.6版),我想添加一些控制台中可用的命令。 问题是,当我配置服务并尝试运行Composer php 在Prestashop模块1.7.6中添加命令(控制台命令),composer-php,prestashop-1.7,symfony-3.4,Composer Php,Prestashop 1.7,Symfony 3.4,我正在开发一个prestashop模块(1.7.6版),我想添加一些控制台中可用的命令。 问题是,当我配置服务并尝试运行 bin/控制台mymodule:mycommand 系统返回在“mymodule”命名空间中没有定义任何命令。 这是我的服务 services: mycommand_command: class: Mymodule\MycommandCommand tags: - { name: 'console.command' } 这里是我的compo
bin/控制台mymodule:mycommand
系统返回在“mymodule”命名空间中没有定义任何命令。
这是我的服务
services:
mycommand_command:
class: Mymodule\MycommandCommand
tags:
- { name: 'console.command' }
这里是我的composer.json
{
"autoload": {
"psr-4": {
"Mymodule\\": "src/"
},
"classmap": [
"src/Command/"
]
},
"config": {
"preferred-install": "dist",
"prepend-autoloader": false
},
"type": "prestashop-module",
"author": "<???>",
"license": "<???>"
}
{
“自动加载”:{
“psr-4”:{
“Mymodule\\”:“src/”
},
“类映射”:[
“src/Command/”
]
},
“配置”:{
“首选安装”:“dist”,
“前置自动加载器”:false
},
“类型”:“预启动模块”,
“作者”:“作者”,
“许可证”:”
}
有什么建议吗
谢谢更新: 我对自己说: 下次用谷歌搜索这个问题时,请检查:
几天前我遇到了同样的问题。您在哪里创建了命令类<代码>在src/Command/中?将命令类代码添加到您的问题中我只需再次面对它并。。。模块应该“安装”:)谢谢Serge P。我做了,但它不工作。你能简单地解释一下你所做的步骤吗?感谢you@AlreadynightPrestashop文档向您指出Symfony文档基本上除了您发布的文件之外,您还需要使用
execute
方法和$defaultName
属性创建命令类。您在phpbin/console
输出中看到您的命令了吗?没有,我没有看到。我用受保护的静态$defaultName和方法execute创建了这个类(一个只输出字符串“export done”的简单类)。我遵循了您提到的指南,但有点不对劲(可能是在我的composer.json中)。谢谢,我的步骤是:创建扩展命令的类,配置composer.json,在我的模块目录中配置services.yml,运行composer dump autoload-o--no dev
。但是当我运行phpbin/console
时,我看不到我的命令。谢谢你在我的情况下,我和作曲家也有问题。因为一切都在Docker容器和容器根目录下的IDE运行编写器中工作。。。存在权限问题。我删除了供应商目录并再次转储。我相信这就是原因。我将Gbstockimport设置为名称空间,并在composer.json中使用它。我试着效仿这个例子但没有成功谢谢