问题标签 [symfony-console]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
490 浏览

symfony - Symfony Doctrine CLI 工具“找不到路径”

我在使用 symfonys cli 工具时遇到了一个奇怪的问题。我正在尝试更新我使用 cli 工具创建的实体(那里没有问题),它会引发此错误。

奇怪的是:给定的路径D:\w\Framework\AcmeBundle\Entity是正确的。该实体可以由框架使用,并且我在其他任何地方都没有收到有关路径的任何错误。所以该工具显然知道路径,但说它不知道。

有人知道这个问题吗?

0 投票
2 回答
3603 浏览

php - 如何在 Symfony2 应用程序中创建控制台命令

我需要为 Symfony2 应用程序创建一个控制台命令,我在这里这里阅读了文档,尽管我不确定我应该遵循哪些。所以这就是我所做的。

  • 在下创建一个文件/src/PDI/PDOneBundle/Console/PDOneSyncCommand.php
  • 写下这段代码:

    • 在下创建一个文件/bin
    • 写下这段代码:

      !/usr/bin/env php

      需要 __ DIR __ .'/vendor/autoload.php';

      使用 PDI\PDOneBundle\Console\Command\PDOneSyncCommand;使用 Symfony\组件\控制台\应用程序;

      $应用程序=新应用程序();$application->add(new PDOneSyncCommand()); $应用程序->运行();

php app/console --shell但是当我通过运行并点击进入控制台时,ENTER我看不到注册的命令,我错过了什么?

注意:比我更有经验的人可以正确格式化第二段代码吗?

更新 1

好的,按照建议并以答案为起点,我构建了这段代码:

但是每当我调用任务时,我都会收到此错误:

[Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException] 你请求了一个不存在的服务“login_uri”。

为什么?我不能访问parameter.yml文件中的参数吗?我在哪里失败?

0 投票
1 回答
686 浏览

symfony - Symfony:如何自定义可用命令的输出?

我们正在使用symfony/console(顺便说一句很棒的库)构建一个控制台应用程序。可用的命令显示如下:

命令的名称显示为绿色,描述显示为白色。

目前,可用命令是唯一的部分。有没有一种使用 OOP 为命令创建多个部分的简单方法?

或者,有没有办法改变命令标签的绿色?

0 投票
2 回答
1935 浏览

php - PSR-4 代码库中教义生成器的解决方法

在 Windows 机器上使用 Symfony 2 & Doctrine 我正在尝试

  1. 从现有模式生成实体:

    php app/console doctrine:mapping:import --force CoreBundle annotation

  2. 在它们上生成 getter/setter:

    php app/console doctrine:generate:entities --path=/path/to/codebase/src/MyProject/CoreBundle/Entities CoreBundle

  3. 使用Voryx在它们上生成 REST CRUD 控制器:

    php app/console voryx:generate:rest --entity="CoreBundle:User"

第一步工作正常,我可以在我的 CoreBundle/Entity 文件夹中找到具有正确命名空间的实体:

目前很好。但是,运行其他 2 个命令将失败:

我的 composer.json 中的自动加载如下所示:

我发现Doctrine 无法处理 PSR-4 namespaces,这可能是它失败的原因。

不过,我真的很希望实体生活在 PSR-4 CoreBundle 中 - 是否有解决方法?

我试过这个,但它也不起作用:

谢谢你。

0 投票
1 回答
740 浏览

symfony - 如何从 Heroku 的调度程序运行 Symfony 命令

我已经将 Heroku 的调度程序配置为运行 Symfony 2 命令:

并将其设置为每 10 分钟运行一次。

但是,在日志中我看到了这些消息:

这些是让我感到困惑的三个相关因素:

我有点困惑:文件app/console似乎不存在,但随后脚本遇到意外的 EOF(但文件不存在 oO),然后文件意外结束(这与消息 immediatley 不是一回事前?

我究竟做错了什么?

0 投票
1 回答
1702 浏览

json - 带有 json_encode 和 shell_exec 的 JSON 无效

我正在使用Symfony 的控制台组件编写一些命令行工具,其中一个使用 WP-CLI 来设置 WordPress 站点。特别是使用wp option update我遇到了 JSON 和引号的问题。

例如,运行类似:

结果在数据库中的文字''。事实上,每当我使用该命令时,如果它成功,我尝试在数据库中设置的任何内容都包含在单引号中。

然后是这样的:

转储结果:

这是有效的 JSON,但该wp命令导致以下结果:

您会注意到引号已被删除,我认为这就是它所抱怨的?或者这就是它转储错误的方式?

无论哪种方式,然后我决定对 JSON 进行硬编码,所以只需:

这给了我以下错误:

错误:位置参数太多:,bitbucket_username:用户名,bitbucket_password:密码}'

我打赌这两个问题是相关的。我想这可能是一个 WP-CLI 问题,所以我在那里打开了一个问题,但没有得到答案就关闭了。然而,我越是盯着它看,我就越觉得它可能是 Symfony 的东西。也许我肯定需要使用流程组件而不是shell_exec?这就是它的设计目的吗?

更新:尝试了 Symfony 进程组件:

仍然得到我的两个报价。所以那里什么也没做。

0 投票
1 回答
426 浏览

symfony - 在同一个文件中注册多个控制台命令

创建控制台命令需要创建一个PHP文件,后缀为Command.php。例如,我想创建 DocumentCommand.php。

困难来了。我想在这里插入 3 个命令,例如:

如果可能的话,在单个文件(DocumentCommand.php)中执行此操作的最佳方法是什么?

问候,R。

0 投票
1 回答
28 浏览

php - 控制台命令选项不应删除空格

我在 bash 脚本中有一个命令:

使用此选项:

当我运行命令时

看看这个选项

然后它修剪空格

这是为什么?如何抑制它或正确地将选项放入我的命令中?

提前致谢!

0 投票
3 回答
1103 浏览

php - Symfony 控制台“询问”不接受空值

我正在使用 symfony 控制台包,在该包中我让它在执行命令时请求一个值,也就是在public function execute(...).

当试图向用户询问某事时,我认为如果您不制作自己的自定义样式,这是两种不同的方法。a)使用问题助手,b)使用预定义的样式,因此SymfonyStyle
我开始使用SymfonyStyle运行简单ask("question here"),如果我没有给它一个值,它会一直给我错误。如果我改为使用帮助程序,直接创建问题,那么它将允许我给它一个空值。

下面是一些例子:

查看 的文件SymfonyStyle,看起来它在验证方面并没有太大的不同,正如班级所说,它只是样式。那么有什么我遗漏的东西是这两者之间的区别吗?是否有可能实现SymfonyStyle完全接受空洞的答案?

0 投票
2 回答
2623 浏览

php - 资产文件不存在错误,即使不再引用文件?

我有一个我过去创建的名为 main.less 的文件。我删除了它,因为我不再需要它,但现在我尝试运行时收到以下错误bin/console assetic:watch

bin/console assetic:dump无论使用的环境如何。

在我这样做之前一直在工作的当前例程是创建一个运行以下命令的 shell 脚本文件:

我总是以 root 身份运行它以确保一切正常,但文件归用户分发所有。

引用 less 和 javascript 文件的唯一文件是...

base.html.twig

我的目录结构如下所示,直接来自我的 FTP

在此处输入图像描述

您会注意到 main.less 现在位于骨架包中,而不是应用程序包中。我把它移到了这里,但由于某种原因它认为它仍然在应用程序包中而不是骨架包中??

如何修复此错误?

额外信息:

当我对错误进行详细跟踪时,我得到了资产:转储

Config.yml 资产设置:

骨架包中的 Main.less

appBundle 中的 Admin.less 文件

admin.html.twig