Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Composer php 在Prestashop模块1.7.6中添加命令(控制台命令)_Composer Php_Prestashop 1.7_Symfony 3.4 - Fatal编程技术网

Composer php 在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

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

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
},
“类型”:“预启动模块”,
“作者”:“作者”,
“许可证”:”
}
有什么建议吗


谢谢

更新:

我对自己说:

下次用谷歌搜索这个问题时,请检查:

  • 在config/services.yml中定义的命令
  • 模块已安装
  • 作曲家自动录音机
  • 旧版本:

    确保您在Composer中转储了autoloader并添加了受保护的静态$defaultName='yourmodule:command'编码到您的命令类,并以Symfony文档中提到的任何其他方式设置名称


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

    您在哪里创建了命令类<代码>在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中使用它。我试着效仿这个例子但没有成功谢谢